This class represents OEVectorBindings.
A vector binding is a SMARTS pattern bound to a name. For example, the name [$HALO] can be used to represent the pattern [$(F,Cl,Br,I)] in order to make a pattern more human readable. The OEVectorBindings class converts SMARTS patterns written using vector bindings (human readable form) to the corresponding machine readable form by performing a name to pattern replacement.
OEVectorBindings() OEVectorBindings(const OEVectorBindings &)
Default and copy constructors.
OEVectorBindings &operator=(const OEVectorBindings &)
bool Add(const char *label, const char *pattern)
Adds one vector binding to an OEVectorBindings object. The ‘label’ given as the first method argument is the name that appears in the human readable version of a SMARTS, while the ‘pattern’ given as the second method argument is the SMARTS that should be used to replace the ‘’label’‘. If the ‘pattern’ is parsed correctly and the association is made in the OEVectorBindings object, the method will return true. If the ‘pattern’ is invalid or the association cannot be made the method will return false. All attempts to associate a SMARTS pattern with a particular ‘label’ after the first association succeeds will result subsequent failures to create new associations.
bool Get(const OEExprBase *&expr, const char *&label, const char *smarts) const
Retrieves the ‘label’ and corresponding OEExprBase pointer reference as the first and second method arguments, respectively, given a pointer to a position within a smarts string given as the final argument. If the ‘smarts’ string position points to the beginning of a vector bound ‘label’ contained in the OEVectorBindings object then the method will return true. If the vector binding cannot be identified then the method will return false.