/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* 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.geotools.filter.v1_1;
import org.eclipse.xsd.util.XSDSchemaLocationResolver;
import org.picocontainer.MutablePicoContainer;
import org.opengis.filter.FilterFactory;
import org.geotools.filter.FilterFactoryImpl;
import org.geotools.filter.v1_0.OGCAddBinding;
import org.geotools.filter.v1_0.OGCAndBinding;
import org.geotools.filter.v1_0.OGCBBOXTypeBinding;
import org.geotools.filter.v1_0.OGCBeyondBinding;
import org.geotools.filter.v1_0.OGCBinaryComparisonOpTypeBinding;
import org.geotools.filter.v1_0.OGCBinaryLogicOpTypeBinding;
import org.geotools.filter.v1_0.OGCBinaryOperatorTypeBinding;
import org.geotools.filter.v1_0.OGCBinarySpatialOpTypeBinding;
import org.geotools.filter.v1_0.OGCContainsBinding;
import org.geotools.filter.v1_0.OGCCrossesBinding;
import org.geotools.filter.v1_0.OGCDWithinBinding;
import org.geotools.filter.v1_0.OGCDisjointBinding;
import org.geotools.filter.v1_0.OGCDistanceBufferTypeBinding;
import org.geotools.filter.v1_0.OGCDistanceTypeBinding;
import org.geotools.filter.v1_0.OGCDivBinding;
import org.geotools.filter.v1_0.OGCEqualsBinding;
import org.geotools.filter.v1_0.OGCExpressionTypeBinding;
import org.geotools.filter.v1_0.OGCFeatureIdTypeBinding;
import org.geotools.filter.v1_0.OGCFunctionTypeBinding;
import org.geotools.filter.v1_0.OGCIntersectsBinding;
import org.geotools.filter.v1_0.OGCLiteralTypeBinding;
import org.geotools.filter.v1_0.OGCLowerBoundaryTypeBinding;
import org.geotools.filter.v1_0.OGCMulBinding;
import org.geotools.filter.v1_0.OGCNotBinding;
import org.geotools.filter.v1_0.OGCOrBinding;
import org.geotools.filter.v1_0.OGCOverlapsBinding;
import org.geotools.filter.v1_0.OGCPropertyIsBetweenTypeBinding;
import org.geotools.filter.v1_0.OGCPropertyIsEqualToBinding;
import org.geotools.filter.v1_0.OGCPropertyIsGreaterThanBinding;
import org.geotools.filter.v1_0.OGCPropertyIsGreaterThanOrEqualToBinding;
import org.geotools.filter.v1_0.OGCPropertyIsLessThanBinding;
import org.geotools.filter.v1_0.OGCPropertyIsLessThanOrEqualToBinding;
import org.geotools.filter.v1_0.OGCPropertyIsLikeTypeBinding;
import org.geotools.filter.v1_0.OGCPropertyIsNotEqualToBinding;
import org.geotools.filter.v1_0.OGCPropertyIsNullTypeBinding;
import org.geotools.filter.v1_0.OGCPropertyNameTypeBinding;
import org.geotools.filter.v1_0.OGCSubBinding;
import org.geotools.filter.v1_0.OGCTouchesBinding;
import org.geotools.filter.v1_0.OGCUpperBoundaryTypeBinding;
import org.geotools.filter.v1_0.OGCWithinBinding;
import org.geotools.filter.v1_0.capabilities.Arithmetic_OperatorsTypeBinding;
import org.geotools.filter.v1_0.capabilities.Function_NameTypeBinding;
import org.geotools.filter.v1_0.capabilities.Function_NamesTypeBinding;
import org.geotools.filter.v1_0.capabilities.FunctionsTypeBinding;
import org.geotools.filter.v1_0.capabilities.Scalar_CapabilitiesTypeBinding;
import org.geotools.filter.v1_1.capabilities.ComparisonOperatorTypeBinding;
import org.geotools.filter.v1_1.capabilities.ComparisonOperatorsTypeBinding;
import org.geotools.filter.v1_1.capabilities.GeometryOperandTypeBinding;
import org.geotools.filter.v1_1.capabilities.GeometryOperandsTypeBinding;
import org.geotools.filter.v1_1.capabilities.Id_CapabilitiesTypeBinding;
import org.geotools.filter.v1_1.capabilities.SpatialOperatorTypeBinding;
import org.geotools.filter.v1_1.capabilities.SpatialOperatorsTypeBinding;
import org.geotools.filter.v1_1.capabilities.Spatial_CapabilitiesTypeBinding;
import org.geotools.filter.v1_1.capabilities._Filter_CapabilitiesBinding;
import org.geotools.gml3.GMLConfiguration;
import org.geotools.xml.Configuration;
/**
* Parser configuration for the filter 1.1 schema.
*
* @author Justin Deoliveira, The Open Planning Project
*
*
*
* @source $URL$
*/
public class OGCConfiguration extends Configuration {
/**
* Adds a dependency on {@link GMLConfiguration}
*/
public OGCConfiguration() {
super(OGC.getInstance());
addDependency(new GMLConfiguration());
}
protected void registerBindings(MutablePicoContainer container) {
//Types
//container.registerComponentImplementation(OGC.ABSTRACTIDTYPE,AbstractIdTypeBinding.class);
//container.registerComponentImplementation(OGC.ArithmeticOperatorsType,
// ArithmeticOperatorsTypeBinding.class);
//container.registerComponentImplementation(OGC.BBOXTYPE,BBOXTypeBinding.class);
container.registerComponentImplementation(OGC.BBOXType, OGCBBOXTypeBinding.class);
container.registerComponentImplementation(OGC.BinaryComparisonOpType,
OGCBinaryComparisonOpTypeBinding.class);
container.registerComponentImplementation(OGC.BinaryLogicOpType,
OGCBinaryLogicOpTypeBinding.class);
container.registerComponentImplementation(OGC.BinaryOperatorType,
OGCBinaryOperatorTypeBinding.class);
container.registerComponentImplementation(OGC.BinarySpatialOpType,
OGCBinarySpatialOpTypeBinding.class);
//container.registerComponentImplementation(OGC.ComparisonOperatorsType,
// ComparisonOperatorsTypeBinding.class);
//container.registerComponentImplementation(OGC.ComparisonOperatorType,
// ComparisonOperatorTypeBinding.class);
//container.registerComponentImplementation(OGC.COMPARISONOPSTYPE,ComparisonOpsTypeBinding.class);
container.registerComponentImplementation(OGC.DistanceBufferType,
OGCDistanceBufferTypeBinding.class);
//container.registerComponentImplementation(OGC.DISTANCETYPE,DistanceTypeBinding.class);
container.registerComponentImplementation(OGC.DistanceType, OGCDistanceTypeBinding.class);
//container.registerComponentImplementation(OGC.EXPRESSIONTYPE, ExpressionTypeBinding.class);
container.registerComponentImplementation(OGC.ExpressionType, OGCExpressionTypeBinding.class);
container.registerComponentImplementation(OGC.FeatureIdType, OGCFeatureIdTypeBinding.class);
container.registerComponentImplementation(OGC.FilterType, FilterTypeBinding.class);
//container.registerComponentImplementation(OGC.FILTERTYPE,FilterTypeBinding.class);
//container.registerComponentImplementation(OGC.FunctionNamesType,
// FunctionNamesTypeBinding.class);
//container.registerComponentImplementation(OGC.FunctionNameType,
// FunctionNameTypeBinding.class);
//container.registerComponentImplementation(OGC.FunctionsType, FunctionsTypeBinding.class);
container.registerComponentImplementation(OGC.FunctionType, OGCFunctionTypeBinding.class);
//container.registerComponentImplementation(OGC.FUNCTIONTYPE,FunctionTypeBinding.class);
//container.registerComponentImplementation(OGC.GeometryOperandsType,
// GeometryOperandsTypeBinding.class);
//container.registerComponentImplementation(OGC.GeometryOperandType,
// GeometryOperandTypeBinding.class);
container.registerComponentImplementation(OGC.GmlObjectIdType, GmlObjectIdTypeBinding.class);
//container.registerComponentImplementation(OGC.Id_CapabilitiesType,
// Id_CapabilitiesTypeBinding.class);
container.registerComponentImplementation(OGC.LiteralType, OGCLiteralTypeBinding.class);
//container.registerComponentImplementation(OGC.LITERALTYPE,LiteralTypeBinding.class);
//container.registerComponentImplementation(OGC.LOGICOPSTYPE,LogicOpsTypeBinding.class);
container.registerComponentImplementation(OGC.LowerBoundaryType,
OGCLowerBoundaryTypeBinding.class);
container.registerComponentImplementation(OGC.PropertyIsBetweenType,
OGCPropertyIsBetweenTypeBinding.class);
//container.registerComponentImplementation(OGC.PROPERTYISBETWEENTYPE,PropertyIsBetweenTypeBinding.class);
container.registerComponentImplementation(OGC.PropertyIsLikeType,
OGCPropertyIsLikeTypeBinding.class);
//container.registerComponentImplementation(OGC.PROPERTYISNULLTYPE,PropertyIsNullTypeBinding.class);
container.registerComponentImplementation(OGC.PropertyIsNullType,
OGCPropertyIsNullTypeBinding.class);
container.registerComponentImplementation(OGC.PropertyNameType,
OGCPropertyNameTypeBinding.class);
//container.registerComponentImplementation(OGC.Scalar_CapabilitiesType,
// Scalar_CapabilitiesTypeBinding.class);
container.registerComponentImplementation(OGC.SortByType, SortByTypeBinding.class);
container.registerComponentImplementation(OGC.SortOrderType, SortOrderTypeBinding.class);
container.registerComponentImplementation(OGC.SortPropertyType,
SortPropertyTypeBinding.class);
//container.registerComponentImplementation(OGC.Spatial_CapabilitiesType,
// Spatial_CapabilitiesTypeBinding.class);
//container.registerComponentImplementation(OGC.SpatialOperatorNameType,
// SpatialOperatorNameTypeBinding.class);
//container.registerComponentImplementation(OGC.SpatialOperatorsType,
// SpatialOperatorsTypeBinding.class);
//container.registerComponentImplementation(OGC.SpatialOperatorType,
// SpatialOperatorTypeBinding.class);
//container.registerComponentImplementation(OGC.SPATIALOPSTYPE,SpatialOpsTypeBinding.class);
//container.registerComponentImplementation(OGC.UNARYLOGICOPTYPE,
// UnaryLogicOpTypeBinding.class);
container.registerComponentImplementation(OGC.UpperBoundaryType,
OGCUpperBoundaryTypeBinding.class);
//Elements
//container.registerComponentImplementation(OGC._ID,_IdBinding.class);
container.registerComponentImplementation(OGC.Add, OGCAddBinding.class);
container.registerComponentImplementation(OGC.And, OGCAndBinding.class);
//container.registerComponentImplementation(OGC.BBOX,BBOXBinding.class);
container.registerComponentImplementation(OGC.Beyond, OGCBeyondBinding.class);
//container.registerComponentImplementation(OGC.COMPARISONOPS,ComparisonOpsBinding.class);
container.registerComponentImplementation(OGC.Contains, OGCContainsBinding.class);
container.registerComponentImplementation(OGC.Crosses, OGCCrossesBinding.class);
container.registerComponentImplementation(OGC.Disjoint, OGCDisjointBinding.class);
container.registerComponentImplementation(OGC.Div, OGCDivBinding.class);
container.registerComponentImplementation(OGC.DWithin, OGCDWithinBinding.class);
//container.registerComponentImplementation(OGC.EID, EIDBinding.class);
container.registerComponentImplementation(OGC.Equals, OGCEqualsBinding.class);
//container.registerComponentImplementation(OGC.EXPRESSION, ExpressionBinding.class);
//container.registerComponentImplementation(OGC.FEATUREID, FeatureIdBinding.class);
//container.registerComponentImplementation(OGC.FID, FIDBinding.class);
//container.registerComponentImplementation(OGC.FILTER,FilterBinding.class);
//container.registerComponentImplementation(OGC.Filter_Capabilities,
// Filter_CapabilitiesBinding.class);
//container.registerComponentImplementation(OGC.FUNCTION, FunctionBinding.class);
//container.registerComponentImplementation(OGC.GMLOBJECTID, GmlObjectIdBinding.class);
container.registerComponentImplementation(OGC.Intersects, OGCIntersectsBinding.class);
//container.registerComponentImplementation(OGC.LITERAL,LiteralBinding.class);
//container.registerComponentImplementation(OGC.LogicalOperators,
// LogicalOperatorsBinding.class);
//container.registerComponentImplementation(OGC.LOGICOPS,LogicOpsBinding.class);
container.registerComponentImplementation(OGC.Mul, OGCMulBinding.class);
container.registerComponentImplementation(OGC.Not, OGCNotBinding.class);
container.registerComponentImplementation(OGC.Or, OGCOrBinding.class);
container.registerComponentImplementation(OGC.Overlaps, OGCOverlapsBinding.class);
//container.registerComponentImplementation(OGC.PROPERTYISBETWEEN,PropertyIsBetweenBinding.class);
container.registerComponentImplementation(OGC.PropertyIsEqualTo,
OGCPropertyIsEqualToBinding.class);
container.registerComponentImplementation(OGC.PropertyIsGreaterThan,
OGCPropertyIsGreaterThanBinding.class);
container.registerComponentImplementation(OGC.PropertyIsGreaterThanOrEqualTo,
OGCPropertyIsGreaterThanOrEqualToBinding.class);
container.registerComponentImplementation(OGC.PropertyIsLessThan,
OGCPropertyIsLessThanBinding.class);
container.registerComponentImplementation(OGC.PropertyIsLessThanOrEqualTo,
OGCPropertyIsLessThanOrEqualToBinding.class);
//container.registerComponentImplementation(OGC.PROPERTYISLIKE, PropertyIsLikeBinding.class);
container.registerComponentImplementation(OGC.PropertyIsNotEqualTo,
OGCPropertyIsNotEqualToBinding.class);
//container.registerComponentImplementation(OGC.PROPERTYISNULL,PropertyIsNullBinding.class);
// container.registerComponentImplementation(OGC.PROPERTYNAME,
// PropertyNameBinding.class);
//container.registerComponentImplementation(OGC.SimpleArithmetic,
// SimpleArithmeticBinding.class);
//container.registerComponentImplementation(OGC.SORTBY,SortByBinding.class);
//container.registerComponentImplementation(OGC.SPATIALOPS,SpatialOpsBinding.class);
container.registerComponentImplementation(OGC.Sub, OGCSubBinding.class);
container.registerComponentImplementation(OGC.Touches, OGCTouchesBinding.class);
container.registerComponentImplementation(OGC.Within, OGCWithinBinding.class);
//capabilities
//Types
container.registerComponentImplementation(OGC.ArithmeticOperatorsType,
Arithmetic_OperatorsTypeBinding.class);
container.registerComponentImplementation(OGC.ComparisonOperatorsType,
ComparisonOperatorsTypeBinding.class);
container.registerComponentImplementation(OGC.ComparisonOperatorType,
ComparisonOperatorTypeBinding.class);
container.registerComponentImplementation(OGC.FunctionNamesType,
Function_NamesTypeBinding.class);
container.registerComponentImplementation(OGC.FunctionNameType,
Function_NameTypeBinding.class);
container.registerComponentImplementation(OGC.FunctionsType, FunctionsTypeBinding.class);
container.registerComponentImplementation(OGC.GeometryOperandsType,
GeometryOperandsTypeBinding.class);
container.registerComponentImplementation(OGC.GeometryOperandType,
GeometryOperandTypeBinding.class);
container.registerComponentImplementation(OGC.Id_CapabilitiesType,
Id_CapabilitiesTypeBinding.class);
container.registerComponentImplementation(OGC.Scalar_CapabilitiesType,
Scalar_CapabilitiesTypeBinding.class);
container.registerComponentImplementation(OGC.Spatial_CapabilitiesType,
Spatial_CapabilitiesTypeBinding.class);
//container.registerComponentImplementation(OGC.SpatialOperatorNameType,SpatialOperatorNameTypeBinding.class);
container.registerComponentImplementation(OGC.SpatialOperatorsType,
SpatialOperatorsTypeBinding.class);
container.registerComponentImplementation(OGC.SpatialOperatorType,
SpatialOperatorTypeBinding.class);
//container.registerComponentImplementation(OGC._EID,_EIDBinding.class);
//container.registerComponentImplementation(OGC._FID,_FIDBinding.class);
container.registerComponentImplementation(OGC._Filter_Capabilities,
_Filter_CapabilitiesBinding.class);
//container.registerComponentImplementation(OGC._LogicalOperators,_LogicalOperatorsBinding.class);
//container.registerComponentImplementation(OGC._SimpleArithmetic,_SimpleArithmeticBinding.class);
}
/**
* Configures the filter context.
* <p>
* The following factories are registered:
* <ul>
* <li>{@link FilterFactoryImpl} under {@link FilterFactory}
* </ul>
* </p>
*/
public void configureContext(MutablePicoContainer container) {
super.configureContext(container);
container.registerComponentImplementation(FilterFactory.class, FilterFactoryImpl.class);
}
}