public final class IntervalOverlapsOperatorImplementation extends java.lang.Object implements IntervalOperatorImplementation
Constructor and Description |
---|
IntervalOverlapsOperatorImplementation(IntervalTypeImplementation intervalTypeImplementation)
Creates the implementation object for some interval type's overlap operator
|
Modifier and Type | Method and Description |
---|---|
ValueBuffer |
executeOperator(java.util.LinkedList<ValueBuffer> args)
The OVERLAPS operator returns TRUE iff the two interval arguments have at least one point in common (the intersection of their set of point values is nonempty).
|
java.lang.String[] |
getArgumentTypeNames()
OVERLAPS takes two arguments that are both of the same interval type
|
TypeDeclaration |
getReturnTypeDeclaration()
Gets the full type declaration of the type of the return value.
|
java.lang.String |
getReturnTypeName()
The return type is BOOLEAN
|
java.lang.String |
getSignature()
Gets the name of the operator implemented by this implementation object
|
boolean |
isDeterministic()
Tells whether the operator is deterministic with respect to the arguments of its invocations.
|
void |
readExternal(java.io.ObjectInput in) |
void |
writeExternal(java.io.ObjectOutput out) |
public IntervalOverlapsOperatorImplementation(IntervalTypeImplementation intervalTypeImplementation)
intervalTypeImplementation
- the implementation of the relevant base type's ordering operatorpublic ValueBuffer executeOperator(java.util.LinkedList<ValueBuffer> args)
Cases | (meaning) | OVERLAPS operator outcome |
Any argument is o (the empty interval) | b1 == e1 || b2 == e2 | FALSE |
Allen's OVERLAPS operator | b1 < b2 < e1 | TRUE |
Allen's IS OVERLAPPED BY operator | b2 < b1 < e2 | TRUE |
Allen's STARTS operator | b1 == b2 && e1 < e2 | TRUE |
Allen's IS STARTED BY operator | b1 == b2 && e1 > e2 | TRUE |
Allen's FINISHES operator | b1 > b2 && e1 == e2 | TRUE |
Allen's IS FINISHED BY operator | b1 < b2 && e1 == e2 | TRUE |
Allen's IS CONTAINED IN operator | b1 > b2 && e1 < e2 | TRUE |
Allen's CONTAINS operator | b1 < b2 && e1 > e2 | TRUE |
Allen's EQUALS operator | b1 == b2 && e1 == e2 | TRUE |
All other Allen operators (AFTER BEFORE MEETS IS_MET_BY) | FALSE |
executeOperator
in interface OperatorImplementation_V0104
args
- the argument list. The list must hold as many ValueBuffer objects as there are arguments to the operator, and each ValueBuffer object holds a value for some argument to the operator. ValueBuffer objects on the list must appear in the same order as the operator argument declarations. Implementations have the option, but are not required, to do a check the conformance of the argument list (the argument count, notably) to the operator signature.public java.lang.String[] getArgumentTypeNames()
getArgumentTypeNames
in interface OperatorImplementation_V0104
public TypeDeclaration getReturnTypeDeclaration()
OperatorImplementation_V0105
getReturnTypeDeclaration
in interface OperatorImplementation_V0105
public java.lang.String getReturnTypeName()
getReturnTypeName
in interface OperatorImplementation_V0104
public java.lang.String getSignature()
OperatorImplementation_V0104
getSignature
in interface OperatorImplementation_V0104
public boolean isDeterministic()
OperatorImplementation_V0104
isDeterministic
in interface OperatorImplementation_V0104
public void readExternal(java.io.ObjectInput in) throws java.io.IOException
readExternal
in interface java.io.Externalizable
java.io.IOException
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
java.io.IOException