docs: public synchronized boolean add(Object o) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "add", debugId(o));
  
      boolean result = false;
  
      /* It should always be an Id so just cast it. If someone is using the     */
      /* class for the wrong purpose they will get a ClassCastException, which  */
      /* is permissable.                                                        */
      Long id = (Long)o;
  
      /* NPE is also permissable, if someone is using the class incorrectly.    */
      int i = hashToTable(id, table);
  
      /* If there is no Entry in the table slot, just add it.                   */
      if (table[i] == null) {
        table[i] = new Entry(id);
        result = true;
      }
  
      /* Otherwise, we have to search down the Entry list for the Schema Id.    */
      else {
        Entry current = table[i];
        int depth = current.contains(id, 0);
  
        /* If depth > 0, we didn't find the Schema so we must add it            */
        if (depth > 0) {
  
          /* If the depth searched was less than the MAX, just make a new Entry */
          /* at  of the list, and put it in the table.                          */
          if (depth < MAX_ENTRY_DEPTH) {
            Entry newEntry = new Entry(id, current);
            table[i] = newEntry;
            result = true;
          }
  
          /* Otherwise, the depth is too big so we must resize first.           */
          else {
            resize();
  
            /* Now we have to get the new hash value & look in the new table    */
            i = hashToTable(id, table);
            current = table[i];
  
            /* Make the new Entry and add it                                    */
            Entry newEntry = new Entry(id, current);
            table[i] = newEntry;
            result = true;
          }
  
        }
  
        /* If depth = 0, the SchemaId is already in the SchemaSet so do nothing */
        else {}
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "add",  result);
      return result;
  
    }