public class OclEvaluator
extends java.lang.Object
Here's an example of how to use OclEvaluator, setting up the environment as well // create custom environment facto DocGenEnvironmentFactory envFactory = new DocGenEnvironmentFactory();
// create custom operation DocGenOperationInstance doi = new DocGenOperationInstance(); doi.setName("regexMatch"); doi.setAnnotationName("DocGenEnvironment"); EParameter parm = EcoreFactory.eINSTANCE.createEParameter(); parm.setName("pattern"); doi.addParameter(parm);
// essentially set the actual operation as function pointer doi.setOperation(new CallOperation() {
Modifier and Type | Class and Description |
---|---|
static class |
OclEvaluator.QueryStatus |
Modifier and Type | Field and Description |
---|---|
protected org.eclipse.emf.common.util.BasicDiagnostic |
basicDiagnostic |
protected DocGenEnvironmentFactory |
environmentFactory |
java.lang.String |
errorMessage |
protected org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> |
helper |
static OclEvaluator |
instance |
static boolean |
isVerboseDefault |
Constructor and Description |
---|
OclEvaluator() |
Modifier and Type | Method and Description |
---|---|
protected static void |
addDefaultOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addEvalOperation(DocGenEnvironmentFactory envFactory,
java.lang.String opName) |
protected static void |
addExpressionOperation(java.lang.String opName,
java.lang.String expression,
DocGenEnvironmentFactory envFactory) |
protected static void |
addExpressionOperations(DocGenEnvironmentFactory envFactory)
Find Expressions in model and add them as blackbox shortcuts.
|
protected static void |
addGetOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addLogOperation(DocGenEnvironmentFactory envFactory,
boolean addArg,
boolean addColorArg) |
protected static void |
addLogOperation(DocGenEnvironmentFactory envFactory,
boolean addArg,
boolean addColorArg,
boolean asSequence,
boolean fromSequence) |
protected static void |
addMOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addNOperation(DocGenEnvironmentFactory envFactory)
Add n(), name(), and names() OCL shortcuts with and without arguments.
|
protected static void |
addOOperation(DocGenEnvironmentFactory envFactory)
Add n(), name(), and names() OCL shortcuts with and without arguments.
|
static java.util.List<GetCallOperation> |
addOperation(java.lang.String[] names,
org.eclipse.emf.ecore.EClassifier callerType,
org.eclipse.emf.ecore.EClassifier returnType,
org.eclipse.emf.ecore.EClassifier parmType,
java.lang.String parmName,
boolean zeroArgToo,
boolean singularNameReturnsOnlyOne,
GetCallOperation.CallReturnType opType,
DocGenEnvironmentFactory envFactory) |
protected static void |
addRegexMatchOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addROperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addRunOperation(DocGenEnvironmentFactory envFactory,
org.eclipse.emf.ecore.EClassifier argType) |
protected static void |
addSOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addTOperation(DocGenEnvironmentFactory envFactory) |
protected static void |
addVOperation(DocGenEnvironmentFactory envFactory) |
boolean |
checkConstraint(org.eclipse.emf.ecore.EObject context,
java.lang.String constraintString,
boolean verbose)
Evaluates the specified invariant (constraint given a particular context)
|
java.lang.String |
checkParsable(java.lang.String exprString) |
java.util.List<org.eclipse.ocl.helper.Choice> |
commandCompletionChoices(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper,
java.lang.Object context,
java.lang.String oclInput) |
java.util.List<java.lang.String> |
commandCompletionChoiceStrings(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper,
java.lang.Object context,
java.lang.String oclInput) |
java.util.List<java.lang.String> |
commandCompletionChoiceStrings(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper,
java.lang.Object context,
java.lang.String oclInput,
int depth) |
void |
createOclInstance(DocGenEnvironmentFactory envFactory) |
static java.lang.Object |
evaluateQuery(java.lang.Object context,
java.lang.Object query)
Evaluates the specified query given a particular context
|
static java.lang.Object |
evaluateQuery(java.lang.Object context,
java.lang.String queryString)
Evaluates the specified query given a particular context
|
static java.lang.Object |
evaluateQuery(java.lang.Object context,
java.lang.String queryString,
boolean verbose)
Evaluates the specified query given a particular context
|
java.lang.Object |
evaluateQueryNoSetup(java.lang.Object context,
java.lang.String queryString,
boolean verbose) |
org.eclipse.emf.common.util.BasicDiagnostic |
getBasicDiagnostic() |
DocGenEnvironment |
getEnvironment() |
DocGenEnvironmentFactory |
getEnvironmentFactory() |
DocGenEvaluationEnvironment |
getEvaluationEnvironment() |
org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> |
getHelper() |
org.eclipse.ocl.OCL<?,org.eclipse.emf.ecore.EClassifier,?,?,?,?,?,?,?,org.eclipse.ocl.ecore.Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> |
getOcl() |
org.eclipse.ocl.lpg.ProblemHandler |
getProblemHandler() |
OclEvaluator.QueryStatus |
getQueryStatus()
Returns the query status.
|
boolean |
isValid()
Simple rollup function that determines whether a query was executed
properly or not
|
static boolean |
isVerboseDefault() |
protected static boolean |
notNullOrEndInQuestion(java.lang.String expr) |
static java.lang.String |
queryCollectionToStringExpression(java.util.Collection<?> queryColl) |
static java.lang.String |
queryElementToStringExpression(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element query) |
static java.lang.String |
queryObjectToStringExpression(java.lang.Object query) |
void |
setBasicDiagnostic(org.eclipse.emf.common.util.BasicDiagnostic basicDiagnostic) |
void |
setHelper(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper) |
void |
setOcl(org.eclipse.ocl.OCL<?,org.eclipse.emf.ecore.EClassifier,?,?,?,?,?,?,?,org.eclipse.ocl.ecore.Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> ocl) |
void |
setProblemHandler(org.eclipse.ocl.lpg.ProblemHandler problemHandler) |
void |
setQueryStatus(OclEvaluator.QueryStatus queryStatus) |
protected DocGenEnvironmentFactory |
setupEnvironment() |
static void |
setVerboseDefault(boolean isVerboseDefault) |
public static OclEvaluator instance
public static boolean isVerboseDefault
protected org.eclipse.emf.common.util.BasicDiagnostic basicDiagnostic
protected org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper
protected DocGenEnvironmentFactory environmentFactory
public java.lang.String errorMessage
public void createOclInstance(DocGenEnvironmentFactory envFactory)
protected static boolean notNullOrEndInQuestion(java.lang.String expr)
public static java.lang.String queryElementToStringExpression(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element query)
public static java.lang.String queryCollectionToStringExpression(java.util.Collection<?> queryColl)
public static java.lang.String queryObjectToStringExpression(java.lang.Object query)
query
- public static java.lang.Object evaluateQuery(java.lang.Object context, java.lang.Object query) throws org.eclipse.ocl.ParserException
context
- EObject of the context that the query should be run against
(e.g., self)query
- object to convert to a valid OCL string to be evaluated in the
contextorg.eclipse.ocl.ParserException
public static java.lang.Object evaluateQuery(java.lang.Object context, java.lang.String queryString) throws org.eclipse.ocl.ParserException
context
- EObject of the context that the query should be run against
(e.g., self)queryString
- Valid OCL string that to be evaluated in the contextorg.eclipse.ocl.ParserException
public java.lang.Object evaluateQueryNoSetup(java.lang.Object context, java.lang.String queryString, boolean verbose) throws org.eclipse.ocl.ParserException
org.eclipse.ocl.ParserException
public static java.lang.Object evaluateQuery(java.lang.Object context, java.lang.String queryString, boolean verbose) throws org.eclipse.ocl.ParserException
context
- EObject of the context that the query should be run against
(e.g., self)queryString
- Valid OCL string that to be evaluated in the contextverbose
- Turns on OCL debugging if true, off if falseorg.eclipse.ocl.ParserException
public static java.util.List<GetCallOperation> addOperation(java.lang.String[] names, org.eclipse.emf.ecore.EClassifier callerType, org.eclipse.emf.ecore.EClassifier returnType, org.eclipse.emf.ecore.EClassifier parmType, java.lang.String parmName, boolean zeroArgToo, boolean singularNameReturnsOnlyOne, GetCallOperation.CallReturnType opType, DocGenEnvironmentFactory envFactory)
protected static void addRegexMatchOperation(DocGenEnvironmentFactory envFactory)
protected static void addLogOperation(DocGenEnvironmentFactory envFactory, boolean addArg, boolean addColorArg)
protected static void addLogOperation(DocGenEnvironmentFactory envFactory, boolean addArg, boolean addColorArg, boolean asSequence, boolean fromSequence)
protected static void addGetOperation(DocGenEnvironmentFactory envFactory)
protected static void addRunOperation(DocGenEnvironmentFactory envFactory, org.eclipse.emf.ecore.EClassifier argType)
protected static void addEvalOperation(DocGenEnvironmentFactory envFactory, java.lang.String opName)
protected static void addExpressionOperation(java.lang.String opName, java.lang.String expression, DocGenEnvironmentFactory envFactory)
protected static void addROperation(DocGenEnvironmentFactory envFactory)
protected static void addMOperation(DocGenEnvironmentFactory envFactory)
protected static void addTOperation(DocGenEnvironmentFactory envFactory)
protected static void addVOperation(DocGenEnvironmentFactory envFactory)
protected static void addDefaultOperation(DocGenEnvironmentFactory envFactory)
protected static void addSOperation(DocGenEnvironmentFactory envFactory)
protected static void addNOperation(DocGenEnvironmentFactory envFactory)
envFactory
- protected static void addOOperation(DocGenEnvironmentFactory envFactory)
envFactory
- public java.lang.String checkParsable(java.lang.String exprString)
exprString
- an OCL expressionprotected static void addExpressionOperations(DocGenEnvironmentFactory envFactory)
envFactory
- public DocGenEnvironmentFactory getEnvironmentFactory()
public DocGenEvaluationEnvironment getEvaluationEnvironment()
public DocGenEnvironment getEnvironment()
protected DocGenEnvironmentFactory setupEnvironment()
public java.util.List<org.eclipse.ocl.helper.Choice> commandCompletionChoices(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper, java.lang.Object context, java.lang.String oclInput)
public java.util.List<java.lang.String> commandCompletionChoiceStrings(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper, java.lang.Object context, java.lang.String oclInput, int depth)
public java.util.List<java.lang.String> commandCompletionChoiceStrings(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper, java.lang.Object context, java.lang.String oclInput)
public boolean checkConstraint(org.eclipse.emf.ecore.EObject context, java.lang.String constraintString, boolean verbose)
Note that the evaluateQuery is more generic and can handle invariants as well
context
- EObject of the context that the constraint should be checked
againstconstraintString
- Valid OCL constraint string to be checkedverbose
- Turns on OCL debugging if true, off if falsepublic OclEvaluator.QueryStatus getQueryStatus()
public boolean isValid()
public org.eclipse.ocl.OCL<?,org.eclipse.emf.ecore.EClassifier,?,?,?,?,?,?,?,org.eclipse.ocl.ecore.Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> getOcl()
public void setOcl(org.eclipse.ocl.OCL<?,org.eclipse.emf.ecore.EClassifier,?,?,?,?,?,?,?,org.eclipse.ocl.ecore.Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> ocl)
public static boolean isVerboseDefault()
public static void setVerboseDefault(boolean isVerboseDefault)
public org.eclipse.emf.common.util.BasicDiagnostic getBasicDiagnostic()
public void setBasicDiagnostic(org.eclipse.emf.common.util.BasicDiagnostic basicDiagnostic)
public org.eclipse.ocl.lpg.ProblemHandler getProblemHandler()
public void setProblemHandler(org.eclipse.ocl.lpg.ProblemHandler problemHandler)
problemHandler
- public void setQueryStatus(OclEvaluator.QueryStatus queryStatus)
public org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> getHelper()
public void setHelper(org.eclipse.ocl.helper.OCLHelper<org.eclipse.emf.ecore.EClassifier,?,?,org.eclipse.ocl.ecore.Constraint> helper)