|
| OBGroupContrib (const char *ID, const char *filename, const char *descr) |
|
virtual const char * | Description () |
|
virtual OBGroupContrib * | MakeInstance (const std::vector< std::string > &textlines) |
|
virtual double | Predict (OBBase *pOb, std::string *param=NULL) |
|
const char * | TypeID () |
|
double | PredictAndSave (OBBase *pOb, std::string *param=NULL) |
|
virtual double | GetStringValue (OBBase *pOb, std::string &svalue, std::string *param=NULL) |
|
virtual bool | Compare (OBBase *pOb, std::istream &ss, bool noEval, std::string *param=NULL) |
|
virtual bool | Display (std::string &txt, const char *param, const char *ID=NULL) |
|
virtual bool | Order (double p1, double p2) |
|
virtual bool | Order (std::string s1, std::string s2) |
|
virtual void | Init () |
|
const char * | GetID () const |
|
virtual PluginMapType & | GetMap () const =0 |
|
|
static bool | FilterCompare (OBBase *pOb, std::istream &ss, bool noEval) |
|
static void | AddProperties (OBBase *pOb, const std::string &DescrList) |
|
static void | DeleteProperties (OBBase *pOb, const std::string &DescrList) |
|
static std::string | GetValues (OBBase *pOb, const std::string &DescrList) |
|
static std::pair< std::string, std::string > | GetIdentifier (std::istream &optionText) |
|
static OBPlugin * | GetPlugin (const char *Type, const char *ID) |
|
static bool | ListAsVector (const char *PluginID, const char *param, std::vector< std::string > &vlist) |
|
static void | List (const char *PluginID, const char *param=NULL, std::ostream *os=&std::cout) |
|
static std::string | ListAsString (const char *PluginID, const char *param=NULL) |
|
static std::string | FirstLine (const char *txt) |
|
static PluginIterator | Begin (const char *PluginID) |
|
static PluginIterator | End (const char *PluginID) |
|
static void | LoadAllPlugins () |
|
Handle group contribution algorithms.
This is the base class for calculations that use the JOELib2 contribution algorithm.
virtual OBGroupContrib* MakeInstance |
( |
const std::vector< std::string > & |
| ) |
|
|
inlinevirtual |
Make a new instance of the class. See OpTransform, OBGroupContrib, SmartsDescriptor classes for derived versions. Usually, the first parameter is the classname, the next three are parameters(ID, filename, description) for a constructor, and the rest data.
Reimplemented from OBPlugin.
bool Compare |
( |
OBBase * |
pOb, |
|
|
std::istream & |
ss, |
|
|
bool |
noEval, |
|
|
std::string * |
param = NULL |
|
) |
| |
|
virtualinherited |
Parses the filter stream for a relational expression and returns its result when applied to the chemical object.
Compare() is a virtual function and can be overridden to allow different comparison behaviour. The default implementation here is suitable for OBDescriptor classes which return a double value. The stringstream is parsed to retrieve a comparison operator, one of > < >= <= = == != , and a numerical value. The function compares this the value returned by Predict() and returns the result. The stringstream is left after the number, and its state reflects whether any errors have occurred. If noEval is true, the parsing is as normal but Predict is not called and the function returns false.
Referenced by OBDescriptor::FilterCompare().
bool FilterCompare |
( |
OBBase * |
pOb, |
|
|
std::istream & |
optionText, |
|
|
bool |
noEval |
|
) |
| |
|
staticinherited |
Interprets the –filter option string and returns the combined result of all the comparisons it contains.
The string has the form: PropertyID1 predicate1 [booleanOp] PropertyID2 predicate2 ... The propertyIDs are the ID of instances of a OBDescriptor class or the Attributes of OBPairData, and contain only letters, numbers and underscores. The predicates must start with a punctuation character and are interpreted by the Compare function of the OBDescriptor class. The default implementation expects a comparison operator and a number, e.g. >=1.3 Whitespace is optional and is ignored. Each predicate and this OBBase object (usually OBMol) is passed to the Compare function of a OBDescriptor. The result of each comparison is combined in a boolean expression (which can include parentheses) in the normal way. The AND operator can be & or &&, the OR operator can be | or ||, and a unitary NOT is ! The expected operator precedence is achieved using recursive calls of the function. If there is no boolean Op, all the tests have to return true for the function to return true, i.e. the default is AND. If the first operand of an AND is 0, or of an OR is 1, the parsing of the second operand continues but no comparisons are done since the result does not matter.
bool ReadStringFromFilter |
( |
std::istream & |
ss, |
|
|
std::string & |
result |
|
) |
| |
|
staticprotectedinherited |
Reads a string from the filter string optionally preceded by = or !=.
Reads a string from the filter stream, optionally preceded by = or !=
- Returns
- false if != operator found, and true otherwise.
On entry the stringstream position should be just after the ID. On exit it is after the string. If there is an error, the stringstream badbit is set. Returns false if != found, to indicate negation. Can be of any of the following forms: mystring =mystring ==mystring [must be terminated by a space or tab] "mystring" 'mystring' ="mystring" ='mystring' [mystring can contain spaces or tabs] !=mystring !="mystring" [Returns false indicating negate] There can be spaces or tabs after the operator = == !=