Beispiel #1
0
 /**
  * Add a new key-id pair.
  *
  * @param key is the key for which an id is required
  * @return the new id or 0 if the key is already mapped or the operation fails
  */
 public int addPair(long key) {
   if (validKey(key) || (ids.firstOut() == 0)) return 0;
   int id = ids.firstOut();
   if (!ht.insert(key, id)) return 0;
   ids.swap(id);
   cnt++;
   return id;
 }
Beispiel #2
0
 /**
  * Remove a pair from the mapping. This operation removes a (key,id) pair from the mapping.
  *
  * @param key is the key whose id is to be released
  */
 public void dropPair(long key) {
   int id = ht.lookup(key);
   if (id == 0) return;
   ht.remove(key);
   ids.swap(id);
   cnt--;
 }
Beispiel #3
0
 /**
  * Add a new key-id pair.
  *
  * @param key is the key for which an id is required
  * @param id is the requested id that the key is to be mapped to
  * @return the new id or 0 if the key is already mapped or the id is already in use or the
  *     operation fails
  */
 public int addPair(long key, int id) {
   if (validKey(key) || validId(id)) return 0;
   if (!ht.insert(key, id)) return 0;
   ids.swap(id);
   cnt++;
   return id;
 }
Beispiel #4
0
 /**
  * Determine if a given identifier has been assigned to a key.
  *
  * @param id is the identifier to be checked
  * @return true if the key has been mapped, else false
  */
 public boolean validId(int id) {
   return (1 <= id && id <= n && ids.isIn(id));
 }
Beispiel #5
0
 /**
  * Get the next assigned identifier, in some arbitrary order.
  *
  * @param id is an identifer in the set
  * @return number of the next identfier
  */
 public int nextId(int id) {
   return ids.nextIn(id);
 }
Beispiel #6
0
 /**
  * Get the last assigned identifier, in some arbitrary order.
  *
  * @return number of the last identfier
  */
 public int lastId() {
   return ids.lastIn();
 }
Beispiel #7
0
 /**
  * Get the first assigned identifier, in some arbitrary order.
  *
  * @return number of the first identfier
  */
 public int firstId() {
   return ids.firstIn();
 }
Beispiel #8
0
 /** Clear the IdMap. */
 public void clear() {
   for (int i = firstId(); i != 0; i = firstId()) ids.swap(i);
 }