public class IteratorFactory extends Object
IteratorFactory
class provides implementations of
Iterator
to ease the handling of atoms and bonds used in
Molecule
objects and its descendants. The following iterators
are included in this class:
API usage example:
//initialize an RgMolecule; RgMolecule mol = ... ; //create the iterator factory with the specified molecule and parameters related to atoms and bonds. IteratorFactory factory = new IteratorFactory(mol, IteratorFactory.INCLUDE_ALL_ATOMS, IteratorFactory.INCLUDE_ALL_BONDS); RgComponentIterator rgIterator = factory.createRgComponentIterator(); //iteration on the components of the RgMolecule. while (rgIterator.hasNext()) { Molecule component = rgIterator.next(); IteratorFactory ifc = new IteratorFactory(component, IteratorFactory.SKIP_PSEUDO_ATOM | IteratorFactory.SKIP_EXPLICIT_H, IteratorFactory.SKIP_COORDINATE_BONDS); AtomIterator atomIterator = ifc.createAtomIterator(); //iteration on the atoms of a component while (atomIterator.hasNext()){ MolAtom atom = atomIterator.next(); //process the atom ... } //iteration on the bonds of a component BondIterator bondIterator = ifc.createBondIterator(); while (bondIterator.hasNext()){ MolBond bond = bondIterator.next(); //process the bond ... } } //the inclusion pattern of IteratorFactory can be rewritten to exclude //more atoms and/or bonds, for example: IteratorFactory factory2 = new IteratorFactory(mol, IteratorFactory.INCLUDE_CHEMICAL_ATOMS_ONLY, IteratorFactory.INCLUDE_ALL_BONDS) { //this ensures that only chemical atoms with properties are iterated public boolean isExcludedAtom(MolAtom atom) { return (atom.propertyCount() == 0); } //the same can be done for bonds with isExcludedBond(MolBond bond) };
MolAtom
,
MolBond
,
Molecule
,
RxnMolecule
,
RgMolecule
Modifier and Type | Class and Description |
---|---|
class |
IteratorFactory.AtomIterator
The
AtomIterator class provides an iterator for the atoms of
the specified molecule of the factory according to the atom related
behavior set in the factory. |
class |
IteratorFactory.AtomNeighbourIterator
The
AtomNeighbourIterator class provides an iterator to
process the atoms connecting to a specified atom according to the atom
and bond related behavior of this factory. |
class |
IteratorFactory.BondIterator
The
BondIterator class provides an iterator to process the
bonds of the specified molecule in this factory according to the bond
related behavior of this factory. |
class |
IteratorFactory.BondNeighbourIterator
The
BondNeighbourIterator class provides an iterator to
process the bonds connecting to the specified atom according to the atom
and bond related behavior of this factory. |
class |
IteratorFactory.NeighbourIterator<E>
The
NeighbourIterator class provides an iterator to process
the bonds connecting to the specified atom according to the atom and bond
related behavior of this factory. |
class |
IteratorFactory.RgComponentIterator
The
RgComponentIterator class provides an iterator to
process the rgroup definition components in the specified molecule of the
factory. |
class |
IteratorFactory.RxnComponentIterator
The
RxnComponentIterator class provides an iterator to
process the components (reactant, product and agent components) in the
reaction molecule of the factory. |
class |
IteratorFactory.SgroupIterator
The
SgroupIterator class provides an iterator for the
s-groups of the specified molecule of the factory. |
Modifier and Type | Field and Description |
---|---|
static int |
INCLUDE_ALL_ATOMS
Include all atoms: chemical atoms, explicit hydrogen, multicenter, lone
pair and pseudo atoms in atom iterations.
|
static int |
INCLUDE_ALL_BONDS
Include all bonds: covalent and coordinate bonds in bond iteration.
|
static int |
INCLUDE_CHEMICAL_ATOMS
Deprecated.
As of Marvin 6.2, Use
INCLUDE_CHEMICAL_ATOMS_ONLY instead. |
static int |
INCLUDE_CHEMICAL_ATOMS_ONLY
Include only chemical atoms in iteration, skip multicenters, lone pairs
and pseudo atoms.
|
static int |
REPLACE_COORDINATE_BONDS
Replace coordinate bonds to multicenter atoms with coordinate bonds from
the metal to the represented atoms (in the MulticenterSgroup of the
multicenter).
|
static int |
SKIP_COORDINATE_BONDS
Exclude coordinate bonds from bond iteration.
|
static int |
SKIP_COVALENT_BONDS
Exclude covalent bonds from bond iteration.
|
static int |
SKIP_EXPLICIT_H
Exclude explicit hydrogens from atom iteration.
|
static int |
SKIP_LONE_PAIR
Exclude lone pairs from atom iteration.
|
static int |
SKIP_MULTICENTER
Exclude multicenters from atom iteration.
|
static int |
SKIP_PSEUDO_ATOM
Exclude pseudo atoms from atom iteration.
|
Constructor and Description |
---|
IteratorFactory(Molecule mol)
Constructs an iterator factory for the specified molecule with default
atom and bond related behavior to include all atoms and bonds.
|
IteratorFactory(MoleculeGraph mol)
Constructs an iterator factory for the specified molecule with default
atom and bond related behavior to include all atoms and bonds.
|
IteratorFactory(Molecule mol,
int atomRelatedBehavior,
int bondRelatedBehavior)
Constructs an iterator factory for the specified molecule with a
specified atom and bond related behavior.
|
Modifier and Type | Method and Description |
---|---|
IteratorFactory.AtomIterator |
createAtomIterator()
Constructs an atom iterator for the specified molecule of the factory
according to the atom related behavior set in the factory.
|
IteratorFactory.AtomNeighbourIterator |
createAtomNeighbourIterator(MolAtom atom)
Constructs an iterator to get the atom neighbours of the specified atom.
|
IteratorFactory.BondIterator |
createBondIterator()
Constructs a bond iterator for the specified molecule of the factory
according to bond related behavior set in the factory.
|
IteratorFactory.BondNeighbourIterator |
createBondNeighbourIterator(MolAtom atom)
Constructs an iterator to get the bonds connecting to the specified atom.
|
IteratorFactory.RgComponentIterator |
createRgComponentIterator()
Constructs an rgroup definition component iterator for the specified
molecule of the factory if the molecule is an RgMolecule, an empty
iterator otherwise.
|
IteratorFactory.RxnComponentIterator |
createRxnComponentIterator()
Constructs a reaction component iterator for the specified molecule of
the factory if the molecule is an RxnMolecule, an empty iterator
otherwise.
|
IteratorFactory.SgroupIterator |
createSgroupIterator()
Constructs an s-group iterator for the specified molecule of the factory.
|
boolean |
isExcludedAtom(MolAtom atom)
By overriding this method, the inclusion pattern of IteratorFactory can
be rewritten to exclude more atoms, than it would normally.
|
boolean |
isExcludedBond(MolBond bond)
By overriding this method, the inclusion pattern of IteratorFactory can
be rewritten to exclude more bonds, than it would normally.
|
int |
numberOfAtoms()
Returns the number of atoms iterated by AtomIterator.
|
int |
numberOfBonds()
Returns the number of bonds iterated by BondIterator.
|
int |
numberOfNeighbours(MolAtom atom)
Returns the number of atoms/bonds iterated by
(Atom/Bond)NeighbourIterator (the two values are the same).
|
public static final int INCLUDE_ALL_BONDS
public static final int SKIP_COORDINATE_BONDS
public static final int SKIP_COVALENT_BONDS
public static final int REPLACE_COORDINATE_BONDS
public static final int INCLUDE_ALL_ATOMS
public static final int SKIP_EXPLICIT_H
public static final int SKIP_MULTICENTER
public static final int SKIP_LONE_PAIR
public static final int SKIP_PSEUDO_ATOM
@Deprecated public static final int INCLUDE_CHEMICAL_ATOMS
INCLUDE_CHEMICAL_ATOMS_ONLY
instead.public static final int INCLUDE_CHEMICAL_ATOMS_ONLY
public IteratorFactory(Molecule mol, int atomRelatedBehavior, int bondRelatedBehavior)
mol
- the molecule whose atoms and bonds to be iterated.atomRelatedBehavior
- the behavior how to iterate on atoms. Specify with the
constants:
bondRelatedBehavior
- the behavior how to iterate on bonds. Specify with the
constants:
public IteratorFactory(Molecule mol)
INCLUDE_ALL_ATOMS
,
INCLUDE_ALL_BONDS
public IteratorFactory(MoleculeGraph mol)
INCLUDE_ALL_ATOMS
,
INCLUDE_ALL_BONDS
public IteratorFactory.AtomIterator createAtomIterator()
public IteratorFactory.BondIterator createBondIterator()
public IteratorFactory.SgroupIterator createSgroupIterator()
public IteratorFactory.AtomNeighbourIterator createAtomNeighbourIterator(MolAtom atom)
atom
- the atom whose neighbour atoms to be iteratedpublic IteratorFactory.BondNeighbourIterator createBondNeighbourIterator(MolAtom atom)
atom
- the atom whose bonds to be iteratedpublic IteratorFactory.RxnComponentIterator createRxnComponentIterator()
public IteratorFactory.RgComponentIterator createRgComponentIterator()
public boolean isExcludedAtom(MolAtom atom)
atom
- the atom to be checkedpublic boolean isExcludedBond(MolBond bond)
bond
- the bond to be checkedpublic int numberOfAtoms()
public int numberOfBonds()
public int numberOfNeighbours(MolAtom atom)