private void checkPreconditions ( IAtomContainer container ) { for ( IAtom atom : container . atoms ( ) ) { if ( atom . getImplicitHydrogenCount ( ) == null || atom . getImplicitHydrogenCount ( ) != 0 ) throw new IllegalArgumentException ( "Hydrogens should be unsuppressed (explicit)" ) ; if ( atom . getFlag ( CDKConstants . ISAROMATIC ) ) throw new IllegalArgumentException ( "No aromatic flags should be set" ) ; } }
preconditions 1 . all hydrogens must be present as explicit nodes in the connection table . this requires that each atom explicitly states it has exactly 0 hydrogens 2 . the SMARTS treat all atoms as aliphatic and therefore no aromatic flags should be set we could remove this but ideally we don t want to modify the structure