|
From: <jde...@sv...> - 2006-11-08 18:24:30
|
Author: jdeolive
Date: 2006-11-08 10:22:37 -0800 (Wed, 08 Nov 2006)
New Revision: 22653
Modified:
geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml/=
producer/FeatureTransformer.java
geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml/=
producer/GeometryTransformer.java
Log:
refactored some template methods to be overridden for gml3 encoding
Modified: geotools/trunk/gt/modules/library/main/src/main/java/org/geotoo=
ls/gml/producer/FeatureTransformer.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml=
/producer/FeatureTransformer.java 2006-11-08 18:21:20 UTC (rev 22652)
+++ geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml=
/producer/FeatureTransformer.java 2006-11-08 18:22:37 UTC (rev 22653)
@@ -24,6 +24,7 @@
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureCollectionIteration;
import org.geotools.feature.FeatureType;
+import org.geotools.gml.producer.GeometryTransformer.GeometryTranslator;
import org.geotools.xml.transform.TransformerBase;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.xml.sax.Attributes;
@@ -311,7 +312,7 @@
public static class FeatureTranslator extends TranslatorSupport
implements FeatureCollectionIteration.Handler {
String fc =3D "FeatureCollection";
- GeometryTransformer.GeometryTranslator geometryTranslator;
+ protected GeometryTransformer.GeometryTranslator geometryTransla=
tor;
String memberString;
String currentPrefix;
FeatureTypeNamespaces types;
@@ -335,7 +336,7 @@
String ns, FeatureTypeNamespaces types,
SchemaLocationSupport schemaLoc) {
super(handler, prefix, ns, schemaLoc);
- geometryTranslator =3D new GeometryTransformer.GeometryTrans=
lator(handler);
+ geometryTranslator =3D createGeometryTranslator( handler );
this.types =3D types;
this.handler =3D handler;
getNamespaceSupport().declarePrefix(geometryTranslator
@@ -344,6 +345,22 @@
+ ":featureMember";
}
=20
+ /**
+ * Method to be subclassed to return a custom geometry translato=
r, mostly for gml3=20
+ * geometry support.
+ * @param handler
+ * @return
+ */
+ protected GeometryTranslator createGeometryTranslator( ContentHa=
ndler handler ) {
+ return new GeometryTransformer.GeometryTranslator( handler );
+ }
+ protected GeometryTranslator createGeometryTranslator( ContentHa=
ndler handler, int numDecimals ) {
+ return new GeometryTransformer.GeometryTranslator( handler, num=
Decimals );
+ }
+ protected GeometryTranslator createGeometryTranslator( ContentHa=
ndler handler, int numDecimals, boolean useDummyZ ) {
+ return new GeometryTransformer.GeometryTranslator( handler, num=
Decimals, useDummyZ );
+ }
+ =20
void setGmlPrefixing(boolean prefixGml) {
this.prefixGml =3D prefixGml;
}
@@ -357,12 +374,11 @@
}
=20
void setNumDecimals(int numDecimals) {
- geometryTranslator =3D new GeometryTransformer.GeometryTrans=
lator(handler,
- numDecimals);
+ geometryTranslator =3D createGeometryTranslator( handler, numDe=
cimals );
}
=20
void setUseDummyZ(boolean useDummyZ) {
- geometryTranslator =3D new GeometryTransformer.GeometryTrans=
lator(handler,
+ geometryTranslator =3D createGeometryTranslator(handler,
geometryTranslator.getNumDecimals(), useDummyZ);
}
=20
@@ -492,8 +508,7 @@
try {
String boundedBy =3D geometryTranslator.getDefaultPrefix=
() + ":"
+ "boundedBy";
- String box =3D geometryTranslator.getDefaultPrefix() + "=
:"
- + "Box";
+ =20
contentHandler.startElement("", "", boundedBy, NULL_ATTS=
);
geometryTranslator.encode(bounds, srsName);
contentHandler.endElement("", "", boundedBy);
@@ -501,7 +516,7 @@
throw new RuntimeException(se);
}
}
-
+ =20
/**
* Sends sax for the ending of a feature collection.
*
Modified: geotools/trunk/gt/modules/library/main/src/main/java/org/geotoo=
ls/gml/producer/GeometryTransformer.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml=
/producer/GeometryTransformer.java 2006-11-08 18:21:20 UTC (rev 22652)
+++ geotools/trunk/gt/modules/library/main/src/main/java/org/geotools/gml=
/producer/GeometryTransformer.java 2006-11-08 18:22:37 UTC (rev 22653)
@@ -113,19 +113,11 @@
// new behavior:
// <gml:null>unknown</gml:null>
if(bounds.isNull()) {
- start("null");
- String text =3D "unknown";
- try{
- contentHandler.characters(text.toCharArray(), 0, tex=
t.length());
- } catch(Exception e) //this shouldnt happen!!
- {
- System.out.println("got exception while writing null=
boundedby:"+e.getLocalizedMessage());
- e.printStackTrace();
- }
- end("null");
+ encodeNullBounds();
+ =20
return; // we're done!
}
- String boxName =3D "Box";
+ String boxName =3D boxName();
=20
if ((srsName =3D=3D null) || srsName.equals("")) {
start(boxName);
@@ -149,6 +141,30 @@
end(boxName);
}
=20
+ /**
+ * Method to be subclasses in order to allow for gml3 encoding f=
or null enevelope.
+ */
+ protected void encodeNullBounds() {
+ start("null");
+ String text =3D "unknown";
+ try{
+ contentHandler.characters(text.toCharArray(), 0, text.le=
ngth());
+ } catch(Exception e) //this shouldnt happen!!
+ {
+ System.out.println("got exception while writing null bou=
ndedby:"+e.getLocalizedMessage());
+ e.printStackTrace();
+ }
+ end("null");
+ }
+ =20
+ /**
+ * Method to be subclassed in order to allow for gml3 encoding o=
f envelopes.
+ * @return "Box"
+ */
+ protected String boxName() {
+ return "Box";
+ }
+ =20
public void encode(Geometry geometry) {
encode(geometry, null);
}
|