/*
* Geotoolkit - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2011, Geomatys
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotoolkit.processing.vector.spatialjoin;
import org.geotoolkit.data.FeatureCollection;
import org.geotoolkit.data.memory.WrapFeatureCollection;
import org.opengis.feature.Feature;
import org.opengis.feature.FeatureType;
/**
* FeatureCollection for SpatialJoin process
* @author Quentin Boileau
* @module
*/
public class SpatialJoinFeatureCollection extends WrapFeatureCollection {
private final FeatureType newFeatureType;
private final FeatureCollection sourceFC;
private final boolean method;
/**
* Create the new
* @param sourceFC the source FeatureCollection
* @param targetFC the target FeatureCollection
* @param method boolean to set the used method
*/
public SpatialJoinFeatureCollection(final FeatureCollection sourceFC,
final FeatureCollection targetFC, final boolean method) {
super(targetFC);
this.sourceFC = sourceFC;
this.method = method;
this.newFeatureType = SpatialJoinProcess.concatType(targetFC.getFeatureType(), sourceFC.getFeatureType());
}
/**
* Return the new FeatureType
* @return FeatureType
*/
@Override
public FeatureType getFeatureType() {
return newFeatureType;
}
/**
* {@inheritDoc }
*/
@Override
protected Feature modify(final Feature original) {
return SpatialJoinProcess.join(original, newFeatureType, sourceFC, method);
}
}