Class Association

java.lang.Object
org.openscience.cdk.Association
All Implemented Interfaces:
Serializable, Cloneable, ICDKObject, IChemObject, IElectronContainer

public class Association extends Object implements IElectronContainer, Serializable, Cloneable
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 Details

    • electronCount

      protected final int electronCount
      Number of electrons in the association.
      See Also:
    • atoms

      protected IAtom[] atoms
      The atoms which take part in the association.
    • atomCount

      protected int atomCount
  • Constructor Details

    • Association

      public Association(IAtom atom1, IAtom atom2)
      Constructs an association between two Atom's.
      Parameters:
      atom1 - An atom to be associated with another atom
      atom2 - An atom to be associated with another atom
      See Also:
    • Association

      public Association()
      Constructs an empty association.
      See Also:
  • Method Details

    • getAtoms

      public IAtom[] getAtoms()
      Returns the array of atoms making up this Association.
      Returns:
      An array of atoms participating in this Association
      See Also:
    • setAtoms

      public void setAtoms(IAtom[] atoms)
      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

      public Integer getElectronCount()
      Returns the number of electrons in a Association.
      Specified by:
      getElectronCount in interface IElectronContainer
      Returns:
      The number of electrons in a Association.
      See Also:
    • getAtomAt

      public IAtom getAtomAt(int position)
      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

      public boolean contains(IAtom atom)
      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

      public void setAtomAt(IAtom atom, int position)
      Sets an Atom in this Association.
      Parameters:
      atom - The atom to be set
      position - The position in this Association where the atom is to be inserted
      See Also:
    • toString

      public String toString()
      Returns a one line string representation of this Container. This method is conform RFC #9.
      Specified by:
      toString in interface IChemObject
      Overrides:
      toString in class Object
      Returns:
      The string representation of this Container
    • setElectronCount

      public void setElectronCount(Integer electronCount)
      Sets the number of electrons in this electron container.
      Specified by:
      setElectronCount in interface IElectronContainer
      Parameters:
      electronCount - The number of electrons in this electron container.
      See Also:
    • addListener

      public void addListener(IChemObjectListener col)
      Use this to add yourself to this IChemObject as a listener. In order to do so, you must implement the ChemObjectListener Interface.
      Specified by:
      addListener in interface IChemObject
      Parameters:
      col - the ChemObjectListener
      See Also:
    • getListenerCount

      public int getListenerCount()
      Returns the number of ChemObjectListeners registered with this object.
      Specified by:
      getListenerCount in interface IChemObject
      Returns:
      the number of registered listeners.
    • removeListener

      public void removeListener(IChemObjectListener col)
      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:
      removeListener in interface IChemObject
      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:
      notifyChanged in interface IChemObject
    • notifyChanged

      public void notifyChanged(IChemObjectChangeEvent evt)
      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:
      notifyChanged in interface IChemObject
      Parameters:
      evt - A ChemObjectChangeEvent pointing to the source of where the change happend
    • setProperty

      public void setProperty(Object description, Object property)
      Sets a property for a IChemObject.
      Specified by:
      setProperty in interface IChemObject
      Parameters:
      description - An object description of the property (most likely a unique string)
      property - An object with the property itself
      See Also:
    • removeProperty

      public void removeProperty(Object description)
      Removes a property for a IChemObject.
      Specified by:
      removeProperty in interface IChemObject
      Parameters:
      description - The object description of the property (most likely a unique string)
      See Also:
    • getProperty

      public <T> T getProperty(Object description)
      Returns a property for the IChemObject. The value will be cast to the required return type.
      Specified by:
      getProperty in interface IChemObject
      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

      public <T> T getProperty(Object description, Class<T> c)
      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:
      getProperty in interface IChemObject
      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

      public Map<Object,Object> getProperties()
      Returns a Map with the IChemObject's properties.
      Specified by:
      getProperties in interface IChemObject
      Returns:
      The object's properties as an Hashtable
      See Also:
    • clone

      public Object clone() throws CloneNotSupportedException
      Clones this IChemObject. 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:
      clone in interface IChemObject
      Overrides:
      clone in class Object
      Returns:
      The cloned object
      Throws:
      CloneNotSupportedException - if the IChemObject cannot be cloned
    • compare

      public boolean compare(Object object)
      Compares a IChemObject with this IChemObject.
      Parameters:
      object - Object of type AtomType
      Returns:
      true if the atom types are equal
    • getID

      public String getID()
      Returns the identifier (ID) of this object.
      Specified by:
      getID in interface IChemObject
      Returns:
      a String representing the ID value
      See Also:
    • setID

      public void setID(String identifier)
      Sets the identifier (ID) of this object.
      Specified by:
      setID in interface IChemObject
      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.AROMATIC or IChemObject.VISITED). The flags are intrinsic internal properties and should not be used to store custom values, please use IChemObject.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:
      setFlag in interface IChemObject
      Parameters:
      mask - flag to set the value for
      value - 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:
      getFlag in interface IChemObject
      Parameters:
      mask - flag to retrieve the value of
      Returns:
      true if the flag flag_type is set
      See Also:
    • getFlagValue

      public Integer 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:
      getFlagValue in interface IChemObject
      Returns:
      numeric representation of the flags
    • set

      public void set(int flags)
      Description copied from interface: IChemObject
      Set the provided flags. Any on-bits in the input parameter are set on in the ChemObject.
      Specified by:
      set in interface IChemObject
      Parameters:
      flags - the flags
    • clear

      public void clear(int flags)
      Description copied from interface: IChemObject
      Clear the provided flags. Any on-bits in the input parameter are set on in the ChemObject.
      Specified by:
      clear in interface IChemObject
      Parameters:
      flags - the flags
    • is

      public boolean is(int flags)
      Description copied from interface: IChemObject
      Test 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:
      is in interface IChemObject
      Parameters:
      flags - the flags
    • flags

      public int flags()
      Description copied from interface: IChemObject
      Access the current value of the flags for this ChemObject.
      Specified by:
      flags in interface IChemObject
      Returns:
      the flag value (32-bit integer)
    • setProperties

      public void setProperties(Map<Object,Object> properties)
      Set the properties of this object to the provided map (shallow copy). Any existing properties are removed.
      Specified by:
      setProperties in interface IChemObject
      Parameters:
      properties - map key-value pairs
    • addProperties

      public void addProperties(Map<Object,Object> properties)
      Sets the properties of this object.
      Specified by:
      addProperties in interface IChemObject
      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 invoke IChemObject.setFlag(int, boolean) for each value in the array and use CDKConstants.FLAG_MASKS to look up the correct mask. If only a single flag is being set it is a lot faster to use IChemObject.setFlag(int, boolean).
      Specified by:
      setFlags in interface IChemObject
      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 use IChemObject.getFlagValue() if you need all the flags. For individual flags please use IChemObject.getFlag(int)
      Specified by:
      getFlags in interface IChemObject
      Returns:
      the flags.
      See Also:
    • shallowCopy

      public Object shallowCopy()
      Clones this IChemObject, but preserves references to Objects.
      Returns:
      Shallow copy of this IChemObject
      See Also:
    • getBuilder

      public IChemObjectBuilder getBuilder()
      Description copied from interface: ICDKObject
      Returns a IChemObjectBuilder for the data classes that extend this class.
      Specified by:
      getBuilder in interface ICDKObject
      Returns:
      The IChemObjectBuilder matching this ICDKObject
    • setNotification

      public void setNotification(boolean bool)
      Description copied from interface: IChemObject
      Set a flag to use or not use notification. By default it should be set to true.
      Specified by:
      setNotification in interface IChemObject
      Parameters:
      bool - if true, then notification messages are sent.
      See Also:
    • getNotification

      public boolean getNotification()
      Description copied from interface: IChemObject
      Returns the flag that indicates whether notification messages are sent around.
      Specified by:
      getNotification in interface IChemObject
      Returns:
      true if messages are sent.
      See Also: