Package org.apache.calcite.util.mapping
Class Mappings.PartialFunctionImpl
- java.lang.Object
-
- org.apache.calcite.util.mapping.Mappings.AbstractMapping
-
- org.apache.calcite.util.mapping.Mappings.PartialFunctionImpl
-
- All Implemented Interfaces:
java.lang.Iterable<IntPair>
,Mapping
,Mappings.CoreMapping
,Mappings.FunctionMapping
,Mappings.SourceMapping
,Mappings.TargetMapping
- Enclosing class:
- Mappings
private static class Mappings.PartialFunctionImpl extends Mappings.AbstractMapping implements Mappings.TargetMapping
Implementation ofMapping
where a source can have at most one target, and a target can have any number of sources. The source count must be finite, but the target count may be infinite.The implementation uses an array for the forward-mapping, but does not store the backward mapping.
-
-
Field Summary
Fields Modifier and Type Field Description private MappingType
mappingType
private int
sourceCount
private int
targetCount
private int[]
targets
-
Constructor Summary
Constructors Constructor Description PartialFunctionImpl(int sourceCount, int targetCount, MappingType mappingType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Removes all elements in the mapping.MappingType
getMappingType()
Returns the mapping type.int
getSourceCount()
Returns the number of sources.int
getTargetCount()
Returns the number of targets.int
getTargetOpt(int source)
Returns the target that a source maps to, or -1 if it is not mapped.Mapping
inverse()
java.util.Iterator<IntPair>
iterator()
Returns an iterator over the elements in this mapping.void
set(int source, int target)
void
setAll(Mapping mapping)
int
size()
Returns the number of elements in the mapping.-
Methods inherited from class org.apache.calcite.util.mapping.Mappings.AbstractMapping
getSource, getSourceOpt, getTarget, isIdentity, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.calcite.util.mapping.Mappings.TargetMapping
getSourceOpt, getTarget
-
-
-
-
Field Detail
-
sourceCount
private final int sourceCount
-
targetCount
private final int targetCount
-
mappingType
private final MappingType mappingType
-
targets
private final int[] targets
-
-
Constructor Detail
-
PartialFunctionImpl
PartialFunctionImpl(int sourceCount, int targetCount, MappingType mappingType)
-
-
Method Detail
-
getSourceCount
public int getSourceCount()
Description copied from interface:Mapping
Returns the number of sources. Valid sources will be in the range 0 .. sourceCount.- Specified by:
getSourceCount
in interfaceMapping
- Specified by:
getSourceCount
in interfaceMappings.FunctionMapping
- Specified by:
getSourceCount
in interfaceMappings.SourceMapping
- Specified by:
getSourceCount
in interfaceMappings.TargetMapping
- Overrides:
getSourceCount
in classMappings.AbstractMapping
-
getTargetCount
public int getTargetCount()
Description copied from interface:Mapping
Returns the number of targets. Valid targets will be in the range 0 .. targetCount.- Specified by:
getTargetCount
in interfaceMapping
- Specified by:
getTargetCount
in interfaceMappings.SourceMapping
- Specified by:
getTargetCount
in interfaceMappings.TargetMapping
- Overrides:
getTargetCount
in classMappings.AbstractMapping
-
clear
public void clear()
Description copied from interface:Mapping
Removes all elements in the mapping.
-
size
public int size()
Description copied from interface:Mappings.CoreMapping
Returns the number of elements in the mapping.- Specified by:
size
in interfaceMapping
- Specified by:
size
in interfaceMappings.CoreMapping
-
iterator
public java.util.Iterator<IntPair> iterator()
Description copied from interface:Mapping
Returns an iterator over the elements in this mapping.This method is optional; implementations may throw
UnsupportedOperationException
.
-
getMappingType
public MappingType getMappingType()
Description copied from interface:Mappings.CoreMapping
Returns the mapping type.- Specified by:
getMappingType
in interfaceMapping
- Specified by:
getMappingType
in interfaceMappings.CoreMapping
- Specified by:
getMappingType
in interfaceMappings.FunctionMapping
- Specified by:
getMappingType
in interfaceMappings.SourceMapping
- Returns:
- Mapping type
-
inverse
public Mapping inverse()
- Specified by:
inverse
in interfaceMappings.SourceMapping
- Specified by:
inverse
in interfaceMappings.TargetMapping
-
set
public void set(int source, int target)
- Specified by:
set
in interfaceMappings.TargetMapping
- Overrides:
set
in classMappings.AbstractMapping
-
setAll
public void setAll(Mapping mapping)
-
getTargetOpt
public int getTargetOpt(int source)
Description copied from interface:Mappings.FunctionMapping
Returns the target that a source maps to, or -1 if it is not mapped.- Specified by:
getTargetOpt
in interfaceMappings.FunctionMapping
- Specified by:
getTargetOpt
in interfaceMappings.SourceMapping
- Specified by:
getTargetOpt
in interfaceMappings.TargetMapping
- Overrides:
getTargetOpt
in classMappings.AbstractMapping
-
-