public abstract class UNPACK extends RelationalOperator
Constructor and Description |
---|
UNPACK() |
Modifier and Type | Method and Description |
---|---|
static IRelation |
computeUnpack(Relation relation,
NameIdentifier... unpackAttributes) |
int |
getMaximumArgumentCount()
Gets the maximum argument count for this operator.
|
int |
getMinimumArgumentCount()
Gets the minimum argument count for this operator.
|
java.lang.String |
getName()
Gets the operator name
|
boolean |
isMonoRelationOperator()
Checks if the operator takes only one Relation as input
|
static MyReadOnlyMap<NameIdentifier,IntervalTypeImplementation> |
prepareIntervalTypeImplementationsMap(MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
Prepares a map mapping attribute names in a heading to the interval type implementations corresponding to them
|
static java.util.Set<MyReadOnlyMap<NameIdentifier,ValueBuffer>> |
unpackTuple(TupleBuffer t,
MyReadOnlyMap<NameIdentifier,IntervalTypeImplementation> intervalTypeImplementations,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations) |
static UNPACKInvocationResultDetails |
validateExpressionDetails(Heading inputHeading,
java.util.Set<NameIdentifier> attributeNames,
java.lang.String inputPredicate,
java.util.Collection<? extends KeyDef> inputKeySpecifications) |
toString
public static IRelation computeUnpack(Relation relation, NameIdentifier... unpackAttributes) throws EvaluationException
relation
- the relation to be unpackedunpackAttributes
- the interval-typed attributes over which the relation is to be unpackedEvaluationException
- if the evaluation fails for any reason of invalid arguments. The contained exception cause will provide more detail.public static MyReadOnlyMap<NameIdentifier,IntervalTypeImplementation> prepareIntervalTypeImplementationsMap(MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
intervalTypedAttributesIntervalOperatorImplementations
- A map of attribute name to interval operator implementations mappings as it typically gets used in Relational computations involving Allen operators.public static java.util.Set<MyReadOnlyMap<NameIdentifier,ValueBuffer>> unpackTuple(TupleBuffer t, MyReadOnlyMap<NameIdentifier,IntervalTypeImplementation> intervalTypeImplementations, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
t
- A tuple with interval-type attributes to be unpacked to point valuesintervalTypeImplementations
- the applicable interval type implementations per attribute to be unpackedintervalTypedAttributesIntervalOperatorImplementations
- the applicable interval operator implementations per attribute to be unpackedpublic static UNPACKInvocationResultDetails validateExpressionDetails(Heading inputHeading, java.util.Set<NameIdentifier> attributeNames, java.lang.String inputPredicate, java.util.Collection<? extends KeyDef> inputKeySpecifications) throws NonExistingAttributeException, AttributeNotIntervalTypedException, TypeIsNotOrdinalException
inputHeading
- the heading of the relation subjected to an UNPACK.attributeNames
- the set of attribute names to UNPACK over.inputPredicate
- The predicate of which the input is the extension.inputKeySpecifications
- The key specifications that the input is known to satisfy.NonExistingAttributeException
- if an unpack attribute is specified that is not present in the inputAttributeNotIntervalTypedException
- if an unpack attribute is specified that is not interval-typedTypeIsNotOrdinalException
- If the unpack attribute is of an interval type that is not based on an ordinal base typepublic final int getMaximumArgumentCount()
RelationalOperator
getMaximumArgumentCount
in class RelationalOperator
public final int getMinimumArgumentCount()
RelationalOperator
getMinimumArgumentCount
in class RelationalOperator
public java.lang.String getName()
RelationalOperator
getName
in class RelationalOperator
public boolean isMonoRelationOperator()
RelationalOperator
isMonoRelationOperator
in class RelationalOperator