001: /* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
002: * This code is licensed under the GPL 2.0 license, availible at the root
003: * application directory.
004: */
005: package org.geoserver.wfsv.xml.v1_1_0;
006:
007: import java.math.BigInteger;
008:
009: import javax.xml.namespace.QName;
010:
011: import net.opengis.wfs.QueryType;
012: import net.opengis.wfs.ResultTypeType;
013: import net.opengis.wfsv.GetVersionedFeatureType;
014: import net.opengis.wfsv.WfsvFactory;
015:
016: import org.geotools.xml.AbstractComplexBinding;
017: import org.geotools.xml.Binding;
018: import org.geotools.xml.ElementInstance;
019: import org.geotools.xml.Node;
020:
021: /**
022: * Binding object for the type
023: * http://www.opengis.net/wfsv:GetVersionedFeatureType.
024: *
025: * <p>
026: *
027: * <pre>
028: * <code>
029: * <xsd:complexType name="GetVersionedFeatureType">
030: * <xsd:annotation>
031: * <xsd:documentation>
032: * The GetVersionedFeature extends GetFeature by returning a collection
033: * of AbstractVersionedFeature, which do contain more information about
034: * the last change occurred on each feature.
035: * </xsd:documentation>
036: * </xsd:annotation>
037: * <xsd:complexContent>
038: * <xsd:extension base="wfs:GetFeatureType"/>
039: * </xsd:complexContent>
040: * </xsd:complexType>
041: *
042: * </code>
043: * </pre>
044: *
045: * </p>
046: *
047: * @generated
048: */
049: public class GetVersionedFeatureTypeBinding extends
050: AbstractComplexBinding {
051: private WfsvFactory wfsvFactory;
052:
053: public GetVersionedFeatureTypeBinding(WfsvFactory wfsvFactory) {
054: this .wfsvFactory = wfsvFactory;
055: }
056:
057: /**
058: * @generated
059: */
060: public QName getTarget() {
061: return WFSV.GetVersionedFeatureType;
062: }
063:
064: /**
065: * <!-- begin-user-doc --> <!-- end-user-doc -->
066: *
067: * @generated modifiable
068: */
069: public Class getType() {
070: return GetVersionedFeatureTypeBinding.class;
071: }
072:
073: // public int getExecutionMode() {
074: // return Binding.OVERRIDE;
075: // }
076:
077: /**
078: * <!-- begin-user-doc --> <!-- end-user-doc -->
079: *
080: * @generated modifiable
081: */
082: public Object parse(ElementInstance instance, Node node,
083: Object value) throws Exception {
084: GetVersionedFeatureType getFeature = wfsvFactory
085: .createGetVersionedFeatureType();
086:
087: // lt;xsd:element maxOccurs="unbounded" ref="wfs:Query"/>
088: getFeature.getQuery().addAll(
089: node.getChildValues(QueryType.class));
090:
091: // <xsd:attribute default="results" name="resultType"
092: // type="wfs:ResultTypeType" use="optional">
093: // Funny, it seems resultType is not being parsed, still a string...
094: if (node.hasAttribute("resultType")) {
095: Object rt = node.getAttributeValue("resultType");
096: if ("results".equals(rt)) {
097: getFeature
098: .setResultType(ResultTypeType.RESULTS_LITERAL);
099: } else if ("hits".equals(rt)) {
100: getFeature.setResultType(ResultTypeType.HITS_LITERAL);
101: } else {
102: getFeature.setResultType((ResultTypeType) rt);
103: }
104:
105: }
106:
107: // <xsd:attribute default="text/xml; subtype=gml/3.1.1"
108: // name="outputFormat" type="xsd:string" use="optional">
109: if (node.hasAttribute("outputFormat")) {
110: getFeature.setOutputFormat((String) node
111: .getAttributeValue("outputFormat"));
112: }
113:
114: // <xsd:attribute name="maxFeatures" type="xsd:positiveInteger"
115: // use="optional">
116: if (node.hasAttribute("maxFeatures")) {
117: getFeature.setMaxFeatures((BigInteger) node
118: .getAttributeValue("maxFeatures"));
119: }
120:
121: // <xsd:attribute name="traverseXlinkDepth" type="xsd:string"
122: // use="optional">
123: if (node.hasAttribute("traverseXlinkDepth")) {
124: getFeature.setTraverseXlinkDepth((String) node
125: .getAttributeValue("traverseXlinkDepth"));
126: }
127:
128: // <xsd:attribute name="traverseXlinkExpiry"
129: // type="xsd:positiveInteger" use="optional">
130: if (node.hasAttribute("traverseXlinkExpiry")) {
131: getFeature.setTraverseXlinkExpiry((BigInteger) node
132: .getAttributeValue("traverseXlinkExpiry"));
133: }
134:
135: return getFeature;
136: }
137:
138: }
|