This class represents OEExprBase.
OEExprBase is an abstract class which defines
an interface through which boolean expressions can test equivalence
of nodes (atoms) and edges (bonds) during graph match processes.
The expression class interface simplifies what is normally a binary
tree representation of attributes which atoms and bonds must (not)
have in order to be called equivalent to a corresponding node or
Derived classes may be used to extend the graph matching algorithms
in OEChem to compare attributes beyond the pre-defined
expressions in OEChem.
In addition, user-defined expression classes may take full
advantage of the arbitrary data storage mechanism which is part of
Expression equivalence could then be performed on dynamic
user-defined data extensions to atoms and bonds.
Default and copy constructors.
OEExprBase *CreateCopy() const =0
Deep copy constructor that returns a copy of the object.
The memory for the returned
object is dynamically allocated and owned by the caller.
The returned copy should be deallocated using C++ delete operator in order to prevent a memory leak.
unsigned int GetType() const =0
This pure virtual method is designed to return a unique
identifier for each
A listing of type identifiers returned by classes in OEChem
which are derived from the
OEExprBase class can
be found in the
User-defined implementations of the
class should return value for this method which does not collide
with types returned by implementations provided by OEChem.
const OEFuzzy &IsEquivalent(const OEBondBase *) const =0 const OEFuzzy &IsEquivalent(const OEAtomBase *) const =0
These pure virtual methods provide a common interface for
testing attributes of atoms (
Any method which does not modify an atom or bond may be called
in an implementation of an
The return value must be one of the
predefined instances of