org.eclipse.ocl.examples.domain.library
Class AbstractSimpleBinaryOperation

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.AbstractBinaryOperation
                  extended by org.eclipse.ocl.examples.domain.library.AbstractUntypedBinaryOperation
                      extended by org.eclipse.ocl.examples.domain.library.AbstractSimpleBinaryOperation
All Implemented Interfaces:
LibraryBinaryOperation, LibraryFeature, LibraryOperation, LibrarySimpleBinaryOperation, LibrarySimpleOperation, LibraryUntypedBinaryOperation, LibraryUntypedOperation
Direct Known Subclasses:
BooleanAndOperation, BooleanImpliesOperation, BooleanOrOperation, BooleanXorOperation, CollectionCountOperation, CollectionExcludesAllOperation, CollectionExcludesOperation, CollectionExcludingAllOperation, CollectionExcludingOperation, CollectionIncludesAllOperation, CollectionIncludesOperation, CollectionIncludingAllOperation, CollectionIncludingOperation, CollectionIntersectionOperation, CollectionUnionOperation, IntegerCompareToOperation, IntegerMinusOperation, IntegerPlusOperation, JavaCompareToOperation, NumericCompareToOperation, NumericDivideOperation, NumericDivOperation, NumericGreaterThanEqualOperation, NumericGreaterThanOperation, NumericLessThanEqualOperation, NumericLessThanOperation, NumericMaxOperation, NumericMinOperation, NumericMinusOperation, NumericModOperation, NumericPlusOperation, NumericTimesOperation, OclAnyEqualOperation, OclComparableCompareToOperation, OclVoidAndOperation, OclVoidImpliesOperation, OclVoidOrOperation, OrderedCollectionAppendAllOperation, OrderedCollectionAppendOperation, OrderedCollectionAtOperation, OrderedCollectionIndexOfOperation, OrderedCollectionPrependAllOperation, OrderedCollectionPrependOperation, RealCompareToOperation, RealMinusOperation, RealPlusOperation, SetMinusOperation, SetSymmetricDifferenceOperation, StringAtOperation, StringCompareToOperation, StringConcatOperation, StringEndsWithOperation, StringEqualsIgnoreCaseOperation, StringGreaterThanEqualOperation, StringGreaterThanOperation, StringIndexOfOperation, StringLastIndexOfOperation, StringLessThanEqualOperation, StringLessThanOperation, StringStartsWithOperation

public abstract class AbstractSimpleBinaryOperation
extends AbstractUntypedBinaryOperation
implements LibrarySimpleBinaryOperation

AbstractSimpleBinaryOperation defines the default implementation of a binary operation redirecting the invocation to the argument-only form.


Field Summary
 
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
AbstractSimpleBinaryOperation()
           
 
Method Summary
 java.lang.Object dispatch(DomainEvaluator evaluator, DomainCallExp callExp, java.lang.Object sourceValue)
          Return the result of evaluating callExp and its arguments upon sourceValue within the environment provided by evaluator.
 java.lang.Object evaluate(DomainEvaluator evaluator, java.lang.Object sourceValue, java.lang.Object argumentValue)
           
 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.
abstract  java.lang.Object evaluate(java.lang.Object sourceValue, java.lang.Object argumentValue)
           
 
Methods inherited from class org.eclipse.ocl.examples.domain.values.util.ValuesUtil
asBagValue, asBoolean, asCollectionType, asCollectionValue, asInteger, asIntegerValue, asMetaclass, asNavigableObject, asObject, asOrderedCollectionValue, asOrderedSetValue, asRealValue, asSequenceValue, asSetValue, asString, asTupleValue, asType, asUniqueCollectionValue, asUnlimitedNaturalValue, asValue, bigDecimalValueOf, bigIntegerValueOf, characterValueOf, 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, getEcoreNumber, getTypeName, initAllStatics, integerValueOf, integerValueOf, integerValueOf, integerValueOf, integerValueOf, isBoxed, isCollectionValue, isIntegerNumber, isIntegerValue, isRealNumber, isUnboxed, isUnlimited, oclToString, realValueOf, realValueOf, realValueOf, realValueOf, realValueOf, stringValueOf, throwBooleanInvalidValueException, throwInvalidValueException, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSimpleBinaryOperation

public AbstractSimpleBinaryOperation()
Method Detail

dispatch

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

This invocation evaluates the arguments as required. Derived implementations may implement short circuit processing to skip redundant evlaution of later arguments.

Invocations may bypass dispatch if a derived LibraryOperation such as LibrarySimpleBinaryOperation makes its internal evaluate signature available for use after a type test and cast.

Specified by:
dispatch in interface LibraryOperation
Overrides:
dispatch in class AbstractUntypedBinaryOperation

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.

Specified by:
evaluate in interface LibraryBinaryOperation
Overrides:
evaluate in class AbstractUntypedBinaryOperation

evaluate

@Nullable
public java.lang.Object evaluate(@NonNull
                                          DomainEvaluator evaluator,
                                          @Nullable
                                          java.lang.Object sourceValue,
                                          @Nullable
                                          java.lang.Object argumentValue)
Specified by:
evaluate in interface LibraryUntypedBinaryOperation
Specified by:
evaluate in class AbstractUntypedBinaryOperation

evaluate

@Nullable
public abstract java.lang.Object evaluate(@Nullable
                                                   java.lang.Object sourceValue,
                                                   @Nullable
                                                   java.lang.Object argumentValue)
Specified by:
evaluate in interface LibrarySimpleBinaryOperation