Package org.openscience.cdk
Class Association
java.lang.Object
org.openscience.cdk.Association
- All Implemented Interfaces:
Serializable,Cloneable,ICDKObject,IChemObject,IElectronContainer
Base class for storing interactions like hydrogen bonds and ionic interactions.
The ElectronContainer contains zero electrons by default.
- See Also:
- Keywords:
- orbital, association, bond
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected IAtom[]The atoms which take part in the association.protected final intNumber of electrons in the association.Fields inherited from interface org.openscience.cdk.interfaces.IChemObject
ALIPHATIC, AROMATIC, CONJUGATED, HYDROGEN_BOND_ACCEPTOR, HYDROGEN_BOND_DONOR, IN_RING, MAPPED, MARKUSH, NOT_IN_RING, PLACED, REACTIVE_CENTER, SINGLE_OR_DOUBLE, TYPEABLE, VISITED -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an empty association.Association(IAtom atom1, IAtom atom2) Constructs an association between two Atom's. -
Method Summary
Modifier and TypeMethodDescriptionvoidUse this to add yourself to this IChemObject as a listener.voidaddProperties(Map<Object, Object> properties) Sets the properties of this object.voidclear(int flags) Clear the provided flags.clone()Clones thisIChemObject.booleanCompares a IChemObject with this IChemObject.booleanReturns true if the given atom participates in this Association.intflags()Access the current value of the flags for this ChemObject.getAtomAt(int position) Returns an Atom from this Association.intReturns the number of Atoms in this Association.IAtom[]getAtoms()Returns the array of atoms making up this Association.Returns aIChemObjectBuilderfor the data classes that extend this class.Returns the number of electrons in a Association.booleangetFlag(int mask) Returns the value of a given flag.boolean[]getFlags()Returns the whole set of flags.Access the internal value used to store the flags.getID()Returns the identifier (ID) of this object.intReturns the number of ChemObjectListeners registered with this object.booleanReturns the flag that indicates whether notification messages are sent around.Returns a Map with the IChemObject's properties.<T> TgetProperty(Object description) Returns a property for the IChemObject.<T> TgetProperty(Object description, Class<T> c) Access a property of the given description and cast the specified class.booleanis(int flags) Test if a flag(s) are set on this ChemObject.voidThis should be triggered by an method that changes the content of an object to that the registered listeners can react to it.voidThis should be triggered by an method that changes the content of an object to that the registered listeners can react to it.voidUse this to remove a ChemObjectListener from the ListenerList of this IChemObject.voidremoveProperty(Object description) Removes a property for a IChemObject.voidset(int flags) Set the provided flags.voidSets an Atom in this Association.voidSets the array of atoms making up this Association.voidsetElectronCount(Integer electronCount) Sets the number of electrons in this electron container.voidsetFlag(int mask, boolean value) Sets the value of some flag.voidsetFlags(boolean[] flagsNew) Sets the whole set of flags.voidSets the identifier (ID) of this object.voidsetNotification(boolean bool) Set a flag to use or not use notification.voidsetProperties(Map<Object, Object> properties) Set the properties of this object to the provided map (shallow copy).voidsetProperty(Object description, Object property) Sets a property for a IChemObject.Clones thisIChemObject, but preserves references toObjects.toString()Returns a one line string representation of this Container.
-
Field Details
-
electronCount
protected final int electronCountNumber of electrons in the association.- See Also:
-
atoms
The atoms which take part in the association. -
atomCount
protected int atomCount
-
-
Constructor Details
-
Method Details
-
getAtoms
Returns the array of atoms making up this Association.- Returns:
- An array of atoms participating in this Association
- See Also:
-
setAtoms
Sets the array of atoms making up this Association.- Parameters:
atoms- An array of atoms that forms this Association- See Also:
-
getAtomCount
public int getAtomCount()Returns the number of Atoms in this Association.- Returns:
- The number of Atoms in this Association
-
getElectronCount
Returns the number of electrons in a Association.- Specified by:
getElectronCountin interfaceIElectronContainer- Returns:
- The number of electrons in a Association.
- See Also:
-
getAtomAt
Returns an Atom from this Association.- Parameters:
position- The position in this bond where the atom is- Returns:
- The atom at the specified position
- See Also:
-
contains
Returns true if the given atom participates in this Association.- Parameters:
atom- The atom to be tested if it participates in this Association- Returns:
- true if the atom participates in this Association
-
setAtomAt
Sets an Atom in this Association.- Parameters:
atom- The atom to be setposition- The position in this Association where the atom is to be inserted- See Also:
-
toString
Returns a one line string representation of this Container. This method is conform RFC #9.- Specified by:
toStringin interfaceIChemObject- Overrides:
toStringin classObject- Returns:
- The string representation of this Container
-
setElectronCount
Sets the number of electrons in this electron container.- Specified by:
setElectronCountin interfaceIElectronContainer- Parameters:
electronCount- The number of electrons in this electron container.- See Also:
-
addListener
Use this to add yourself to this IChemObject as a listener. In order to do so, you must implement the ChemObjectListener Interface.- Specified by:
addListenerin interfaceIChemObject- Parameters:
col- the ChemObjectListener- See Also:
-
getListenerCount
public int getListenerCount()Returns the number of ChemObjectListeners registered with this object.- Specified by:
getListenerCountin interfaceIChemObject- Returns:
- the number of registered listeners.
-
removeListener
Use this to remove a ChemObjectListener from the ListenerList of this IChemObject. It will then not be notified of change in this object anymore.- Specified by:
removeListenerin interfaceIChemObject- Parameters:
col- The ChemObjectListener to be removed- See Also:
-
notifyChanged
public void notifyChanged()This should be triggered by an method that changes the content of an object to that the registered listeners can react to it.- Specified by:
notifyChangedin interfaceIChemObject
-
notifyChanged
This should be triggered by an method that changes the content of an object to that the registered listeners can react to it. This is a version of notifyChanged() which allows to propagate a change event while preserving the original origin.- Specified by:
notifyChangedin interfaceIChemObject- Parameters:
evt- A ChemObjectChangeEvent pointing to the source of where the change happend
-
setProperty
Sets a property for a IChemObject.- Specified by:
setPropertyin interfaceIChemObject- Parameters:
description- An object description of the property (most likely a unique string)property- An object with the property itself- See Also:
-
removeProperty
Removes a property for a IChemObject.- Specified by:
removePropertyin interfaceIChemObject- Parameters:
description- The object description of the property (most likely a unique string)- See Also:
-
getProperty
Returns a property for the IChemObject. The value will be cast to the required return type.- Specified by:
getPropertyin interfaceIChemObject- Type Parameters:
T- generic return type- Parameters:
description- An object description of the property (most likely a unique string)- Returns:
- The object containing the property. Returns null if propert is not set.
- See Also:
-
getProperty
Access a property of the given description and cast the specified class.IAtom atom = new Atom("C"); atom.setProperty("number", 1); // set an integer property // access the property and automatically cast to an int Integer number = atom.getProperty("number"); // if the method is in a chain or needs to be nested the type // can be provided methodAcceptingInt(atom.getProperty("number", Integer.class)); // the type cannot be checked and so... String number = atom.getProperty("number"); // ClassCastException // if the type is provided a more meaningful error is thrown atom.getProperty("number", String.class); // IllegalArgumentException- Specified by:
getPropertyin interfaceIChemObject- Type Parameters:
T- generic type (of provided class)- Parameters:
description- description of a property (normally a string)c- type of the value to be returned- Returns:
- the value stored for the specified description.
- See Also:
-
getProperties
Returns a Map with the IChemObject's properties.- Specified by:
getPropertiesin interfaceIChemObject- Returns:
- The object's properties as an Hashtable
- See Also:
-
clone
Clones thisIChemObject. It clones the identifier, flags, properties and pointer vectors. The ChemObjectListeners are not cloned, and neither is the content of the pointer vectors.- Specified by:
clonein interfaceIChemObject- Overrides:
clonein classObject- Returns:
- The cloned object
- Throws:
CloneNotSupportedException- if the IChemObject cannot be cloned
-
compare
Compares a IChemObject with this IChemObject.- Parameters:
object- Object of type AtomType- Returns:
- true if the atom types are equal
-
getID
Returns the identifier (ID) of this object.- Specified by:
getIDin interfaceIChemObject- Returns:
- a String representing the ID value
- See Also:
-
setID
Sets the identifier (ID) of this object.- Specified by:
setIDin interfaceIChemObject- Parameters:
identifier- a String representing the ID value- See Also:
-
setFlag
public void setFlag(int mask, boolean value) Sets the value of some flag. The flag is a mask from a given CDKConstant (e.g.IChemObject.AROMATICorIChemObject.VISITED). The flags are intrinsic internal properties and should not be used to store custom values, please useIChemObject.setProperty(Object, Object).// set this chem object to be aromatic chemObject.setFlag(CDKConstants.ISAROMATIC, Boolean.TRUE); // ... // indicate we have visited this chem object chemObject.setFlag(CDKConstants.VISITED, Boolean.TRUE);- Specified by:
setFlagin interfaceIChemObject- Parameters:
mask- flag to set the value forvalue- value to assign to flag- See Also:
-
getFlag
public boolean getFlag(int mask) Returns the value of a given flag. The flag is a mask from a given CDKConstant (e.g.IChemObject.AROMATIC).if(chemObject.getFlag(CDKConstants.ISAROMATIC)){ // handle aromatic flag on this chem object }- Specified by:
getFlagin interfaceIChemObject- Parameters:
mask- flag to retrieve the value of- Returns:
- true if the flag
flag_typeis set - See Also:
-
getFlagValue
Access the internal value used to store the flags. The flags are stored on a single numeric value and are set/cleared.- Specified by:
getFlagValuein interfaceIChemObject- Returns:
- numeric representation of the flags
-
set
public void set(int flags) Description copied from interface:IChemObjectSet the provided flags. Any on-bits in the input parameter are set on in the ChemObject.- Specified by:
setin interfaceIChemObject- Parameters:
flags- the flags
-
clear
public void clear(int flags) Description copied from interface:IChemObjectClear the provided flags. Any on-bits in the input parameter are set on in the ChemObject.- Specified by:
clearin interfaceIChemObject- Parameters:
flags- the flags
-
is
public boolean is(int flags) Description copied from interface:IChemObjectTest if a flag(s) are set on this ChemObject. If multiple flags are provided they must all be set to return true.atom.set(IS_IN_RING); atom.is(IS_IN_RING); // false! atom.is(IS_IN_RING+IS_AROMATIC); // false! atom.set(IS_AROMATIC); atom.is(IS_IN_RING+IS_AROMATIC); // true!- Specified by:
isin interfaceIChemObject- Parameters:
flags- the flags
-
flags
public int flags()Description copied from interface:IChemObjectAccess the current value of the flags for this ChemObject.- Specified by:
flagsin interfaceIChemObject- Returns:
- the flag value (32-bit integer)
-
setProperties
Set the properties of this object to the provided map (shallow copy). Any existing properties are removed.- Specified by:
setPropertiesin interfaceIChemObject- Parameters:
properties- map key-value pairs
-
addProperties
Sets the properties of this object.- Specified by:
addPropertiesin interfaceIChemObject- Parameters:
properties- a Hashtable specifying the property values- See Also:
-
setFlags
public void setFlags(boolean[] flagsNew) Sets the whole set of flags. This set will iteratively invokeIChemObject.setFlag(int, boolean)for each value in the array and useCDKConstants.FLAG_MASKSto look up the correct mask. If only a single flag is being set it is a lot faster to useIChemObject.setFlag(int, boolean).- Specified by:
setFlagsin interfaceIChemObject- Parameters:
flagsNew- the new flags to set.- See Also:
-
getFlags
public boolean[] getFlags()Returns the whole set of flags. This method will create a new array on each invocation and it is recommend you useIChemObject.getFlagValue()if you need all the flags. For individual flags please useIChemObject.getFlag(int)- Specified by:
getFlagsin interfaceIChemObject- Returns:
- the flags.
- See Also:
-
shallowCopy
Clones thisIChemObject, but preserves references toObjects.- Returns:
- Shallow copy of this IChemObject
- See Also:
-
getBuilder
Description copied from interface:ICDKObjectReturns aIChemObjectBuilderfor the data classes that extend this class.- Specified by:
getBuilderin interfaceICDKObject- Returns:
- The
IChemObjectBuildermatching thisICDKObject
-
setNotification
public void setNotification(boolean bool) Description copied from interface:IChemObjectSet a flag to use or not use notification. By default it should be set to true.- Specified by:
setNotificationin interfaceIChemObject- Parameters:
bool- if true, then notification messages are sent.- See Also:
-
getNotification
public boolean getNotification()Description copied from interface:IChemObjectReturns the flag that indicates whether notification messages are sent around.- Specified by:
getNotificationin interfaceIChemObject- Returns:
- true if messages are sent.
- See Also:
-