| 1 |  |  | 
            
  
    | 2 |  |  | 
            
  
    | 3 |  |  | 
            
  
    | 4 |  |  | 
            
  
    | 5 |  | package javax.jmdns.impl; | 
            
  
    | 6 |  |  | 
            
  
    | 7 |  | import java.util.AbstractMap; | 
            
  
    | 8 |  | import java.util.ArrayList; | 
            
  
    | 9 |  | import java.util.Collection; | 
            
  
    | 10 |  | import java.util.Collections; | 
            
  
    | 11 |  | import java.util.HashSet; | 
            
  
    | 12 |  | import java.util.Iterator; | 
            
  
    | 13 |  | import java.util.List; | 
            
  
    | 14 |  | import java.util.Map; | 
            
  
    | 15 |  | import java.util.Set; | 
            
  
    | 16 |  |  | 
            
  
    | 17 |  | import javax.jmdns.impl.constants.DNSRecordClass; | 
            
  
    | 18 |  | import javax.jmdns.impl.constants.DNSRecordType; | 
            
  
    | 19 |  |  | 
            
  
    | 20 |  |  | 
            
  
    | 21 |  |  | 
            
  
    | 22 |  |  | 
            
  
    | 23 |  |  | 
            
  
    | 24 |  |  | 
            
  
    | 25 |  |  | 
            
  
    | 26 |  |  | 
            
  
    | 27 |  |  | 
            
  
    | 28 |  |  | 
            
  
    | 29 |  |  | 
            
  
    | 30 |  |  | 
            
  
    | 31 |  |  | 
            
  
    | 32 |  |  | 
            
  
    | 33 |  |  | 
            
  
    | 34 |  |  | 
            
  
    | 35 |  |  | 
            
  
    | 36 |  |  | 
            
  
    | 37 |  |  | 
            
  
    | 38 |  |  | 
            
  
    | 39 |  |  | 
            
  
    | 40 |  |  | 
            
  
    | 41 |  |  | 
            
  
    | 42 |  |  | 
            
  
    | 43 |  | @author | 
            
  
    | 44 |  |  | 
               
        |  |  | 
           
           |  | 72.7% | Uncovered Elements: 48 (176) | Complexity: 51 | Complexity Density: 0.5 |  | 
  
  
    | 45 |  | public class DNSCache extends AbstractMap<String, List<? extends DNSEntry>> { | 
            
  
    | 46 |  |  | 
            
  
    | 47 |  |  | 
            
  
    | 48 |  |  | 
            
  
    | 49 |  | private transient Set<Map.Entry<String, List<? extends DNSEntry>>> _entrySet  = null; | 
            
  
    | 50 |  |  | 
            
  
    | 51 |  |  | 
            
  
    | 52 |  |  | 
            
  
    | 53 |  |  | 
            
  
    | 54 |  | public static final DNSCache                                       EmptyCache = new _EmptyCache(); | 
            
  
    | 55 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 22 (22) | Complexity: 11 | Complexity Density: 1 |  | 
  
  
    | 56 |  | static final class _EmptyCache extends DNSCache { | 
            
  
    | 57 |  |  | 
            
  
    | 58 |  |  | 
            
  
    | 59 |  | @inheritDoc | 
            
  
    | 60 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 61 | 0 |  @Override... | 
            
  
    | 62 |  | public int size() { | 
            
  
    | 63 | 0 | return 0; | 
            
  
    | 64 |  | } | 
            
  
    | 65 |  |  | 
            
  
    | 66 |  |  | 
            
  
    | 67 |  | @inheritDoc | 
            
  
    | 68 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 69 | 0 |  @Override... | 
            
  
    | 70 |  | public boolean isEmpty() { | 
            
  
    | 71 | 0 | return true; | 
            
  
    | 72 |  | } | 
            
  
    | 73 |  |  | 
            
  
    | 74 |  |  | 
            
  
    | 75 |  | @inheritDoc | 
            
  
    | 76 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 77 | 0 |  @Override... | 
            
  
    | 78 |  | public boolean containsKey(Object key) { | 
            
  
    | 79 | 0 | return false; | 
            
  
    | 80 |  | } | 
            
  
    | 81 |  |  | 
            
  
    | 82 |  |  | 
            
  
    | 83 |  | @inheritDoc | 
            
  
    | 84 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 85 | 0 |  @Override... | 
            
  
    | 86 |  | public boolean containsValue(Object value) { | 
            
  
    | 87 | 0 | return false; | 
            
  
    | 88 |  | } | 
            
  
    | 89 |  |  | 
            
  
    | 90 |  |  | 
            
  
    | 91 |  | @inheritDoc | 
            
  
    | 92 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 93 | 0 |  @Override... | 
            
  
    | 94 |  | public List<DNSEntry> get(Object key) { | 
            
  
    | 95 | 0 | return null; | 
            
  
    | 96 |  | } | 
            
  
    | 97 |  |  | 
            
  
    | 98 |  |  | 
            
  
    | 99 |  | @inheritDoc | 
            
  
    | 100 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 101 | 0 |  @Override... | 
            
  
    | 102 |  | public Set<String> keySet() { | 
            
  
    | 103 | 0 | return Collections.emptySet(); | 
            
  
    | 104 |  | } | 
            
  
    | 105 |  |  | 
            
  
    | 106 |  |  | 
            
  
    | 107 |  | @inheritDoc | 
            
  
    | 108 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 109 | 0 |  @Override... | 
            
  
    | 110 |  | public Collection<List<? extends DNSEntry>> values() { | 
            
  
    | 111 | 0 | return Collections.emptySet(); | 
            
  
    | 112 |  | } | 
            
  
    | 113 |  |  | 
            
  
    | 114 |  |  | 
            
  
    | 115 |  | @inheritDoc | 
            
  
    | 116 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 117 | 0 |  @Override... | 
            
  
    | 118 |  | public Set<Map.Entry<String, List<? extends DNSEntry>>> entrySet() { | 
            
  
    | 119 | 0 | return Collections.emptySet(); | 
            
  
    | 120 |  | } | 
            
  
    | 121 |  |  | 
            
  
    | 122 |  |  | 
            
  
    | 123 |  | @inheritDoc | 
            
  
    | 124 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 125 | 0 |  @Override... | 
            
  
    | 126 |  | public boolean equals(Object o) { | 
            
  
    | 127 | 0 | return (o instanceof Map) && ((Map<?, ?>) o).size() == 0; | 
            
  
    | 128 |  | } | 
            
  
    | 129 |  |  | 
            
  
    | 130 |  |  | 
            
  
    | 131 |  | @inheritDoc | 
            
  
    | 132 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 133 | 0 |  @Override... | 
            
  
    | 134 |  | public List<? extends DNSEntry> put(String key, List<? extends DNSEntry> value) { | 
            
  
    | 135 | 0 | return null; | 
            
  
    | 136 |  | } | 
            
  
    | 137 |  |  | 
            
  
    | 138 |  |  | 
            
  
    | 139 |  | @inheritDoc | 
            
  
    | 140 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 141 | 0 |  @Override... | 
            
  
    | 142 |  | public int hashCode() { | 
            
  
    | 143 | 0 | return 0; | 
            
  
    | 144 |  | } | 
            
  
    | 145 |  |  | 
            
  
    | 146 |  | } | 
            
  
    | 147 |  |  | 
            
  
    | 148 |  |  | 
            
  
    | 149 |  |  | 
            
  
    | 150 |  |  | 
               
        |  |  | 
           
           |  | 35.4% | Uncovered Elements: 31 (48) | Complexity: 16 | Complexity Density: 0.59 |  | 
  
  
    | 151 |  | protected static class _CacheEntry extends Object implements Map.Entry<String, List<? extends DNSEntry>> { | 
            
  
    | 152 |  |  | 
            
  
    | 153 |  | private List<? extends DNSEntry> _value; | 
            
  
    | 154 |  |  | 
            
  
    | 155 |  | private String                   _key; | 
            
  
    | 156 |  |  | 
            
  
    | 157 |  |  | 
            
  
    | 158 |  | @param | 
            
  
    | 159 |  | @param | 
            
  
    | 160 |  |  | 
               
        |  |  | 
           
           |  | 80% | Uncovered Elements: 1 (5) | Complexity: 2 | Complexity Density: 0.67 |  | 
  
  
    | 161 | 92 |  protected _CacheEntry(String key, List<? extends DNSEntry> value) {... | 
            
  
    | 162 | 91 | super(); | 
            
  
    | 163 | 93 | _key = (key != null ? key.trim().toLowerCase() : null); | 
            
  
    | 164 | 95 | _value = value; | 
            
  
    | 165 |  | } | 
            
  
    | 166 |  |  | 
            
  
    | 167 |  |  | 
            
  
    | 168 |  | @param | 
            
  
    | 169 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 6 (6) | Complexity: 2 | Complexity Density: 0.5 |  | 
  
  
    | 170 | 0 |  protected _CacheEntry(Map.Entry<String, List<? extends DNSEntry>> entry) {... | 
            
  
    | 171 | 0 | super(); | 
            
  
    | 172 | 0 | if (entry instanceof _CacheEntry) { | 
            
  
    | 173 | 0 | _key = ((_CacheEntry) entry).getKey(); | 
            
  
    | 174 | 0 | _value = ((_CacheEntry) entry).getValue(); | 
            
  
    | 175 |  | } | 
            
  
    | 176 |  | } | 
            
  
    | 177 |  |  | 
            
  
    | 178 |  |  | 
            
  
    | 179 |  | @inheritDoc | 
            
  
    | 180 |  |  | 
               
        |  |  | 
           
           |  | 66.7% | Uncovered Elements: 1 (3) | Complexity: 2 | Complexity Density: 2 |  | 
  
  
    | 181 | 3211 |  @Override... | 
            
  
    | 182 |  | public String getKey() { | 
            
  
    | 183 | 3215 | return (_key != null ? _key : ""); | 
            
  
    | 184 |  | } | 
            
  
    | 185 |  |  | 
            
  
    | 186 |  |  | 
            
  
    | 187 |  | @inheritDoc | 
            
  
    | 188 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 189 | 1758 |  @Override... | 
            
  
    | 190 |  | public List<? extends DNSEntry> getValue() { | 
            
  
    | 191 | 1759 | return _value; | 
            
  
    | 192 |  | } | 
            
  
    | 193 |  |  | 
            
  
    | 194 |  |  | 
            
  
    | 195 |  | @inheritDoc | 
            
  
    | 196 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (3) | Complexity: 1 | Complexity Density: 0.33 |  | 
  
  
    | 197 | 66 |  @Override... | 
            
  
    | 198 |  | public List<? extends DNSEntry> setValue(List<? extends DNSEntry> value) { | 
            
  
    | 199 | 66 | List<? extends DNSEntry> oldValue = _value; | 
            
  
    | 200 | 66 | _value = value; | 
            
  
    | 201 | 66 | return oldValue; | 
            
  
    | 202 |  | } | 
            
  
    | 203 |  |  | 
            
  
    | 204 |  |  | 
            
  
    | 205 |  |  | 
            
  
    | 206 |  |  | 
            
  
    | 207 |  | @return | 
            
  
    | 208 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 209 | 0 |  public boolean isEmpty() {... | 
            
  
    | 210 | 0 | return this.getValue().isEmpty(); | 
            
  
    | 211 |  | } | 
            
  
    | 212 |  |  | 
            
  
    | 213 |  |  | 
            
  
    | 214 |  | @inheritDoc | 
            
  
    | 215 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 5 (5) | Complexity: 2 | Complexity Density: 0.67 |  | 
  
  
    | 216 | 0 |  @Override... | 
            
  
    | 217 |  | public boolean equals(Object entry) { | 
            
  
    | 218 | 0 | if (!(entry instanceof Map.Entry)) { | 
            
  
    | 219 | 0 | return false; | 
            
  
    | 220 |  | } | 
            
  
    | 221 | 0 | return this.getKey().equals(((Map.Entry<?, ?>) entry).getKey()) && this.getValue().equals(((Map.Entry<?, ?>) entry).getValue()); | 
            
  
    | 222 |  | } | 
            
  
    | 223 |  |  | 
            
  
    | 224 |  |  | 
            
  
    | 225 |  | @inheritDoc | 
            
  
    | 226 |  |  | 
               
        |  |  | 
           
           |  | 66.7% | Uncovered Elements: 1 (3) | Complexity: 2 | Complexity Density: 2 |  | 
  
  
    | 227 | 101 |  @Override... | 
            
  
    | 228 |  | public int hashCode() { | 
            
  
    | 229 | 102 | return (_key == null ? 0 : _key.hashCode()); | 
            
  
    | 230 |  | } | 
            
  
    | 231 |  |  | 
            
  
    | 232 |  |  | 
            
  
    | 233 |  | @inheritDoc | 
            
  
    | 234 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 12 (12) | Complexity: 3 | Complexity Density: 0.3 |  | 
  
  
    | 235 | 0 |  @Override... | 
            
  
    | 236 |  | public synchronized String toString() { | 
            
  
    | 237 | 0 | StringBuffer aLog = new StringBuffer(200); | 
            
  
    | 238 | 0 | aLog.append("\n\t\tname '"); | 
            
  
    | 239 | 0 | aLog.append(_key); | 
            
  
    | 240 | 0 | aLog.append("' "); | 
            
  
    | 241 | 0 | if ((_value != null) && (!_value.isEmpty())) { | 
            
  
    | 242 | 0 | for (DNSEntry entry : _value) { | 
            
  
    | 243 | 0 | aLog.append("\n\t\t\t"); | 
            
  
    | 244 | 0 | aLog.append(entry.toString()); | 
            
  
    | 245 |  | } | 
            
  
    | 246 |  | } else { | 
            
  
    | 247 | 0 | aLog.append(" no entries"); | 
            
  
    | 248 |  | } | 
            
  
    | 249 | 0 | return aLog.toString(); | 
            
  
    | 250 |  | } | 
            
  
    | 251 |  | } | 
            
  
    | 252 |  |  | 
            
  
    | 253 |  |  | 
            
  
    | 254 |  |  | 
            
  
    | 255 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 256 | 2 |  public DNSCache() {... | 
            
  
    | 257 | 2 | this(1024); | 
            
  
    | 258 |  | } | 
            
  
    | 259 |  |  | 
            
  
    | 260 |  |  | 
            
  
    | 261 |  | @param | 
            
  
    | 262 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 7 (7) | Complexity: 3 | Complexity Density: 1 |  | 
  
  
    | 263 | 0 |  public DNSCache(DNSCache map) {... | 
            
  
    | 264 | 0 | this(map != null ? map.size() : 1024); | 
            
  
    | 265 | 0 | if (map != null) { | 
            
  
    | 266 | 0 | this.putAll(map); | 
            
  
    | 267 |  | } | 
            
  
    | 268 |  | } | 
            
  
    | 269 |  |  | 
            
  
    | 270 |  |  | 
            
  
    | 271 |  |  | 
            
  
    | 272 |  |  | 
            
  
    | 273 |  | @param | 
            
  
    | 274 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (2) | Complexity: 1 | Complexity Density: 0.5 |  | 
  
  
    | 275 | 31 |  public DNSCache(int initialCapacity) {... | 
            
  
    | 276 | 31 | super(); | 
            
  
    | 277 | 31 | _entrySet = new HashSet<Map.Entry<String, List<? extends DNSEntry>>>(initialCapacity); | 
            
  
    | 278 |  | } | 
            
  
    | 279 |  |  | 
            
  
    | 280 |  |  | 
            
  
    | 281 |  |  | 
            
  
    | 282 |  |  | 
            
  
    | 283 |  |  | 
            
  
    | 284 |  |  | 
            
  
    | 285 |  | @see | 
            
  
    | 286 |  |  | 
               
        |  |  | 
           
           |  | 60% | Uncovered Elements: 2 (5) | Complexity: 2 | Complexity Density: 0.67 |  | 
  
  
    | 287 | 2067 |  @Override... | 
            
  
    | 288 |  | public Set<Map.Entry<String, List<? extends DNSEntry>>> entrySet() { | 
            
  
    | 289 | 2064 | if (_entrySet == null) { | 
            
  
    | 290 | 0 | _entrySet = new HashSet<Map.Entry<String, List<? extends DNSEntry>>>(); | 
            
  
    | 291 |  | } | 
            
  
    | 292 | 2066 | return _entrySet; | 
            
  
    | 293 |  | } | 
            
  
    | 294 |  |  | 
            
  
    | 295 |  |  | 
            
  
    | 296 |  | @param | 
            
  
    | 297 |  | @return | 
            
  
    | 298 |  |  | 
               
        |  |  | 
           
           |  | 62.5% | Uncovered Elements: 6 (16) | Complexity: 5 | Complexity Density: 0.62 |  | 
  
  
    | 299 | 174 |  protected Map.Entry<String, List<? extends DNSEntry>> getEntry(String key) {... | 
            
  
    | 300 | 176 | String stringKey = (key != null ? key.trim().toLowerCase() : null); | 
            
  
    | 301 | 178 | for (Map.Entry<String, List<? extends DNSEntry>> entry : this.entrySet()) { | 
            
  
    | 302 | 273 | if (stringKey != null) { | 
            
  
    | 303 | 277 | if (stringKey.equals(entry.getKey())) { | 
            
  
    | 304 | 83 | return entry; | 
            
  
    | 305 |  | } | 
            
  
    | 306 |  | } else { | 
            
  
    | 307 | 0 | if (entry.getKey() == null) { | 
            
  
    | 308 | 0 | return entry; | 
            
  
    | 309 |  | } | 
            
  
    | 310 |  | } | 
            
  
    | 311 |  | } | 
            
  
    | 312 | 95 | return null; | 
            
  
    | 313 |  | } | 
            
  
    | 314 |  |  | 
            
  
    | 315 |  |  | 
            
  
    | 316 |  | @inheritDoc | 
            
  
    | 317 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 9 (9) | Complexity: 2 | Complexity Density: 0.29 |  | 
  
  
    | 318 | 0 |  @Override... | 
            
  
    | 319 |  | public List<? extends DNSEntry> put(String key, List<? extends DNSEntry> value) { | 
            
  
    | 320 | 0 | synchronized (this) { | 
            
  
    | 321 | 0 | List<? extends DNSEntry> oldValue = null; | 
            
  
    | 322 | 0 | Map.Entry<String, List<? extends DNSEntry>> oldEntry = this.getEntry(key); | 
            
  
    | 323 | 0 | if (oldEntry != null) { | 
            
  
    | 324 | 0 | oldValue = oldEntry.setValue(value); | 
            
  
    | 325 |  | } else { | 
            
  
    | 326 | 0 | this.entrySet().add(new _CacheEntry(key, value)); | 
            
  
    | 327 |  | } | 
            
  
    | 328 | 0 | return oldValue; | 
            
  
    | 329 |  | } | 
            
  
    | 330 |  | } | 
            
  
    | 331 |  |  | 
            
  
    | 332 |  |  | 
            
  
    | 333 |  | @inheritDoc | 
            
  
    | 334 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
  
    | 335 | 0 |  @Override... | 
            
  
    | 336 |  | protected Object clone() throws CloneNotSupportedException { | 
            
  
    | 337 | 0 | return new DNSCache(this); | 
            
  
    | 338 |  | } | 
            
  
    | 339 |  |  | 
            
  
    | 340 |  |  | 
            
  
    | 341 |  |  | 
            
  
    | 342 |  |  | 
            
  
    | 343 |  |  | 
            
  
    | 344 |  |  | 
            
  
    | 345 |  | @return | 
            
  
    | 346 |  |  | 
               
        |  |  | 
           
           |  | 85.7% | Uncovered Elements: 1 (7) | Complexity: 2 | Complexity Density: 0.4 |  | 
  
  
    | 347 | 115 |  public synchronized Collection<DNSEntry> allValues() {... | 
            
  
    | 348 | 115 | List<DNSEntry> allValues = new ArrayList<DNSEntry>(); | 
            
  
    | 349 | 114 | for (List<? extends DNSEntry> entry : this.values()) { | 
            
  
    | 350 | 345 | if (entry != null) { | 
            
  
    | 351 | 344 | allValues.addAll(entry); | 
            
  
    | 352 |  | } | 
            
  
    | 353 |  | } | 
            
  
    | 354 | 115 | return allValues; | 
            
  
    | 355 |  | } | 
            
  
    | 356 |  |  | 
            
  
    | 357 |  |  | 
            
  
    | 358 |  |  | 
            
  
    | 359 |  |  | 
            
  
    | 360 |  | @param | 
            
  
    | 361 |  | @return | 
            
  
    | 362 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (7) | Complexity: 2 | Complexity Density: 0.4 |  | 
  
  
    | 363 | 631 |  public synchronized Collection<? extends DNSEntry> getDNSEntryList(String name) {... | 
            
  
    | 364 | 633 | Collection<? extends DNSEntry> entryList = this._getDNSEntryList(name); | 
            
  
    | 365 | 635 | if (entryList != null) { | 
            
  
    | 366 | 539 | entryList = new ArrayList<DNSEntry>(entryList); | 
            
  
    | 367 |  | } else { | 
            
  
    | 368 | 96 | entryList = Collections.emptyList(); | 
            
  
    | 369 |  | } | 
            
  
    | 370 | 626 | return entryList; | 
            
  
    | 371 |  | } | 
            
  
    | 372 |  |  | 
               
        |  |  | 
           
           |  | 66.7% | Uncovered Elements: 1 (3) | Complexity: 2 | Complexity Density: 2 |  | 
  
  
    | 373 | 1663 |  private Collection<? extends DNSEntry> _getDNSEntryList(String name) {... | 
            
  
    | 374 | 1665 | return this.get(name != null ? name.toLowerCase() : null); | 
            
  
    | 375 |  | } | 
            
  
    | 376 |  |  | 
            
  
    | 377 |  |  | 
            
  
    | 378 |  |  | 
            
  
    | 379 |  |  | 
            
  
    | 380 |  | @param | 
            
  
    | 381 |  | @return | 
            
  
    | 382 |  |  | 
               
        |  |  | 
           
           |  | 93.3% | Uncovered Elements: 1 (15) | Complexity: 4 | Complexity Density: 0.44 |  | 
  
  
    | 383 | 780 |  public synchronized DNSEntry getDNSEntry(DNSEntry dnsEntry) {... | 
            
  
    | 384 | 787 | DNSEntry result = null; | 
            
  
    | 385 | 766 | if (dnsEntry != null) { | 
            
  
    | 386 | 778 | Collection<? extends DNSEntry> entryList = this._getDNSEntryList(dnsEntry.getKey()); | 
            
  
    | 387 | 783 | if (entryList != null) { | 
            
  
    | 388 | 684 | for (DNSEntry testDNSEntry : entryList) { | 
            
  
    | 389 | 965 | if (testDNSEntry.isSameEntry(dnsEntry)) { | 
            
  
    | 390 | 623 | result = testDNSEntry; | 
            
  
    | 391 | 624 | break; | 
            
  
    | 392 |  | } | 
            
  
    | 393 |  | } | 
            
  
    | 394 |  | } | 
            
  
    | 395 |  | } | 
            
  
    | 396 | 780 | return result; | 
            
  
    | 397 |  | } | 
            
  
    | 398 |  |  | 
            
  
    | 399 |  |  | 
            
  
    | 400 |  |  | 
            
  
    | 401 |  |  | 
            
  
    | 402 |  | @param | 
            
  
    | 403 |  | @param | 
            
  
    | 404 |  | @param | 
            
  
    | 405 |  | @return | 
            
  
    | 406 |  |  | 
               
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (12) | Complexity: 5 | Complexity Density: 0.62 |  | 
  
  
    | 407 | 213 |  public synchronized DNSEntry getDNSEntry(String name, DNSRecordType type, DNSRecordClass recordClass) {... | 
            
  
    | 408 | 214 | DNSEntry result = null; | 
            
  
    | 409 | 215 | Collection<? extends DNSEntry> entryList = this._getDNSEntryList(name); | 
            
  
    | 410 | 213 | if (entryList != null) { | 
            
  
    | 411 | 52 | for (DNSEntry testDNSEntry : entryList) { | 
            
  
    | 412 | 77 | if (testDNSEntry.getRecordType().equals(type) && ((DNSRecordClass.CLASS_ANY == recordClass) || testDNSEntry.getRecordClass().equals(recordClass))) { | 
            
  
    | 413 | 51 | result = testDNSEntry; | 
            
  
    | 414 | 51 | break; | 
            
  
    | 415 |  | } | 
            
  
    | 416 |  | } | 
            
  
    | 417 |  | } | 
            
  
    | 418 | 212 | return result; | 
            
  
    | 419 |  | } | 
            
  
    | 420 |  |  | 
            
  
    | 421 |  |  | 
            
  
    | 422 |  |  | 
            
  
    | 423 |  |  | 
            
  
    | 424 |  | @param | 
            
  
    | 425 |  | @param | 
            
  
    | 426 |  | @param | 
            
  
    | 427 |  | @return | 
            
  
    | 428 |  |  | 
               
        |  |  | 
           
           |  | 86.7% | Uncovered Elements: 2 (15) | Complexity: 6 | Complexity Density: 0.67 |  | 
  
  
    | 429 | 42 |  public synchronized Collection<? extends DNSEntry> getDNSEntryList(String name, DNSRecordType type, DNSRecordClass recordClass) {... | 
            
  
    | 430 | 42 | Collection<? extends DNSEntry> entryList = this._getDNSEntryList(name); | 
            
  
    | 431 | 42 | if (entryList != null) { | 
            
  
    | 432 | 42 | entryList = new ArrayList<DNSEntry>(entryList); | 
            
  
    | 433 | 124 | for (Iterator<? extends DNSEntry> i = entryList.iterator(); i.hasNext();) { | 
            
  
    | 434 | 82 | DNSEntry testDNSEntry = i.next(); | 
            
  
    | 435 | 82 | if (!testDNSEntry.getRecordType().equals(type) || ((DNSRecordClass.CLASS_ANY != recordClass) && !testDNSEntry.getRecordClass().equals(recordClass))) { | 
            
  
    | 436 | 41 | i.remove(); | 
            
  
    | 437 |  | } | 
            
  
    | 438 |  | } | 
            
  
    | 439 |  | } else { | 
            
  
    | 440 | 0 | entryList = Collections.emptyList(); | 
            
  
    | 441 |  | } | 
            
  
    | 442 | 42 | return entryList; | 
            
  
    | 443 |  | } | 
            
  
    | 444 |  |  | 
            
  
    | 445 |  |  | 
            
  
    | 446 |  |  | 
            
  
    | 447 |  |  | 
            
  
    | 448 |  | @param | 
            
  
    | 449 |  | @return | 
            
  
    | 450 |  |  | 
               
        |  |  | 
           
           |  | 94.7% | Uncovered Elements: 1 (19) | Complexity: 4 | Complexity Density: 0.31 |  | 
  
  
    | 451 | 148 |  public synchronized boolean addDNSEntry(final DNSEntry dnsEntry) {... | 
            
  
    | 452 | 153 | boolean result = false; | 
            
  
    | 453 | 153 | if (dnsEntry != null) { | 
            
  
    | 454 | 151 | Map.Entry<String, List<? extends DNSEntry>> oldEntry = this.getEntry(dnsEntry.getKey()); | 
            
  
    | 455 |  |  | 
            
  
    | 456 | 152 | List<DNSEntry> aNewValue = null; | 
            
  
    | 457 | 152 | if (oldEntry != null) { | 
            
  
    | 458 | 58 | aNewValue = new ArrayList<DNSEntry>(oldEntry.getValue()); | 
            
  
    | 459 |  | } else { | 
            
  
    | 460 | 95 | aNewValue = new ArrayList<DNSEntry>(); | 
            
  
    | 461 |  | } | 
            
  
    | 462 | 152 | aNewValue.add(dnsEntry); | 
            
  
    | 463 |  |  | 
            
  
    | 464 | 151 | if (oldEntry != null) { | 
            
  
    | 465 | 58 | oldEntry.setValue(aNewValue); | 
            
  
    | 466 |  | } else { | 
            
  
    | 467 | 93 | this.entrySet().add(new _CacheEntry(dnsEntry.getKey(), aNewValue)); | 
            
  
    | 468 |  | } | 
            
  
    | 469 |  |  | 
            
  
    | 470 | 152 | result = true; | 
            
  
    | 471 |  | } | 
            
  
    | 472 | 151 | return result; | 
            
  
    | 473 |  | } | 
            
  
    | 474 |  |  | 
            
  
    | 475 |  |  | 
            
  
    | 476 |  |  | 
            
  
    | 477 |  |  | 
            
  
    | 478 |  | @param | 
            
  
    | 479 |  | @return | 
            
  
    | 480 |  |  | 
               
        |  |  | 
           
           |  | 85.7% | Uncovered Elements: 2 (14) | Complexity: 4 | Complexity Density: 0.5 |  | 
  
  
    | 481 | 17 |  public synchronized boolean removeDNSEntry(DNSEntry dnsEntry) {... | 
            
  
    | 482 | 17 | boolean result = false; | 
            
  
    | 483 | 17 | if (dnsEntry != null) { | 
            
  
    | 484 | 17 | Map.Entry<String, List<? extends DNSEntry>> existingEntry = this.getEntry(dnsEntry.getKey()); | 
            
  
    | 485 | 17 | if (existingEntry != null) { | 
            
  
    | 486 | 17 | result = existingEntry.getValue().remove(dnsEntry); | 
            
  
    | 487 |  |  | 
            
  
    | 488 | 17 | if (existingEntry.getValue().isEmpty()) { | 
            
  
    | 489 | 10 | this.entrySet().remove(existingEntry); | 
            
  
    | 490 |  | } | 
            
  
    | 491 |  | } | 
            
  
    | 492 |  | } | 
            
  
    | 493 | 17 | return result; | 
            
  
    | 494 |  | } | 
            
  
    | 495 |  |  | 
            
  
    | 496 |  |  | 
            
  
    | 497 |  |  | 
            
  
    | 498 |  |  | 
            
  
    | 499 |  |  | 
            
  
    | 500 |  | @param | 
            
  
    | 501 |  | @param | 
            
  
    | 502 |  | @return | 
            
  
    | 503 |  |  | 
               
        |  |  | 
           
           |  | 75% | Uncovered Elements: 5 (20) | Complexity: 6 | Complexity Density: 0.43 |  | 
  
  
    | 504 | 7 |  public synchronized boolean replaceDNSEntry(DNSEntry newDNSEntry, DNSEntry existingDNSEntry) {... | 
            
  
    | 505 | 8 | boolean result = false; | 
            
  
    | 506 | 8 | if ((newDNSEntry != null) && (existingDNSEntry != null) && (newDNSEntry.getKey().equals(existingDNSEntry.getKey()))) { | 
            
  
    | 507 | 7 | Map.Entry<String, List<? extends DNSEntry>> oldEntry = this.getEntry(newDNSEntry.getKey()); | 
            
  
    | 508 |  |  | 
            
  
    | 509 | 7 | List<DNSEntry> aNewValue = null; | 
            
  
    | 510 | 8 | if (oldEntry != null) { | 
            
  
    | 511 | 8 | aNewValue = new ArrayList<DNSEntry>(oldEntry.getValue()); | 
            
  
    | 512 |  | } else { | 
            
  
    | 513 | 0 | aNewValue = new ArrayList<DNSEntry>(); | 
            
  
    | 514 |  | } | 
            
  
    | 515 | 8 | aNewValue.remove(existingDNSEntry); | 
            
  
    | 516 | 7 | aNewValue.add(newDNSEntry); | 
            
  
    | 517 |  |  | 
            
  
    | 518 | 8 | if (oldEntry != null) { | 
            
  
    | 519 | 6 | oldEntry.setValue(aNewValue); | 
            
  
    | 520 |  | } else { | 
            
  
    | 521 | 0 | this.entrySet().add(new _CacheEntry(newDNSEntry.getKey(), aNewValue)); | 
            
  
    | 522 |  | } | 
            
  
    | 523 |  |  | 
            
  
    | 524 | 7 | result = true; | 
            
  
    | 525 |  | } | 
            
  
    | 526 | 7 | return result; | 
            
  
    | 527 |  | } | 
            
  
    | 528 |  |  | 
            
  
    | 529 |  |  | 
            
  
    | 530 |  | @inheritDoc | 
            
  
    | 531 |  |  | 
               
        |  |  | 
           
           |  | 0% | Uncovered Elements: 6 (6) | Complexity: 1 | Complexity Density: 0.17 |  | 
  
  
    | 532 | 0 |  @Override... | 
            
  
    | 533 |  | public synchronized String toString() { | 
            
  
    | 534 | 0 | StringBuffer aLog = new StringBuffer(2000); | 
            
  
    | 535 | 0 | aLog.append("\t---- cache ----"); | 
            
  
    | 536 | 0 | for (Map.Entry<String, List<? extends DNSEntry>> entry : this.entrySet()) { | 
            
  
    | 537 | 0 | aLog.append("\n\t\t"); | 
            
  
    | 538 | 0 | aLog.append(entry.toString()); | 
            
  
    | 539 |  | } | 
            
  
    | 540 | 0 | return aLog.toString(); | 
            
  
    | 541 |  | } | 
            
  
    | 542 |  |  | 
            
  
    | 543 |  | } |