public void freeMac(long mac) {
   Range range = findIncludingRange(mac);
   if (range == null) {
     customMacs.remove(mac);
   } else {
     range.freeMac(mac);
   }
 }
 private boolean useMac(long mac, boolean allowDuplicates) {
   Range range = findIncludingRange(mac);
   if (range == null) {
     return customMacs.add(mac, allowDuplicates);
   } else {
     return range.use(mac, allowDuplicates);
   }
 }
 public boolean isMacInUse(long mac) {
   Range range = findIncludingRange(mac);
   return range == null ? customMacs.contains(mac) : range.isAllocated(mac);
 }
 /** Tests for add. */
 @Test
 public final void testAdd() {
   final ObjectCounter<String> ocString = new ObjectCounter<String>();
   final String bla = "bla";
   final String blub = "blub";
   ocString.add(bla);
   Map<String, Integer> resmap = ocString.getMap();
   assertEquals(Integer.valueOf(1), resmap.get(bla));
   ocString.add(bla);
   resmap = ocString.getMap();
   assertEquals(Integer.valueOf(2), resmap.get(bla));
   ocString.add(bla);
   resmap = ocString.getMap();
   assertEquals(Integer.valueOf(3), resmap.get(bla));
   assertEquals(null, resmap.get(blub));
   ocString.add(blub);
   resmap = ocString.getMap();
   assertEquals(Integer.valueOf(3), resmap.get(bla));
   assertEquals(Integer.valueOf(1), resmap.get(blub));
   ocString.clear();
   resmap = ocString.getMap();
   assertEquals(null, resmap.get(bla));
   assertEquals(null, resmap.get(blub));
 }