org.eclipse.ocl.examples.pivot.ecore
Class EObjectOperation

java.lang.Object
  extended by org.eclipse.ocl.examples.domain.values.util.ValuesUtil
      extended by org.eclipse.ocl.examples.domain.library.AbstractFeature
          extended by org.eclipse.ocl.examples.domain.library.AbstractOperation
              extended by org.eclipse.ocl.examples.domain.library.AbstractPolyOperation
                  extended by org.eclipse.ocl.examples.pivot.ecore.EObjectOperation
All Implemented Interfaces:
LibraryBinaryOperation, LibraryFeature, LibraryOperation, LibraryTernaryOperation, LibraryUnaryOperation

public class EObjectOperation
extends AbstractPolyOperation

An EObjectOperation provides the standard LibraryOperation to implement an OperationCallExp. When constructed with a null specification, the call returns an invalid. When constructed with a non-null specification, the specification defines the operation body, which if provided as an OpaqueExpression is lazily compiled from OCL source text.


Field Summary
protected  org.eclipse.emf.ecore.EOperation eFeature
           
protected  Operation operation
           
protected  OpaqueExpression specification
           
 
Fields inherited from class org.eclipse.ocl.examples.domain.values.util.ValuesUtil
EMPTY_BAG, EMPTY_SET, FALSE_VALUE, INTEGER_MAX_VALUE, INTEGER_MIN_VALUE, INVALID_VALUE, LONG_MAX_VALUE, LONG_MIN_VALUE, NULL_STRING, NULL_VALUE, ONE_VALUE, TRUE_VALUE, UNLIMITED_VALUE, ZERO_VALUE
 
Constructor Summary
EObjectOperation(org.eclipse.emf.ecore.EOperation eFeature, OpaqueExpression specification)
          Deprecated. 
EObjectOperation(Operation operation, org.eclipse.emf.ecore.EOperation eFeature, OpaqueExpression specification)
           
 
Method Summary
 java.lang.Object evaluate(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue)
           
 java.lang.Object evaluate(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue, java.lang.Object... argumentValues)
          Return the result of evaluating operationCall upon sourceVal within the environment provided by EvaluationVisitor.
 java.lang.Object evaluate(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue, java.lang.Object argumentValue)
           
 java.lang.Object evaluate(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue, java.lang.Object firstArgumentValue, java.lang.Object secondArgumentValue)
           
 java.lang.Object evaluate(DomainEvaluator evaluator, TypeId returnTypeId, java.lang.Object sourceValue)
          Return the result of evaluating the operation on an argument.
 java.lang.Object evaluate(DomainEvaluator evaluator, TypeId returnTypeId, java.lang.Object sourceValue, java.lang.Object argumentValue)
          Return the result of evaluating the operation on left and right arguments.
 java.lang.Object evaluate(DomainEvaluator evaluator, TypeId returnTypeId, java.lang.Object sourceValue, java.lang.Object firstArgumentValue, java.lang.Object secondArgumentValue)
          Return the result of evaluating the operation on source with arg1 and arg2.
protected  void resolveExpressionInOCL(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue)
           
 
Methods inherited from class org.eclipse.ocl.examples.domain.values.util.ValuesUtil
asBagValue, asBoolean, asCollectionType, asCollectionValue, asInteger, asIntegerValue, asNavigableObject, asObject, asOrderedSetValue, asRealValue, asSequenceValue, asSetValue, asString, asTupleValue, asType, asUniqueCollectionValue, asUnlimitedNaturalValue, asValue, createBagAccumulatorValue, createBagOfEach, createBagRange, createBagValue, createCollectionAccumulatorValue, createInvalidValue, createObjectValue, createOrderedSetAccumulatorValue, createOrderedSetOfEach, createOrderedSetRange, createOrderedSetValue, createRange, createSequenceAccumulatorValue, createSequenceOfEach, createSequenceRange, createSequenceRange, createSequenceValue, createSetAccumulatorValue, createSetOfEach, createSetRange, createSetValue, createTupleOfEach, createTupleValue, createTupleValue, createTypeValue, getTypeName, initAllStatics, integerValueOf, integerValueOf, integerValueOf, integerValueOf, integerValueOf, isBoxed, isCollectionValue, isIntegerValue, isUnboxed, isUnlimited, oclToString, realValueOf, realValueOf, realValueOf, realValueOf, realValueOf, stringValueOf, throwInvalidValueException, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

operation

@NonNull
protected final Operation operation

eFeature

@NonNull
protected final org.eclipse.emf.ecore.EOperation eFeature

specification

@NonNull
protected OpaqueExpression specification
Constructor Detail

EObjectOperation

public EObjectOperation(@NonNull
                        Operation operation,
                        @NonNull
                        org.eclipse.emf.ecore.EOperation eFeature,
                        @NonNull
                        OpaqueExpression specification)

EObjectOperation

@Deprecated
public EObjectOperation(@NonNull
                                   org.eclipse.emf.ecore.EOperation eFeature,
                                   @NonNull
                                   OpaqueExpression specification)
Deprecated. 

Method Detail

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          DomainCallExp callExp,
                                          @Nullable
                                          java.lang.Object sourceValue)
Specified by:
evaluate in interface LibraryUnaryOperation
Overrides:
evaluate in class AbstractPolyOperation

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          TypeId returnTypeId,
                                          @Nullable
                                          java.lang.Object sourceValue)
Description copied from interface: LibraryUnaryOperation
Return the result of evaluating the operation on an argument. An invalid return may be indicated by throwing an exception returning Java null or OCL invalid.

Returns:
the evaluated value

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          DomainCallExp callExp,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          @Nullable
                                          java.lang.Object argumentValue)
Specified by:
evaluate in interface LibraryBinaryOperation
Overrides:
evaluate in class AbstractPolyOperation

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          TypeId returnTypeId,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          @Nullable
                                          java.lang.Object argumentValue)
Description copied from interface: LibraryBinaryOperation
Return the result of evaluating the operation on left and right arguments. An invalid return may be indicated by throwing an exception returning Java null or OCL invalid.

Returns:
the evaluated value

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          DomainCallExp callExp,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          @Nullable
                                          java.lang.Object firstArgumentValue,
                                          @Nullable
                                          java.lang.Object secondArgumentValue)
Specified by:
evaluate in interface LibraryTernaryOperation
Overrides:
evaluate in class AbstractPolyOperation

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          TypeId returnTypeId,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          @Nullable
                                          java.lang.Object firstArgumentValue,
                                          @Nullable
                                          java.lang.Object secondArgumentValue)
Description copied from interface: LibraryTernaryOperation
Return the result of evaluating the operation on source with arg1 and arg2. An invalid return may be indicated by throwing an exception returning Java null or OCL invalid.

Returns:
the evaluated value

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @NonNull
                                          DomainCallExp callExp,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          java.lang.Object... argumentValues)
Description copied from interface: LibraryOperation
Return the result of evaluating operationCall upon sourceVal within the environment provided by EvaluationVisitor. An invalid return may be indicated by throwing an exception returning Java null or OCL invalid.

Returns:
the evaluated value

resolveExpressionInOCL

protected void resolveExpressionInOCL(@NonNull
                                      DomainEvaluator evaluator,
                                      @NonNull
                                      DomainCallExp callExp,
                                      @Nullable
                                      java.lang.Object sourceValue)