Package org.geotools.data.joining
Class JoiningNestedAttributeMapping
- Object
-
- AttributeMapping
-
- NestedAttributeMapping
-
- JoiningNestedAttributeMapping
-
public class JoiningNestedAttributeMapping extends NestedAttributeMapping
Nested attribute mapping used for joining system- Author:
- Niels Charlier (Curtin University of Technology)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classJoiningNestedAttributeMapping.InstanceInstance that holds temporary data for going through the features, for each 'caller' (any object going through the features) there is one.
-
Field Summary
Fields Modifier and Type Field Description protected Map<Object,JoiningNestedAttributeMapping.Instance>instancesThe instances.-
Fields inherited from class NestedAttributeMapping
filterFac, nestedFeatureType, nestedTargetXPath
-
Fields inherited from class AttributeMapping
sourceExpression, targetXPath
-
-
Constructor Summary
Constructors Constructor Description JoiningNestedAttributeMapping(Expression idExpression, Expression parentExpression, XPathUtil.StepList targetXPath, boolean isMultiValued, Map<Name,Expression> clientProperties, Expression sourceElement, XPathUtil.StepList sourcePath, NamespaceSupport namespaces)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose(Object caller)Close the instance of this caller.List<Feature>getFeatures(Object caller, Object foreignKeyValue, List<Object> idValues, CoordinateReferenceSystem reprojection, Object feature, List<PropertyName> selectedProperties, boolean includeMandatory, int resolveDepth, Integer resolveTimeOut)Get the maching built features that are stored in this mapping using a supplied link valueList<Feature>getInputFeatures(Object caller, Object foreignKeyValue, List<Object> idValues, Object feature, CoordinateReferenceSystem reprojection, List<PropertyName> selectedProperties, boolean includeMandatory)Get matching input features that are stored in this mapping using a supplied link value.List<Feature>getInputFeatures(Object foreignKeyValue, FeatureTypeMapping fMapping)Get matching input features that are stored in this mapping using a supplied link value.Map<Name,DataAccessMappingFeatureIterator>getNestedFeatureIterators(Object caller)For testing purposes only: exposes the nested feature iterators to calling code.DataAccessMappingFeatureIteratorinitSourceFeatures(JoiningNestedAttributeMapping.Instance instance, Name featureTypeName, CoordinateReferenceSystem reprojection, List<PropertyName> selectedProperties, boolean includeMandatory, int resolveDepth, Integer resolveTimeOut, Transaction transaction)Initialise a new iterator (for polymorphism, there could be multiple per instance)voidopen(Object caller, Query baseTableQuery, FeatureTypeMapping mapping)Open an instance (cursor) for a specific caller.voidskip(Object caller, Object foreignKeyValue, List<Object> idValues)If we have decided not to build the parent feature, we need to skip all rows that were returned to build itprotected voidskipFeatures(DataAccessMappingFeatureIterator featureIterator, Expression nestedSourceExpression, Object foreignKeyValue, List<Object> idValues)-
Methods inherited from class NestedAttributeMapping
getFeatures, getFeatureTypeMapping, getMapping, getMappingSource, getNamespaces, getNestedFeatureType, isConditional, isNestedAttribute, isSameSource
-
Methods inherited from class AttributeMapping
encodeIfEmpty, equals, getClientProperties, getIdentifierExpression, getIndexField, getInstanceXpath, getLabel, getMultipleValue, getParentLabel, getSourceExpression, getSourceIndex, getTargetNodeInstance, getTargetXPath, hashCode, isList, isMultiValued, setEncodeIfEmpty, setIdentifierExpression, setIndexField, setInstanceXpath, setLabel, setList, setParentLabel, toString
-
-
-
-
Field Detail
-
instances
protected Map<Object,JoiningNestedAttributeMapping.Instance> instances
The instances.
-
-
Constructor Detail
-
JoiningNestedAttributeMapping
public JoiningNestedAttributeMapping(Expression idExpression, Expression parentExpression, XPathUtil.StepList targetXPath, boolean isMultiValued, Map<Name,Expression> clientProperties, Expression sourceElement, XPathUtil.StepList sourcePath, NamespaceSupport namespaces) throws IOException
Constructor- Throws:
IOException
-
-
Method Detail
-
getInputFeatures
public List<Feature> getInputFeatures(Object foreignKeyValue, FeatureTypeMapping fMapping)
Description copied from class:NestedAttributeMappingGet matching input features that are stored in this mapping using a supplied link value.- Overrides:
getInputFeaturesin classNestedAttributeMapping- Returns:
- The matching input feature
-
initSourceFeatures
public DataAccessMappingFeatureIterator initSourceFeatures(JoiningNestedAttributeMapping.Instance instance, Name featureTypeName, CoordinateReferenceSystem reprojection, List<PropertyName> selectedProperties, boolean includeMandatory, int resolveDepth, Integer resolveTimeOut, Transaction transaction) throws IOException
Initialise a new iterator (for polymorphism, there could be multiple per instance)- Throws:
IOException
-
open
public void open(Object caller, Query baseTableQuery, FeatureTypeMapping mapping) throws IOException
Open an instance (cursor) for a specific caller. An instance holds a cursor and any additional information to move through the features.- Throws:
IOException
-
close
public void close(Object caller)
Close the instance of this caller.
-
getInputFeatures
public List<Feature> getInputFeatures(Object caller, Object foreignKeyValue, List<Object> idValues, Object feature, CoordinateReferenceSystem reprojection, List<PropertyName> selectedProperties, boolean includeMandatory) throws IOException
Get matching input features that are stored in this mapping using a supplied link value.- Overrides:
getInputFeaturesin classNestedAttributeMapping- Returns:
- The matching input feature
- Throws:
IOException
-
getFeatures
public List<Feature> getFeatures(Object caller, Object foreignKeyValue, List<Object> idValues, CoordinateReferenceSystem reprojection, Object feature, List<PropertyName> selectedProperties, boolean includeMandatory, int resolveDepth, Integer resolveTimeOut) throws IOException
Get the maching built features that are stored in this mapping using a supplied link value- Overrides:
getFeaturesin classNestedAttributeMapping- Parameters:
reprojection- Reprojected CRS or nullselectedProperties- list of properties to get- Returns:
- The matching simple features
- Throws:
IOException
-
skipFeatures
protected void skipFeatures(DataAccessMappingFeatureIterator featureIterator, Expression nestedSourceExpression, Object foreignKeyValue, List<Object> idValues) throws IOException
- Throws:
IOException
-
skip
public void skip(Object caller, Object foreignKeyValue, List<Object> idValues) throws IOException
If we have decided not to build the parent feature, we need to skip all rows that were returned to build it- Throws:
IOException
-
getNestedFeatureIterators
public Map<Name,DataAccessMappingFeatureIterator> getNestedFeatureIterators(Object caller)
For testing purposes only: exposes the nested feature iterators to calling code.- Parameters:
caller- the object going through the features- Returns:
- a map of nested feature iterators, keyed by nested feature type name
-
-