private static void createIDsForAtomContainer ( IAtomContainer container , List < String > tabuList ) { if ( tabuList == null ) tabuList = AtomContainerManipulator . getAllIDs ( container ) ; if ( null == container . getID ( ) ) { // generate new ID and remember it atomContainerCount = setID ( ATOMCONTAINER_PREFIX , atomContainerCount , container , tabuList ) ; } // the tabu list for the container should force singularity // within a container only! List < String > internalTabuList = AtomContainerManipulator . getAllIDs ( container ) ; if ( policy == OBJECT_UNIQUE_POLICY ) { // start atom and bond indices within a container set always from 1 atomCount = 0 ; bondCount = 0 ; } else { internalTabuList = tabuList ; } Iterator < IAtom > atoms = container . atoms ( ) . iterator ( ) ; while ( atoms . hasNext ( ) ) { IAtom atom = atoms . next ( ) ; if ( null == atom . getID ( ) ) { atomCount = setID ( ATOM_PREFIX , atomCount , atom , internalTabuList ) ; } } Iterator < IBond > bonds = container . bonds ( ) . iterator ( ) ; while ( bonds . hasNext ( ) ) { IBond bond = bonds . next ( ) ; if ( null == bond . getID ( ) ) { bondCount = setID ( BOND_PREFIX , bondCount , bond , internalTabuList ) ; } } }
Labels the Atom s and Bond s in the AtomContainer using the a1 a2 b1 b2 scheme often used in CML .