org.geotools.data.joining
Class JoiningNestedAttributeMapping

Object
  extended by AttributeMapping
      extended by NestedAttributeMapping
          extended by JoiningNestedAttributeMapping

public class JoiningNestedAttributeMapping
extends NestedAttributeMapping

Nested attribute mapping used for joining system

Author:
Niels Charlier (Curtin University of Technology)

Nested Class Summary
protected static class JoiningNestedAttributeMapping.Instance
          Instance that holds temporary data for going through the features, for each 'caller' (any object going through the features) there is one.
 
Field Summary
protected  Map<Object,JoiningNestedAttributeMapping.Instance> instances
          The instances.
 
Fields inherited from class NestedAttributeMapping
filterFac, nestedFeatureType, nestedTargetXPath
 
Fields inherited from class AttributeMapping
sourceExpression, targetXPath
 
Constructor Summary
JoiningNestedAttributeMapping(Expression idExpression, Expression parentExpression, XPathUtil.StepList targetXPath, boolean isMultiValued, Map<Name,Expression> clientProperties, Expression sourceElement, XPathUtil.StepList sourcePath, NamespaceSupport namespaces)
          Constructor
 
Method Summary
 void close(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 value
 List<Feature> getInputFeatures(Object foreignKeyValue, FeatureTypeMapping fMapping)
          Get matching input features that are stored in this mapping using a supplied link value.
 List<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.
 DataAccessMappingFeatureIterator initSourceFeatures(JoiningNestedAttributeMapping.Instance instance, Name featureTypeName, CoordinateReferenceSystem reprojection, List<PropertyName> selectedProperties, boolean includeMandatory, int resolveDepth, Integer resolveTimeOut)
          Initialise a new iterator (for polymorphism, there could be multiple per instance)
 void open(Object caller, Query baseTableQuery, FeatureTypeMapping mapping)
          Open an instance (cursor) for a specific caller.
 void skip(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 it
protected  void skipFeatures(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, getInstanceXpath, getLabel, getParentLabel, getSourceExpression, getSourceIndex, getTargetNodeInstance, getTargetXPath, hashCode, isList, isMultiValued, setEncodeIfEmpty, setIdentifierExpression, setInstanceXpath, setLabel, setList, setParentLabel, toString
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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

Parameters:
idExpression -
parentExpression -
targetXPath -
isMultiValued -
clientProperties -
sourceElement -
sourcePath -
namespaces -
Throws:
IOException
Method Detail

getInputFeatures

public List<Feature> getInputFeatures(Object foreignKeyValue,
                                      FeatureTypeMapping fMapping)
Description copied from class: NestedAttributeMapping
Get matching input features that are stored in this mapping using a supplied link value.

Overrides:
getInputFeatures in class NestedAttributeMapping
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)
                                                    throws IOException
Initialise a new iterator (for polymorphism, there could be multiple per instance)

Parameters:
instance -
featureTypeName -
reprojection -
selectedProperties -
includeMandatory -
Returns:
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.

Parameters:
caller -
baseTableQuery -
Throws:
IOException

close

public void close(Object caller)
Close the instance of this caller.

Parameters:
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:
getInputFeatures in class NestedAttributeMapping
Parameters:
foreignKeyValue -
Returns:
The matching input feature
Throws:
IOException
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:
getFeatures in class NestedAttributeMapping
Parameters:
foreignKeyValue -
reprojection - Reprojected CRS or null
selectedProperties - 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

Parameters:
caller -
foreignKeyValue -
Throws:
IOException


Copyright © 1996-2014 Geotools. All Rights Reserved.