/* uDig-Spatial Operations plugins
* http://b5m.gipuzkoa.net
* (C) 2006, DiputaciĆ³n Foral de Gipuzkoa, OrdenaciĆ³n Territorial.
*
* 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 es.axios.udig.spatialoperations.internal.parameters;
import javax.measure.unit.Unit;
import net.refractions.udig.project.ILayer;
import org.geotools.feature.FeatureCollection;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
/**
* Factory for Parameters used by in spatial operations.
* <p>
* This factory produces the object used to transfer
* spatial operation parameters (object value).
* </p>
*
* @author Mauricio Pazos (www.axios.es)
* @author Gabriel Roldan (www.axios.es)
* @since 1.1.0
*/
public final class ParametersFactory {
private ParametersFactory(){
// there is not instance of this class
}
/**
* Parameters required to make the buffer on target layer
*
* @param sourceLayer
* @param targetFeatureType
* @param mergeGeometry
* @param with
* @param quadrantSegments
* @param unit
* @return buffer parameters to make buffer in new targset layer
*/
public final static IBufferInNewLayerParameters createBufferParameters(
final ILayer sourceLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> selectedFeatures,
final SimpleFeatureType targetFeatureType,
final Boolean mergeGeometry,
final Double with,
final Integer quadrantSegments,
final Unit unit
){
BufferInNewLayerParameters params = new BufferInNewLayerParameters(
sourceLayer, selectedFeatures,
targetFeatureType,
mergeGeometry,
with, quadrantSegments, unit);
return params;
}
/**
* Parameters required to create buffer on new layer
*
* @param sourceLayer
* @param targetLayer
* @param mergeGeometry
* @param with
* @param quadrantSegments
* @param unit
* @return buffer paremeters into the target layer
*/
public final static IBufferInExistentLayerParameters createBufferParameters(
final ILayer sourceLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> selectedFeatures,
final ILayer targetLayer,
final Boolean mergeGeometry,
final Double with,
final Integer quadrantSegments,
final Unit unit
){
IBufferInExistentLayerParameters params = new BufferInExistentLayer(
sourceLayer, selectedFeatures,
targetLayer, mergeGeometry,
with, quadrantSegments, unit);
return params;
}
/**
* New instance of intersect parameters
*
* @param firstLayer
* @param featuresInFirstLayer
* @param secondLayer
* @param featuresInSecondLayer
* @param targetFeatureType
* @return IIntersectParameters
*/
public static IIntersectInNewLayerParameters createIntersectParameters(
final ILayer firstLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresInFirstLayer,
final ILayer secondLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresInSecondLayer,
final SimpleFeatureType targetFeatureType ) {
IIntersectInNewLayerParameters params = new IntersectInNewLayerParameters(
firstLayer, featuresInFirstLayer,
secondLayer, featuresInSecondLayer,
targetFeatureType);
return params;
}
/**
* New instance of clip parameters
*
* @param clippingLayer
* @param layerToClip
* @param clippingFeatures
* @param featuresToClip
* @param targetLayer
* @return IClipParameters
*/
public final static IClipInExistentLayerParameters createClipParameters(
final ILayer clippingLayer,
final ILayer layerToClip,
final FeatureCollection<SimpleFeatureType, SimpleFeature> clippingFeatures,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresToClip, ILayer targetLayer){
IClipInExistentLayerParameters params = new ClipInExistentLayerParameters(
clippingLayer,
layerToClip,
clippingFeatures,
featuresToClip,
targetLayer);
return params;
}
/**
*
* @param clippingLayer
* @param layerToClip
* @param clippingFeatures
* @param featuresToClip
* @param targetFeatureType
* @return
*/
public final static IClipInNewLayerParameters createClipParameters(
final ILayer clippingLayer,
final ILayer layerToClip,
final FeatureCollection<SimpleFeatureType, SimpleFeature> clippingFeatures,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresToClip,
final SimpleFeatureType targetFeatureType ) {
IClipInNewLayerParameters params = new ClipInNewLayerParameters(clippingLayer, layerToClip, clippingFeatures,
featuresToClip, targetFeatureType);
return params;
}
/**
* New instance of intersect parameters
*
* @param firstLayer
* @param featuresInFirstLayer
* @param secondLayer
* @param featuresInSecondLayer
* @param targetLayer
* @return IIntersectParameters
*/
public static IIntersectInExistentLayerParameters createIntersectParameters(
final ILayer firstLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresInFirstLayer,
final ILayer secondLayer,
final FeatureCollection<SimpleFeatureType, SimpleFeature> featuresInSecondLayer,
final ILayer targetLayer ) {
IIntersectInExistentLayerParameters params = new IntersectInExistenLayerParameters(
firstLayer, featuresInFirstLayer,
secondLayer, featuresInSecondLayer,
targetLayer);
return params;
}
}