Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.util

File CaseInsensitiveString.java

 

Coverage histogram

../../img/srcFileCovDistChart10.png
0% of files have more coverage

Code metrics

8
11
4
1
77
38
8
0.73
2.75
4
2

Classes

Class Line # Actions
CaseInsensitiveString 28 11 8 0
1.0100%
 

Contributing tests

This file is covered by 34 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.util;
22   
23    /**
24    * A class to wrap a case insensitive string. For use in collections where we
25    * want to preserve case, but do not want to duplicate upper and lower case
26    * variants
27    */
 
28    public final class CaseInsensitiveString
29    {
30    String value;
31   
 
32  286 toggle public CaseInsensitiveString(String s)
33    {
34  286 this.value = s;
35    }
36   
 
37  215 toggle @Override
38    public String toString()
39    {
40  215 return value;
41    }
42   
43    /**
44    * Answers true if the object compared to is a CaseInsensitiveString wrapping
45    * the same string value (ignoring case), or if both wrap a null value, else
46    * false
47    */
 
48  184 toggle @Override
49    public boolean equals(Object o)
50    {
51  184 if (o == null)
52    {
53  1 return false;
54    }
55  183 if (!(o instanceof CaseInsensitiveString))
56    {
57  9 return false;
58    }
59  174 CaseInsensitiveString obj = (CaseInsensitiveString) o;
60  174 if (value == null)
61    {
62  2 return obj.value == null;
63    }
64  172 return value.equalsIgnoreCase(obj.value);
65    }
66   
67    /**
68    * hashCode overriden to guarantee that 'equal' objects have the same hash
69    * code
70    */
 
71  6 toggle @Override
72    public int hashCode()
73    {
74  6 return value == null ? super.hashCode()
75    : value.toUpperCase().hashCode();
76    }
77    }