Class ChemObject

java.lang.Object
org.openscience.cdk.ChemObject
All Implemented Interfaces:
Serializable, Cloneable, ICDKObject, IChemObject
Direct Known Subclasses:
AtomContainer, AtomContainerSet, ChemFile, ChemModel, ChemSequence, DebugChemObject, ElectronContainer, Element, Mapping, PDBStructure, Reaction, ReactionSet

public class ChemObject extends Object implements Serializable, IChemObject, Cloneable
The base class for all chemical objects in this cdk. It provides methods for adding listeners and for their notification of events, as well a a hash table for administration of physical or chemical properties
Author:
steinbeck
See Also:
Source code:
main
Belongs to CDK module:
data
  • Constructor Details

    • ChemObject

      public ChemObject()
      Constructs a new IChemObject.
    • ChemObject

      public ChemObject(IChemObject chemObject)
      Constructs a new IChemObject by copying the flags, and the identifier. It does not copy the listeners and properties.
      Parameters:
      chemObject - the object to copy
  • Method Details

    • 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 happened
    • 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.
      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. CDKConstants.ISAROMATIC or CDKConstants.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. CDKConstants.ISAROMATIC).
      
       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 Short 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
    • 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.
      Specified by:
      setFlags in interface IChemObject
      Parameters:
      flagsNew - the new flags.
      See Also:
    • getFlags

      public boolean[] getFlags()
      Returns the whole set of flags.
      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: