public final class XMINUSUSING_RELATION_RELATION extends java.lang.Object implements AggregationOperatorImplementation
r1 | r2 | i | result |
---|---|---|---|
REL { TUP {IV:[1-7]} } | REL { TUP {IV:[5-9]} } | REL { TUP {IV:[1-7] TUP {IV:[5-9]} } | |
REL { TUP {IV:[1-7]} } | REL { TUP {IV:[5-9]} } | IV | REL { TUP {IV:[1-4]} TUP {IV:[8-9]} } |
REL { TUP {IV1:[1-7] IV2:[1-7]} } | REL { TUP {IV1:[1-3] IV2:[1-3]} } | IV1,IV2 | REL { TUP {IV1:[1-7] IV2:[4-7]} TUP {IV1:[4-7] IV2:[1-3]} } |
REL { TUP {IV1:[1-7] IV2:[1-7]} } | REL { TUP {IV1:[1-3] IV2:[1-3]} } | IV2,IV1 | REL { TUP {IV1:[4-7] IV2:[1-7]} TUP {IV1:[1-3] IV2:[4-7]} } |
Constructor and Description |
---|
XMINUSUSING_RELATION_RELATION(Heading heading,
java.util.LinkedList<NameIdentifier> treatAsRange)
Creates the XMINUSUSING_RELATION_RELATION
|
XMINUSUSING_RELATION_RELATION(Heading heading,
java.util.LinkedList<NameIdentifier> treatAsRange,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations,
java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
Creates the XMINUSUSING_RELATION_RELATION
|
Modifier and Type | Method and Description |
---|---|
ValueBuffer |
executeOperator(java.util.LinkedList<ValueBuffer> args)
Performs the actual logic of the operator.
|
java.lang.String[] |
getArgumentTypeNames()
The relation XMINUSUSING operator takes two arguments, both of a relation type.
|
ValueBuffer |
getIdentityElement()
The identity value for XMINUSUSING is the empty relation of the concerned relation type.
|
TypeDeclaration |
getReturnTypeDeclaration()
XMINUSUSING returns a relation of the type that is the most specific common supertype between the relation types of the arguments
|
java.lang.String |
getReturnTypeName()
XMINUSUSING returns a relation of the type that is the most specific common supertype between the relation types of the arguments
|
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 XMINUSUSING_RELATION_RELATION(Heading heading, java.util.LinkedList<NameIdentifier> treatAsRange, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations, java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
heading
- The heading defining the relation type of both argumentstreatAsRange
- The names of the attributes to be treated as a range. The result returned from invocations of the operator instance will be packed on these attributes.intervalTypedAttributesIntervalOperatorImplementations
- A map mapping the attribute names to a corresponding collection of interval operators (this collection takes itself the form of a mapping from operator names to interval operator implementations). The map is required to hold at least the OPERATORNAMES.SPLITBY
, OPERATORNAMES.IMINUS
, OPERATORNAMES.IINTERSECT
and OPERATORNAMES.ISEMPTYINTERVAL
implementations for each attribute.intervalTypedAttributesIntervalTypeImplementations
- A map mapping the interval-typed attribute names to their type implementations. The keySet() of this map must be equal to the keySet() of the intervalTypedAttributesIntervalOperatorImplementations Map.public XMINUSUSING_RELATION_RELATION(Heading heading, java.util.LinkedList<NameIdentifier> treatAsRange)
heading
- The heading defining the relation type of both argumentstreatAsRange
- The names of the attributes to be treated as a range. The result returned from invocations of the operator instance will be packed on these attributes.public ValueBuffer executeOperator(java.util.LinkedList<ValueBuffer> args)
OperatorImplementation_V0104
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 ValueBuffer getIdentityElement()
getIdentityElement
in interface AggregationOperatorImplementation
public TypeDeclaration getReturnTypeDeclaration()
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)
readExternal
in interface java.io.Externalizable
public void writeExternal(java.io.ObjectOutput out)
writeExternal
in interface java.io.Externalizable