Package org.apache.calcite.util.mapping
Enum MappingType
 All Implemented Interfaces:
Serializable
,Comparable<MappingType>
,Constable
Describes the type of a mapping, from the most general
MULTI_FUNCTION
(every element in the source and target domain can
participate in many mappings) to the most restricted BIJECTION
(every
element in the source and target domain must be paired with precisely one
element in the other domain).
Some common types:
 A surjection is a mapping if every target has at least one source; also known as an 'onto' mapping.
 A mapping is a partial function if every source has at most one target.
 A mapping is a function if every source has precisely one target.
 An injection is a mapping where a target has at most one source; also somewhat confusingly known as a 'onetoone' mapping.
 A bijection is a mapping which is both an injection and a surjection. Every source has precisely one target, and vice versa.
Once you know what type of mapping you want, call
Mappings.create(MappingType, int, int)
to create an efficient
implementation of that mapping.

Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>

Enum Constant Summary
Enum ConstantDescriptionAn inverse function has a source for every target, but a source might have 0, 1 or more targets.An inverse surjection has a source for every target, and no source has more than one target.A partial surjection has no more than one source for any target, and no more than one target for any source. 
Method Summary
Modifier and TypeMethodDescriptioninverse()
boolean
isA
(MappingType mappingType) Returns whether this mapping type is (possibly a weaker form of) a given mapping type.boolean
A mapping is a bijection if it is a surjection and it is an injection.boolean
A mapping is a total function if every source has precisely one target.boolean
A mapping is an injection if it is a function and no target has more than one source.boolean
Constraint that every target has at least one source.boolean
Constraint that every source has at least one target.boolean
A mapping is a partial function if every source has at most one target.boolean
Constraint that every target has at most one source.boolean
Constraint that every source has at most one target.boolean
A mapping is a surjection if it is a function and every target has at least one source.static MappingType
Returns the enum constant of this type with the specified name.static MappingType[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.

Enum Constant Details

BIJECTION

SURJECTION

INJECTION

FUNCTION

INVERSE_SURJECTION
An inverse surjection has a source for every target, and no source has more than one target. 
PARTIAL_SURJECTION
A partial surjection has no more than one source for any target, and no more than one target for any source. 
PARTIAL_INJECTION

PARTIAL_FUNCTION

INVERSE_INJECTION

INVERSE_PARTIAL_INJECTION

TEN

ELEVEN

INVERSE_FUNCTION
An inverse function has a source for every target, but a source might have 0, 1 or more targets.Obeys the constraints
isMandatorySource()
,isSingleSource()
.Similar types:

INVERSE_SURJECTION
is stronger (a source may not have multiple targets); INVERSE_PARTIAL_FUNCTION
is weaker (a target may have 0 or 1 sources).


INVERSE_PARTIAL_FUNCTION

FOURTEEN

MULTI_FUNCTION


Method Details

values
Returns an array containing the constants of this enum type, in the order they are declared. Returns:
 an array containing the constants of this enum type, in the order they are declared

valueOf
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.) Parameters:
name
 the name of the enum constant to be returned. Returns:
 the enum constant with the specified name
 Throws:
IllegalArgumentException
 if this enum type has no constant with the specified nameNullPointerException
 if the argument is null

inverse

isA

isFunction
public boolean isFunction()A mapping is a total function if every source has precisely one target. 
isPartialFunction
public boolean isPartialFunction()A mapping is a partial function if every source has at most one target. 
isSurjection
public boolean isSurjection()A mapping is a surjection if it is a function and every target has at least one source. 
isInjection
public boolean isInjection()A mapping is an injection if it is a function and no target has more than one source. (In other words, every source has precisely one target.) 
isBijection
public boolean isBijection()A mapping is a bijection if it is a surjection and it is an injection. (In other words, 
isMandatoryTarget
public boolean isMandatoryTarget()Constraint that every source has at least one target. 
isSingleTarget
public boolean isSingleTarget()Constraint that every source has at most one target. 
isMandatorySource
public boolean isMandatorySource()Constraint that every target has at least one source. 
isSingleSource
public boolean isSingleSource()Constraint that every target has at most one source.
