be.SIRAPRISE.typeimplementations
Interface AggregationOperatorImplementation
- All Superinterfaces:
- OperatorImplementation, OperatorImplementation_V0104
- All Known Implementing Classes:
- AND_BOOLEAN_BOOLEAN, EQ_BOOLEAN_BOOLEAN, MAX_DATE_DATE, MAX_FLOAT_FLOAT, MAX_INT_INT, MAX_LONG_LONG, MAX_TIMEOFDAY_TIMEOFDAY, MIN_DATE_DATE, MIN_FLOAT_FLOAT, MIN_INT_INT, MIN_LONG_LONG, MIN_TIMEOFDAY_TIMEOFDAY, MULT_FLOAT_FLOAT, MULT_INT_INT, MULT_LONG_LONG, OR_BOOLEAN_BOOLEAN, PLUS_AVERAGE_AVERAGE, PLUS_DECIMAL_DECIMAL, PLUS_FLOAT_FLOAT, PLUS_INT_INT, PLUS_LONG_LONG, PLUS_TIMEOFDAY_TIMEOFDAY, XOR_BOOLEAN_BOOLEAN
public interface AggregationOperatorImplementation
- extends OperatorImplementation_V0104
AggregationOperatorImplementation is the interface that must/can be implemented by all operator implementations that are both commutative and associative, meaning in particular :
- The basic form of the operator is binary, i.e. it has two arguments.
- Those arguments are of the same type.
- The return type is the same as the arguments.
- The mathematical property holds for this operator that for all a,b,c : ((a op b) op c) == (a op (b op c)).
- The mathematical property of commutativity holds as well (i.e. for all a,c : (a op c) == (c op a)).
Sira_prise's aggregation operations on attribute values within relations can only be performed using operators that implement this interface. An operator such as e.g. String concatenation satisfies the property of associativity, but not that of commutativity. Such operators cannot be used in aggregation operations.
- Author:
- Erwin Smout
getIdentityElement
ScalarValueBuffer getIdentityElement()
throws NoIdentityElementException
- Gets the identity element of the operator in its domain.
- Returns:
- The identity element.
- Throws:
NoIdentityElementException
- if no such element exists within the (finite bounds of the) operator's domain.