code: public static void createIDs(IChemObject chemObject) {
          if (chemObject == null) return;
  
          resetCounters();
  
          if (chemObject instanceof IAtomContainer) {
              createIDsForAtomContainer((IAtomContainer) chemObject, null);
          } else if (chemObject instanceof IAtomContainerSet) {
              createIDsForAtomContainerSet((IAtomContainerSet) chemObject, null);
          } else if (chemObject instanceof IReaction) {
              createIDsForReaction((IReaction) chemObject, null);
          } else if (chemObject instanceof IReactionSet) {
              createIDsForReactionSet((IReactionSet) chemObject, null);
          } else if (chemObject instanceof IChemFile) {
              createIDsForChemFile((IChemFile) chemObject, null);
          } else if (chemObject instanceof IChemSequence) {
              createIDsForChemSequence((IChemSequence) chemObject, null);
          } else if (chemObject instanceof IChemModel) {
              createIDsForChemModel((IChemModel) chemObject, null);
          }
      }
docs: Labels the Atom's and Bond's in the AtomContainer using the a1, a2, b1, b2
  scheme often used in CML. Supports IAtomContainer, IAtomContainerSet,
  IChemFile, IChemModel, IChemSequence, IReaction, IReactionSet,
  and derived interfaces.
  
  @param  chemObject IChemObject to create IDs for.