Clover icon

Coverage Report

  1. Project Clover database Mon Nov 18 2024 09:38:20 GMT
  2. Package jalview.util

File CaseInsensitiveString.java

 

Coverage histogram

../../img/srcFileCovDistChart7.png
21% 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
0.6521739465.2%
 

Contributing tests

This file is covered by 29 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  255 toggle public CaseInsensitiveString(String s)
35    {
36  255 this.value = s;
37    }
38   
 
39  216 toggle @Override
40    public String toString()
41    {
42  216 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  33 toggle @Override
51    public boolean equals(Object o)
52    {
53  33 if (o == null)
54    {
55  0 return false;
56    }
57  33 if (!(o instanceof CaseInsensitiveString))
58    {
59  1 return false;
60    }
61  32 CaseInsensitiveString obj = (CaseInsensitiveString) o;
62  32 if (value == null)
63    {
64  0 return obj.value == null;
65    }
66  32 return value.equalsIgnoreCase(obj.value);
67    }
68   
69    /**
70    * hashCode overriden to guarantee that 'equal' objects have the same hash
71    * code
72    */
 
73  0 toggle @Override
74    public int hashCode()
75    {
76  0 return value == null ? super.hashCode()
77    : value.toUpperCase(Locale.ROOT).hashCode();
78    }
79    }