/*
* 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.xml.impl.jxpath;
import org.apache.commons.jxpath.ri.QName;
import org.apache.commons.jxpath.ri.model.NodePointer;
import org.apache.commons.jxpath.ri.model.NodePointerFactory;
import java.util.Locale;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
/**
* A node factory which creates special node pointers featurs.
* <p>
* The following types are supported:
* <ul>
* <li>{@link org.geotools.feature.Feature}
* <li>{@link org.geotools.feature.FeatureType}
* </ul>
* </p>
*
* @author Justin Deoliveira, The Open Planning Project
*
*
* @source $URL$
*/
public class FeatureNodeFactory implements NodePointerFactory {
public int getOrder() {
return 0;
}
public NodePointer createNodePointer(QName name, Object object, Locale locale) {
if (object instanceof SimpleFeature) {
return new FeaturePointer(null, (SimpleFeature) object, name);
}
if (object instanceof SimpleFeatureType) {
return new FeatureTypePointer(null, (SimpleFeatureType) object, name);
}
return null;
}
public NodePointer createNodePointer(NodePointer parent, QName name, Object object) {
if (object instanceof SimpleFeature) {
return new FeaturePointer(parent, (SimpleFeature) object, name);
}
if (object instanceof SimpleFeatureType) {
return new FeatureTypePointer(null, (SimpleFeatureType) object, name);
}
return null;
}
}