/*
* 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.kml;
import org.picocontainer.MutablePicoContainer;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.kml.bindings.BoundaryTypeBinding;
import org.geotools.kml.bindings.ColorBinding;
import org.geotools.kml.bindings.ColorStyleTypeBinding;
import org.geotools.kml.bindings.ContainerTypeBinding;
import org.geotools.kml.bindings.CoordinatesTypeBinding;
import org.geotools.kml.bindings.DateTimeTypeBinding;
import org.geotools.kml.bindings.DocumentTypeBinding;
import org.geotools.kml.bindings.FeatureTypeBinding;
import org.geotools.kml.bindings.FolderTypeBinding;
import org.geotools.kml.bindings.GeometryTypeBinding;
import org.geotools.kml.bindings.KmlTypeBinding;
import org.geotools.kml.bindings.LabelStyleTypeBinding;
import org.geotools.kml.bindings.LatLonBoxTypeBinding;
import org.geotools.kml.bindings.LineStringTypeBinding;
import org.geotools.kml.bindings.LineStyleTypeBinding;
import org.geotools.kml.bindings.LinearRingTypeBinding;
import org.geotools.kml.bindings.LocationTypeBinding;
import org.geotools.kml.bindings.LookAtTypeBinding;
import org.geotools.kml.bindings.MetadataTypeBinding;
import org.geotools.kml.bindings.MultiGeometryTypeBinding;
import org.geotools.kml.bindings.ObjectTypeBinding;
import org.geotools.kml.bindings.PlacemarkTypeBinding;
import org.geotools.kml.bindings.PointTypeBinding;
import org.geotools.kml.bindings.PolyStyleTypeBinding;
import org.geotools.kml.bindings.PolygonTypeBinding;
import org.geotools.kml.bindings.RegionTypeBinding;
import org.geotools.kml.bindings.StyleMap;
import org.geotools.kml.bindings.StyleTypeBinding;
import org.geotools.styling.StyleBuilder;
import org.geotools.styling.StyleFactory;
import org.geotools.xml.Configuration;
/**
* Parser configuration for the http://earth.google.com/kml/2.1 schema.
*
* @generated
*
*
* @source $URL$
*/
public class KMLConfiguration extends Configuration {
/**
* Creates a new configuration.
*
* @generated
*/
public KMLConfiguration() {
super(KML.getInstance());
//TODO: add dependencies here
}
/**
* Places an instance of {@link GeometryFactory}.
*/
protected void configureContext(MutablePicoContainer container) {
StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null);
StyleBuilder styleBuilder = new StyleBuilder(styleFactory);
container.registerComponentInstance(styleFactory);
container.registerComponentInstance(styleBuilder);
container.registerComponentInstance(new GeometryFactory());
container.registerComponentInstance(CoordinateArraySequenceFactory.instance());
container.registerComponentInstance(new StyleMap());
}
/**
* Registers the bindings for the configuration.
*
* @generated
*/
protected final void registerBindings(MutablePicoContainer container) {
//Types
//container.registerComponentImplementation(KML.altitudeModeEnum,
// AltitudeModeEnumBinding.class);
//container.registerComponentImplementation(KML.angle180, Angle180Binding.class);
//container.registerComponentImplementation(KML.angle360, Angle360Binding.class);
//container.registerComponentImplementation(KML.angle90, Angle90Binding.class);
//container.registerComponentImplementation(KML.anglepos90, Anglepos90Binding.class);
//container.registerComponentImplementation(KML.BalloonStyleType,
// BalloonStyleTypeBinding.class);
container.registerComponentImplementation(KML.boundaryType, BoundaryTypeBinding.class);
//container.registerComponentImplementation(KML.ChangeType, ChangeTypeBinding.class);
container.registerComponentImplementation(KML.color, ColorBinding.class);
//container.registerComponentImplementation(KML.colorModeEnum, ColorModeEnumBinding.class);
container.registerComponentImplementation(KML.ColorStyleType, ColorStyleTypeBinding.class);
container.registerComponentImplementation(KML.ContainerType, ContainerTypeBinding.class);
container.registerComponentImplementation(KML.CoordinatesType, CoordinatesTypeBinding.class);
//container.registerComponentImplementation(KML.CreateType, CreateTypeBinding.class);
container.registerComponentImplementation(KML.dateTimeType, DateTimeTypeBinding.class);
//container.registerComponentImplementation(KML.DeleteType, DeleteTypeBinding.class);
container.registerComponentImplementation(KML.DocumentType, DocumentTypeBinding.class);
container.registerComponentImplementation(KML.FeatureType, FeatureTypeBinding.class);
container.registerComponentImplementation(KML.FolderType, FolderTypeBinding.class);
container.registerComponentImplementation(KML.GeometryType, GeometryTypeBinding.class);
//container.registerComponentImplementation(KML.GroundOverlayType,
// GroundOverlayTypeBinding.class);
//container.registerComponentImplementation(KML.IconStyleIconType,
// IconStyleIconTypeBinding.class);
//container.registerComponentImplementation(KML.IconStyleType, IconStyleTypeBinding.class);
//container.registerComponentImplementation(KML.IconType, IconTypeBinding.class);
//container.registerComponentImplementation(KML.itemIconStateEnum,
// ItemIconStateEnumBinding.class);
//container.registerComponentImplementation(KML.itemIconStateType,
// ItemIconStateTypeBinding.class);
//container.registerComponentImplementation(KML.ItemIconType, ItemIconTypeBinding.class);
container.registerComponentImplementation(KML.KmlType, KmlTypeBinding.class);
container.registerComponentImplementation(KML.LabelStyleType, LabelStyleTypeBinding.class);
//container.registerComponentImplementation(KML.LatLonAltBoxType,
// LatLonAltBoxTypeBinding.class);
container.registerComponentImplementation(KML.LatLonBoxType, LatLonBoxTypeBinding.class);
container.registerComponentImplementation(KML.LinearRingType, LinearRingTypeBinding.class);
container.registerComponentImplementation(KML.LineStringType, LineStringTypeBinding.class);
container.registerComponentImplementation(KML.LineStyleType, LineStyleTypeBinding.class);
//container.registerComponentImplementation(KML.LinkType, LinkTypeBinding.class);
//container.registerComponentImplementation(KML.listItemTypeEnum,
// ListItemTypeEnumBinding.class);
//container.registerComponentImplementation(KML.ListStyleType, ListStyleTypeBinding.class);
container.registerComponentImplementation(KML.LocationType, LocationTypeBinding.class);
//container.registerComponentImplementation(KML.LodType, LodTypeBinding.class);
container.registerComponentImplementation(KML.LookAtType, LookAtTypeBinding.class);
container.registerComponentImplementation(KML.MetadataType, MetadataTypeBinding.class);
//container.registerComponentImplementation(KML.ModelType, ModelTypeBinding.class);
container.registerComponentImplementation(KML.MultiGeometryType,
MultiGeometryTypeBinding.class);
//container.registerComponentImplementation(KML.NetworkLinkControlType,
// NetworkLinkControlTypeBinding.class);
//container.registerComponentImplementation(KML.NetworkLinkType, NetworkLinkTypeBinding.class);
container.registerComponentImplementation(KML.ObjectType, ObjectTypeBinding.class);
//container.registerComponentImplementation(KML.OrientationType, OrientationTypeBinding.class);
//container.registerComponentImplementation(KML.OverlayType, OverlayTypeBinding.class);
container.registerComponentImplementation(KML.PlacemarkType, PlacemarkTypeBinding.class);
container.registerComponentImplementation(KML.PointType, PointTypeBinding.class);
container.registerComponentImplementation(KML.PolygonType, PolygonTypeBinding.class);
container.registerComponentImplementation(KML.PolyStyleType, PolyStyleTypeBinding.class);
//container.registerComponentImplementation(KML.refreshModeEnum, RefreshModeEnumBinding.class);
container.registerComponentImplementation(KML.RegionType, RegionTypeBinding.class);
//container.registerComponentImplementation(KML.ReplaceType, ReplaceTypeBinding.class);
//container.registerComponentImplementation(KML.ScaleType, ScaleTypeBinding.class);
//container.registerComponentImplementation(KML.ScreenOverlayType,
// ScreenOverlayTypeBinding.class);
//container.registerComponentImplementation(KML.SnippetType, SnippetTypeBinding.class);
//container.registerComponentImplementation(KML.StyleMapPairType,
// StyleMapPairTypeBinding.class);
//container.registerComponentImplementation(KML.StyleMapType, StyleMapTypeBinding.class);
//container.registerComponentImplementation(KML.StyleSelectorType,
// StyleSelectorTypeBinding.class);
//container.registerComponentImplementation(KML.styleStateEnum, StyleStateEnumBinding.class);
container.registerComponentImplementation(KML.StyleType, StyleTypeBinding.class);
//container.registerComponentImplementation(KML.TimePrimitiveType,
// TimePrimitiveTypeBinding.class);
//container.registerComponentImplementation(KML.TimeSpanType, TimeSpanTypeBinding.class);
//container.registerComponentImplementation(KML.TimeStampType, TimeStampTypeBinding.class);
//container.registerComponentImplementation(KML.unitsEnum, UnitsEnumBinding.class);
//container.registerComponentImplementation(KML.UpdateType, UpdateTypeBinding.class);
//container.registerComponentImplementation(KML.vec2Type, Vec2TypeBinding.class);
//container.registerComponentImplementation(KML.viewRefreshModeEnum,
// ViewRefreshModeEnumBinding.class);
}
}