Clover icon

Coverage Report

  1. Project Clover database Thu Nov 28 2024 18:06:40 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
79
39
8
0.73
2.75
4
2

Classes

Class Line # Actions
CaseInsensitiveString 30 11 8
1.0100%
 

Contributing tests

This file is covered by 70 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    import java.util.Locale;
29   
 
30    public final class CaseInsensitiveString
31    {
32    String value;
33   
 
34  433 toggle public CaseInsensitiveString(String s)
35    {
36  433 this.value = s;
37    }
38   
 
39  248 toggle @Override
40    public String toString()
41    {
42  248 return value;
43    }
44   
45    /**
46    * Answers true if the object compared to is a CaseInsensitiveString wrapping
47    * the same string value (ignoring case), or if both wrap a null value, else
48    * false
49    */
 
50  184 toggle @Override
51    public boolean equals(Object o)
52    {
53  184 if (o == null)
54    {
55  1 return false;
56    }
57  183 if (!(o instanceof CaseInsensitiveString))
58    {
59  9 return false;
60    }
61  174 CaseInsensitiveString obj = (CaseInsensitiveString) o;
62  174 if (value == null)
63    {
64  2 return obj.value == null;
65    }
66  172 return value.equalsIgnoreCase(obj.value);
67    }
68   
69    /**
70    * hashCode overriden to guarantee that 'equal' objects have the same hash
71    * code
72    */
 
73  6 toggle @Override
74    public int hashCode()
75    {
76  6 return value == null ? super.hashCode()
77    : value.toUpperCase(Locale.ROOT).hashCode();
78    }
79    }