Class Mappings
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAbstract implementation ofMapping.static interfaceCore interface of all mappings.static classAbstract implementation of mapping where both source and target domains are finite.static interfaceMapping where every source has a target.static classThe identity mapping, of a given size, or infinite.static classThrown when a mapping is expected to return one element but returns none.static classSource mapping that returns the same result as a parentMappings.SourceMappingexcept for specific overriding elements.static classTarget mapping that returns the same result as a parentMappings.TargetMappingexcept for specific overriding elements.static classA mapping where a source has at most one target, and every target has at most one source.static interfaceMapping suitable for sourcing columns.static interfaceMapping suitable for mapping columns to a target.static classThrown when a mapping is expected to return one element but returns several. -
Method Summary
Modifier and TypeMethodDescriptionstatic Mappings.TargetMappingappend(Mappings.TargetMapping mapping0, Mappings.TargetMapping mapping1) Creates a mapping by appending two mappings.static BitSetApplies a mapping to a BitSet.static <T> List<T>Applies a mapping to a list.static ImmutableBitSetapply(Mapping mapping, ImmutableBitSet bitSet) Applies a mapping to anImmutableBitSet.static intapply(Mappings.TargetMapping mapping, int i) Applies a mapping to an optional integer, returning an optional result.static com.google.common.collect.ImmutableList<ImmutableBitSet>apply2(Mapping mapping, Iterable<ImmutableBitSet> bitSets) Applies a mapping to a collection ofImmutableBitSets.static <T> List<T>Creates a view of a list, permuting according to a mapping.asList(Mappings.TargetMapping mapping) Returns a mapping as a list such thatlist.get(source)ismapping.getTarget(source)andlist.size()ismapping.getSourceCount().asListNonNull(Mappings.TargetMapping mapping) Returns a mapping as a list such thatlist.get(source)ismapping.getTarget(source)andlist.size()ismapping.getSourceCount().static MappingCreates a bijection.static MappingCreates a bijection.static MappingconcatenateMappings(List<Mapping> inputMappings) Concatenates multiple mappings.static Mappingcreate(MappingType mappingType, int sourceCount, int targetCount) Creates a mapping with required properties.static Mappings.IdentityMappingcreateIdentity(int fieldCount) Creates the identity mapping.static Mappings.TargetMappingcreateShiftMapping(int sourceCount, int... ints) Creates a mapping that consists of a set of contiguous ranges.static MappingDivides one mapping by another.static MappingConverts a mapping to its inverse.static booleanisIdentity(List<Integer> list, int count) Returns whether a list of integers is the identity mapping [0, ..., n - 1].static booleanisIdentity(Mappings.TargetMapping mapping) Returns whether a mapping is the identity.static booleankeepsOrdering(Mappings.TargetMapping mapping) Returns whether a mapping keeps order.static Mappings.TargetMappingmerge(Mappings.TargetMapping mapping0, Mappings.TargetMapping mapping1) Creates a mapping by merging two mappings.static MappingMultiplies one mapping by another.static Mappings.TargetMappingoffset(Mappings.TargetMapping mapping, int offset, int sourceCount) Returns a mapping that shifts a given mapping's source and target by a given offset.static Mappings.TargetMappingoffsetSource(Mappings.TargetMapping mapping, int offset) Returns a mapping that shifts a given mapping's source by a given offset, incrementing the number of sources by the minimum possible.static Mappings.TargetMappingoffsetSource(Mappings.TargetMapping mapping, int offset, int sourceCount) Returns a mapping that shifts a given mapping's source by a given offset.static Mappings.TargetMappingoffsetTarget(Mappings.TargetMapping mapping, int offset) Returns a mapping that shifts a given mapping's target by a given offset, incrementing the number of targets by the minimum possible.static Mappings.TargetMappingoffsetTarget(Mappings.TargetMapping mapping, int offset, int targetCount) Returns a mapping that shifts a given mapping's target by a given offset.static <T> List<T>permute(List<T> list, Mappings.TargetMapping mapping) Creates a view of a list, permuting according to a target mapping.static Mappingstatic Mappingstatic Mappings.TargetMappingtarget(IntFunction<? extends @Nullable Integer> function, int sourceCount, int targetCount) static Mappingstatic Mappings.TargetMappingConverts aMapof integers to aMappings.TargetMapping.
-
Method Details
-
create
Creates a mapping with required properties. -
createIdentity
Creates the identity mapping.For example,
createIdentity(2)returns the mapping {0:0, 1:1, 2:2}.- Parameters:
fieldCount- Number of sources/targets- Returns:
- Identity mapping
-
invert
Converts a mapping to its inverse. -
divide
Divides one mapping by another.divide(A, B)returns a mapping C such that B . C (the mapping B followed by the mapping C) is equivalent to A.- Parameters:
mapping1- First mappingmapping2- Second mapping- Returns:
- Mapping mapping3 such that mapping1 = mapping2 . mapping3
-
multiply
Multiplies one mapping by another.multiply(A, B)returns a mapping C such that A . B (the mapping A followed by the mapping B) is equivalent to C.- Parameters:
mapping1- First mappingmapping2- Second mapping- Returns:
- Mapping mapping3 such that mapping1 = mapping2 . mapping3
-
apply
Applies a mapping to a BitSet.If the mapping does not affect the bit set, returns the original. Never changes the original.
- Parameters:
mapping- MappingbitSet- Bit set- Returns:
- Bit set with mapping applied
-
apply
Applies a mapping to anImmutableBitSet.If the mapping does not affect the bit set, returns the original. Never changes the original.
- Parameters:
mapping- MappingbitSet- Bit set- Returns:
- Bit set with mapping applied
-
apply2
public static com.google.common.collect.ImmutableList<ImmutableBitSet> apply2(Mapping mapping, Iterable<ImmutableBitSet> bitSets) Applies a mapping to a collection ofImmutableBitSets.- Parameters:
mapping- MappingbitSets- Collection of bit sets- Returns:
- Sorted bit sets with mapping applied
-
apply
Applies a mapping to a list.- Type Parameters:
T- Element type- Parameters:
mapping- Mappinglist- List- Returns:
- List with elements permuted according to mapping
-
apply2
-
apply3
Creates a view of a list, permuting according to a mapping.- Type Parameters:
T- Element type- Parameters:
mapping- Mappinglist- List- Returns:
- Permuted view of list
-
permute
Creates a view of a list, permuting according to a target mapping.- Type Parameters:
T- Element type- Parameters:
list- Listmapping- Mapping- Returns:
- Permuted view of list
-
asList
Returns a mapping as a list such thatlist.get(source)ismapping.getTarget(source)andlist.size()ismapping.getSourceCount().Converse of
target(List, int).- See Also:
-
asListNonNull
Returns a mapping as a list such thatlist.get(source)ismapping.getTarget(source)andlist.size()ismapping.getSourceCount().The resulting list never contains null elements.
Converse of
target(List, int).- See Also:
-
target
public static Mappings.TargetMapping target(Map<Integer, Integer> map, int sourceCount, int targetCount) Converts aMapof integers to aMappings.TargetMapping. -
target
public static Mappings.TargetMapping target(IntFunction<? extends @Nullable Integer> function, int sourceCount, int targetCount) -
target
-
source
-
target
-
bijection
Creates a bijection.Throws if sources and targets are not one to one.
-
bijection
Creates a bijection.Throws if sources and targets are not one to one.
-
isIdentity
Returns whether a mapping is the identity. -
keepsOrdering
Returns whether a mapping keeps order.For example, {0:0, 1:1} and {0:1, 1:1} keeps order, and {0:1, 1:0} breaks the initial order.
-
createShiftMapping
Creates a mapping that consists of a set of contiguous ranges.For example,
createShiftMapping(60, 100, 0, 3, 200, 50, 5);creates
Example mapping Source Target 0 100 1 101 2 102 3 -1 ... -1 50 200 51 201 52 202 53 203 54 204 55 -1 ... -1 59 -1 - Parameters:
sourceCount- Maximum value ofsourceints- Collection of ranges, each(target, source, count)- Returns:
- Mapping that maps from source ranges to target ranges
-
append
public static Mappings.TargetMapping append(Mappings.TargetMapping mapping0, Mappings.TargetMapping mapping1) Creates a mapping by appending two mappings.Sources and targets of the second mapping are shifted to the right.
For example,
append({0:0, 1:1}, {0:0, 1:1, 2:2})yields{0:0, 1:1, 2:2, 3:3, 4:4}. -
merge
public static Mappings.TargetMapping merge(Mappings.TargetMapping mapping0, Mappings.TargetMapping mapping1) Creates a mapping by merging two mappings. There must be no clashes.Unlike
append(org.apache.calcite.util.mapping.Mappings.TargetMapping, org.apache.calcite.util.mapping.Mappings.TargetMapping), sources and targets are not shifted.For example,
merge({0:0, 1:1}, {2:2, 3:3, 4:4})yields{0:0, 1:1, 2:2, 3:3, 4:4}.merge({0:0, 1:1}, {1:2, 2:3})throws, because there are two entries with source=1. -
offsetSource
Returns a mapping that shifts a given mapping's source by a given offset, incrementing the number of sources by the minimum possible.- Parameters:
mapping- Input mappingoffset- Offset to be applied to each source- Returns:
- Shifted mapping
-
offsetSource
public static Mappings.TargetMapping offsetSource(Mappings.TargetMapping mapping, int offset, int sourceCount) Returns a mapping that shifts a given mapping's source by a given offset.For example, given
mappingwith sourceCount=2, targetCount=8, and (source, target) entries {[0: 5], [1: 7]}, offsetSource(mapping, 3) returns a mapping with sourceCount=5, targetCount=8, and (source, target) entries {[3: 5], [4: 7]}.- Parameters:
mapping- Input mappingoffset- Offset to be applied to each sourcesourceCount- New source count; must be at leastmapping's source count plusoffset- Returns:
- Shifted mapping
-
offsetTarget
Returns a mapping that shifts a given mapping's target by a given offset, incrementing the number of targets by the minimum possible.- Parameters:
mapping- Input mappingoffset- Offset to be applied to each target- Returns:
- Shifted mapping
-
offsetTarget
public static Mappings.TargetMapping offsetTarget(Mappings.TargetMapping mapping, int offset, int targetCount) Returns a mapping that shifts a given mapping's target by a given offset.For example, given
mappingwith sourceCount=2, targetCount=8, and (source, target) entries {[0: 5], [1: 7]}, offsetTarget(mapping, 3) returns a mapping with sourceCount=2, targetCount=11, and (source, target) entries {[0: 8], [1: 10]}.- Parameters:
mapping- Input mappingoffset- Offset to be applied to each targettargetCount- New target count; must be at leastmapping's target count plusoffset- Returns:
- Shifted mapping
-
offset
public static Mappings.TargetMapping offset(Mappings.TargetMapping mapping, int offset, int sourceCount) Returns a mapping that shifts a given mapping's source and target by a given offset.For example, given
mappingwith sourceCount=2, targetCount=8, and (source, target) entries {[0: 5], [1: 7]}, offsetSource(mapping, 3) returns a mapping with sourceCount=5, targetCount=8, and (source, target) entries {[3: 8], [4: 10]}.- Parameters:
mapping- Input mappingoffset- Offset to be applied to each sourcesourceCount- New source count; must be at leastmapping's source count plusoffset- Returns:
- Shifted mapping
-
isIdentity
Returns whether a list of integers is the identity mapping [0, ..., n - 1]. -
invert
-
invert
-
apply
Applies a mapping to an optional integer, returning an optional result. -
concatenateMappings
Concatenates multiple mappings.[ 1:0, 2:1] // sourceCount:100 [ 1:0, 2:1] // sourceCount:100 output: [ 1:0, 2:1, 101:2, 102:3 ] ; sourceCount:200
-