public interface IntervalOperatorImplementation extends OperatorImplementation_V0105
The IntervalOperatorImplementation has no associated methods. Its sole purpose is to group together the concerned concrete operator implementations in the documentation.
For each ordered type (that is, a type for which a corresponding GT() operator is implemented) that exists in the system, a corresponding interval type will automagically also be available. In addition, a set of operators for operating on values of these generated interval types will also be automagically generated. The following table presents a brief overview of the interval operators so generated.This section will mention, for each provided interval operator, its return type, its definition, its treatment of the empty interval, and remarks with respect to argument limitations, if any. For denoting the arguments and their components, the following abbreviated notation will be used : i1 Denotes the first (or only) interval input argument, i2 denotes the second. b1 Denotes the begin() part of the first (or only) input argument, b2 the begin part of the second. e1 Denotes the end() part of the first (or only) input argument, e2 the end part of the second. If there actually is no end() part, then e1/e2 are assumed to represent some conceptual "value" of "infinity", which compares to any real value of the base type as being greater (and to itself as equal). The empty interval is denoted by o.
For more detail, pls. inspect the documentation for the individual interval operator implementations. (Disclaimer : also note that this brief overview may be superseded by the documentation that comes with those individual interval operator implementations.)
AFTER(i1,i2) returns a boolean (this applies to all operators up to and including MERGES(), and will not be repeated everywhere). The return value is true if b1>=e2, false otherwise. If either argument is o, false is returned. |
BEFORE(i1,i2) returns true if b2>=e1, false otherwise. If either argument is o, false is returned. |
BEGINS(i1,i2) returns true if b1=b2 and e1<e2. False if either argument is o. |
ENDS(i1,i2) returns true if e1=e2 and b1>b2. False if either argument is o. |
CONTAINS(i1,i2) returns true if b1<=b2 and e1>=e2. True if i2 = o. False if i1=o and i2<>o. |
WITHIN(i1,i2) returns true if b1>=b2 and e1<=e2. True if i1 = o. False if i2=o and i1<>o. |
SPLITBY(i1,i2) returns true if b1<b2 and e1>e2 and i2<>o. |
SPLITS(i1,i2) returns true if b2<b1 and e2>e1 and i1<>o. |
MEETS(i1,i2) returns true if b1=e2 or e1=b2. True if either argument is o. |
OVERLAPS(i1,i2) returns true if b1<e2 and b2<e1. False if either argument is o. |
MERGES(i1,i2) = MEETS(i1,i2) or OVERLAPS(i1,i2). |
ISEMPTYINTERVAL(i1) returns true if i1 is o, false otherwise. |
ISINFINITEINTERVAL(i1) returns true if i1's representation has no end() part, false otherwise. |
CONTAINSPOINT(i1,p) takes one interval value and a value p of the type on which the interval type is based, and returns the boolean value true if i1 <> o, b1<=p and e1>p, false otherwise. |
STARTPOINTOF(i1) returns the begin() part of i1. An exception is raised if i1 is o. This operator can also be invoked as THE_BEGIN(i1). |
ENDPOINTOF(i1) returns the end() part of i1. If ISINFINITEINTERVAL(i1) returns true, or if i1 is o, an exception is raised . Synonymous to THE_END(i1). |
IUNION(i1,i2), IINTERSECT(i1,i2) and IMINUS(i1,i2) are the (hopefully) obvious interval computation operators. IUNION() and IMINUS() raise exceptions if the "result" is not one single interval, IINTERSECT() possibly returns o. |
GAPBETWEEN(i1,i2) returns the gap between two interval values, if neither i1 nor i2 are o and one of AFTER(i1,i2) or AFTER(i2,i1) are true. That is, GAPBETWEEN returns the interval from MIN(e1,e2) to MAX(b1,b2). Returns an empty interval if MERGES(i1,i2) is true. |
SPAN(i1,i2) returns the interval from MIN(b1,b2) to MAX(e1,e2) if neither i1 not i2 are o. If any argument is o, returns the value of the other argument (possibly also o). |
getReturnTypeDeclaration
executeOperator, getArgumentTypeNames, getReturnTypeName, getSignature, isDeterministic