[Schmitzm-commits] r1735 - in trunk: schmitzm-gt/src/main/java/de/schmitzm/geotools schmitzm-gt/src/main/java/de/schmitzm/geotools/grid schmitzm-gt/src/main/java/de/schmitzm/geotools/gui schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling schmitzm-gt/src/main/java/de/schmitzm/geotools/selection schmitzm-gt/src/main/java/de/schmitzm/geotools/styling schmitzm-parent

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Mon Sep 26 11:20:32 CEST 2011


Author: alfonx
Date: 2011-09-26 11:20:31 +0200 (Mon, 26 Sep 2011)
New Revision: 1735

Removed:
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling/SLDTransformer.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling/visitor/
Modified:
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/FilterUtil.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/GTUtil.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/grid/GridUtil.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapPane.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/MapContextControlPane.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/SelectableXMapPane.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/XMapPane.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerAdapter.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerListAdapter.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/selection/FeatureMapLayerSelectionSynchronizer.java
   trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/styling/StylingUtil.java
   trunk/schmitzm-parent/pom.xml
Log:
crazy commit into the blue - geotools 8

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/FilterUtil.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/FilterUtil.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/FilterUtil.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -91,9 +91,7 @@
 			 */
 			// return ors.get(0);
 
-			ors.add(ors.get(0));
-			FILTER_FAC2.or(ors);
-			return or;
+			return FILTER_FAC2.or(ors.get(0),NEVER_TRUE_FILTER);
 		}
 
 		return or;

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/GTUtil.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/GTUtil.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/GTUtil.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -386,36 +386,17 @@
 		defaultRendererHints.put(
 				StreamingRenderer.SCALE_COMPUTATION_METHOD_KEY,
 				StreamingRenderer.SCALE_OGC);
-		// defaultRendererHints.put(
-		// StreamingRenderer.SCALE_COMPUTATION_METHOD_KEY,
-		// StreamingRenderer.SCALE_ACCURATE);
 
 		defaultRendererHints.put(StreamingRenderer.OPTIMIZE_FTS_RENDERING_KEY,
 				Boolean.TRUE);
-		//
-		// if (renderer instanceof ShapefileRenderer) {
-		// defaultRendererHints.put(StreamingRenderer.MEMORY_PRE_LOADING_KEY,
-		// Boolean.TRUE);
-		// } else {
-		// defaultRendererHints.put(StreamingRenderer.MEMORY_PRE_LOADING_KEY,
-		// Boolean.FALSE);
-		// }
 
-		defaultRendererHints.put(StreamingRenderer.OPTIMIZED_DATA_LOADING_KEY,
-				Boolean.TRUE);
+		// Disabled by Stefan Tzeggai 12.9.11: GT8 Migration
+		// defaultRendererHints.put(StreamingRenderer.OPTIMIZED_DATA_LOADING_KEY,
+//				Boolean.TRUE);
 
 		defaultRendererHints.put(StreamingRenderer.LABEL_CACHE_KEY,
 				new LabelCacheImpl());
 
-		// public static final String DPI_KEY = "dpi";
-		// public static final String DECLARED_SCALE_DENOM_KEY =
-		// "declaredScaleDenominator";
-		// public static final String OPTIMIZED_DATA_LOADING_KEY =
-		// "optimizedDataLoadingEnabled";
-		// public static final String SCALE_COMPUTATION_METHOD_KEY =
-		// "scaleComputationMethod";
-
-		// }
 		return (HashMap<Object, Object>) defaultRendererHints.clone();
 	}
 

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/grid/GridUtil.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/grid/GridUtil.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/grid/GridUtil.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -603,7 +603,7 @@
 		// Subset nur bzgl. des Bereichs in dem auch das Raster liegt
 		bboxEnv = GTUtil.intersectEnvelope(sourceEnv, bboxEnv,
 				source.getCoordinateReferenceSystem());
-		if (bboxEnv.getLength(0) == 0 && bboxEnv.getLength(1) == 0)
+		if (bboxEnv.getSpan(0) == 0 && bboxEnv.getSpan(1) == 0)
 			return null;
 
 		// Daten des Source-Raster

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapFrame.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -177,6 +177,11 @@
 			public void layerRemoved(MapLayerListEvent e) {
 				updateRasterComboBox();
 			}
+
+			@Override
+			public void layerPreDispose(MapLayerListEvent event) {
+				// New by Stefan Tzeggai 12.9.11: GT8 Migration
+			}
 		});
 		this.layeredMapPane.horSplitPane.getContainer(0).add(rasterComboBox,
 				BorderLayout.SOUTH);

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapPane.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapPane.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/LayeredMapPane.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -150,6 +150,11 @@
 			public void layerRemoved(MapLayerListEvent e) {
 				layerObjects.remove(e.getLayer());
 			}
+			
+			@Override
+			public void layerPreDispose(MapLayerListEvent event) {
+				// New by Stefan Tzeggai 12.9.11: GT8 Migration
+			}
 		});
 
 		// linker Bereich: Layer-Liste mit Auswahl der Layer

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/MapContextControlPane.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/MapContextControlPane.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/MapContextControlPane.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -271,22 +271,29 @@
 								e.getLayer());
 					}
 
+					@Override
 					public void layerChanged(MapLayerListEvent e) {
 						// Bezeichnung der Checkbox aendern
 						((JCheckBox) getComponent(convertIndex(e.getFromIndex())))
 								.setText(e.getLayer().getTitle());
 					}
 
+					@Override
 					public void layerMoved(MapLayerListEvent e) {
 						int from = convertIndex(e.getFromIndex());
 						int to = convertIndex(e.getToIndex());
 						moveLayerControl(from, to);
 					}
 
+					@Override
 					public void layerRemoved(MapLayerListEvent e) {
 						int from = convertIndex(e.getFromIndex());
 						removeLayerControl(from);
 					}
+					@Override
+					public void layerPreDispose(MapLayerListEvent event) {
+						// New by Stefan Tzeggai 12.9.11: GT8 Migration
+					}
 				});
 	}
 

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/SelectableXMapPane.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/SelectableXMapPane.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/SelectableXMapPane.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -35,7 +35,6 @@
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.io.IOException;
-import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Hashtable;
 
@@ -53,6 +52,9 @@
 import org.geotools.geometry.jts.JTS;
 import org.geotools.geometry.jts.ReferencedEnvelope;
 import org.geotools.map.DefaultMapContext;
+import org.geotools.map.GridCoverageLayer;
+import org.geotools.map.GridReaderLayer;
+import org.geotools.map.Layer;
 import org.geotools.map.MapContext;
 import org.geotools.map.MapLayer;
 import org.geotools.parameter.Parameter;
@@ -62,7 +64,6 @@
 import org.opengis.coverage.CannotEvaluateException;
 import org.opengis.feature.simple.SimpleFeature;
 import org.opengis.feature.simple.SimpleFeatureType;
-import org.opengis.feature.type.PropertyDescriptor;
 import org.opengis.filter.Filter;
 import org.opengis.parameter.GeneralParameterValue;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
@@ -155,34 +156,44 @@
 	public static final int SELECT_TOP = 4;
 
 	/**
-	 * Prueft, ob es sich bei einem Layer um ein Raster-Layer handelt. VOn SK an
-	 * eine GT Methode abgegeben.
+	 * Prueft, ob es sich bei einem Layer um ein Raster-Layer handelt.
 	 * 
 	 * @param layer
 	 *            zu ueberpruefendes Layer
 	 */
-	public static boolean isGridCoverageLayer(MapLayer layer) {
-		String GRID_PACKAGE = "org.geotools.coverage.grid";
-		String GRID_PACKAGE2 = "org.opengis.coverage.grid";
+	public static boolean isGridCoverageLayer(Layer layer) {
 
-		// TODO when my patch is accepted, replace the whole method with
-		// MapLayerUtil.isGridLayer again .. where is my pathc? what patch?!
+		if (layer instanceof GridCoverageLayer
+				|| layer instanceof GridReaderLayer)
+			return true;
 
-		Collection<PropertyDescriptor> descriptors = layer.getFeatureSource()
-				.getSchema().getDescriptors();
-		for (PropertyDescriptor desc : descriptors) {
-			String className = desc.getType().getBinding().getName();
-
-			if (className.contains(GRID_PACKAGE)
-					|| className.contains(GRID_PACKAGE2)) {
-				return true;
-			}
-		}
-
+		// String GRID_PACKAGE = "org.geotools.coverage.grid";
+		// String GRID_PACKAGE2 = "org.opengis.coverage.grid";
+		// Collection<PropertyDescriptor> descriptors = layer.getFeatureSource()
+		// .getSchema().getDescriptors();
+		// for (PropertyDescriptor desc : descriptors) {
+		// String className = desc.getType().getBinding().getName();
+		//
+		// if (className.contains(GRID_PACKAGE)
+		// || className.contains(GRID_PACKAGE2)) {
+		// return true;
+		// }
+		// }
+		//
 		return false;
 	}
 
 	/**
+	 * Prueft, ob es sich bei einem Layer um ein Raster-Layer handelt.
+	 * 
+	 * @param layer
+	 *            zu ueberpruefendes Layer
+	 */
+	public static boolean isGridCoverageLayer(MapLayer layer) {
+		return isGridCoverageLayer(layer.toLayer());
+	}
+
+	/**
 	 * Erzeugt ein neues MapPane.
 	 * 
 	 * @param layout

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/XMapPane.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/XMapPane.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/gui/XMapPane.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -371,6 +371,11 @@
 				event.getLayer().removeMapLayerListener(bgMapLayerListener);
 			requestStartRendering();
 		}
+		
+		@Override
+		public void layerPreDispose(MapLayerListEvent event) {
+			// New by Stefan Tzeggai 12.9.11: GT8 Migration
+		}
 	};
 
 	/**
@@ -494,6 +499,11 @@
 			getLocalRenderer().setContext(getMapContext());
 			requestStartRendering();
 		}
+
+		@Override
+		public void layerPreDispose(MapLayerListEvent arg0) {
+			// New by Stefan Tzeggai 12.9.11: GT8 Migration
+		}
 	};
 
 	/**

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerAdapter.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerAdapter.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerAdapter.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -75,4 +75,10 @@
 	@Override
 	public void layerSelected(MapLayerEvent event) {
 	}
+
+	@Override
+	public void layerPreDispose(MapLayerEvent event) {
+		// New by Stefan Tzeggai 12.9.11: GT8 Migration
+	}
+	
 }

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerListAdapter.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerListAdapter.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/map/event/MapLayerListAdapter.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -67,5 +67,9 @@
    */
   public void layerRemoved(MapLayerListEvent e) {
   }
+  
+  public void layerPreDispose(MapLayerListEvent arg0) {
+	// New by Stefan Tzeggai 12.9.11: GT8 Migration
+  }
 
 }

Deleted: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling/SLDTransformer.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling/SLDTransformer.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/org/geotools/styling/SLDTransformer.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -1,1374 +0,0 @@
-/*
- * 	  Diese Klasse ist übergangsweise drin. 
- * 	  Kopie aus 8.0 trunk um RGB RasterZeugs zu implementieren
- *    2.9.2011
- *    
- *    GeoTools - The Open Source Java GIS Toolkit
- *    http://geotools.org
- * 
- *    (C) 2003-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 de.schmitzm.geotools.org.geotools.styling;
-
-import java.awt.Color;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.logging.Logger;
-
-import javax.measure.quantity.Length;
-import javax.measure.unit.Unit;
-
-import org.geotools.data.DataStore;
-import org.geotools.data.FeatureSource;
-import org.geotools.factory.CommonFactoryFinder;
-import org.geotools.feature.FeatureCollection;
-import org.geotools.filter.FilterTransformer;
-import org.geotools.gml.producer.FeatureTransformer;
-import org.geotools.styling.AnchorPoint;
-import org.geotools.styling.ChannelSelection;
-import org.geotools.styling.ColorMap;
-import org.geotools.styling.ColorMapEntry;
-import org.geotools.styling.ContrastEnhancement;
-import org.geotools.styling.Displacement;
-import org.geotools.styling.Extent;
-import org.geotools.styling.ExternalGraphic;
-import org.geotools.styling.FeatureTypeConstraint;
-import org.geotools.styling.FeatureTypeStyle;
-import org.geotools.styling.Fill;
-import org.geotools.styling.Font;
-import org.geotools.styling.Graphic;
-import org.geotools.styling.Halo;
-import org.geotools.styling.ImageOutline;
-import org.geotools.styling.LinePlacement;
-import org.geotools.styling.LineSymbolizer;
-import org.geotools.styling.Mark;
-import org.geotools.styling.NamedLayer;
-import org.geotools.styling.NamedStyle;
-import org.geotools.styling.OtherText;
-import org.geotools.styling.OverlapBehavior;
-import org.geotools.styling.PointPlacement;
-import org.geotools.styling.PointSymbolizer;
-import org.geotools.styling.PolygonSymbolizer;
-import org.geotools.styling.RasterSymbolizer;
-import org.geotools.styling.RemoteOWS;
-import org.geotools.styling.Rule;
-import org.geotools.styling.SLDParser;
-import org.geotools.styling.SelectedChannelType;
-import org.geotools.styling.ShadedRelief;
-import org.geotools.styling.Stroke;
-import org.geotools.styling.Style;
-import org.geotools.styling.StyleVisitor;
-import org.geotools.styling.StyledLayer;
-import org.geotools.styling.StyledLayerDescriptor;
-import org.geotools.styling.Symbol;
-import org.geotools.styling.Symbolizer;
-import org.geotools.styling.TextSymbolizer;
-import org.geotools.styling.TextSymbolizer2;
-import org.geotools.styling.UomOgcMapping;
-import org.geotools.styling.UserLayer;
-import org.geotools.xml.transform.TransformerBase;
-import org.geotools.xml.transform.Translator;
-import org.opengis.feature.simple.SimpleFeature;
-import org.opengis.feature.simple.SimpleFeatureType;
-import org.opengis.filter.Filter;
-import org.opengis.filter.FilterFactory;
-import org.opengis.filter.FilterFactory2;
-import org.opengis.filter.expression.Expression;
-import org.opengis.filter.expression.Literal;
-import org.opengis.filter.expression.PropertyName;
-import org.opengis.referencing.ReferenceIdentifier;
-import org.opengis.referencing.crs.CoordinateReferenceSystem;
-import org.opengis.style.ContrastMethod;
-import org.opengis.style.SemanticType;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-/**
- * Produces SLD to an output stream.
- * 
- * @author Ian Schneider
- * 
- * @source $URL:
- *         http://svn.osgeo.org/geotools/trunk/modules/library/main/src/main
- *         /java/org/geotools/styling/SLDTransformer.java $
- */
-public class SLDTransformer extends TransformerBase {
-	/** The logger for this package. */
-	private static final Logger LOGGER = org.geotools.util.logging.Logging
-			.getLogger("org.geotools.styling");
-
-	static final String XLINK_NAMESPACE = "http://www.w3.org/1999/xlink";
-
-	static final FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
-
-	/**
-	 * Additional namespace mappings to emit in the start element of the
-	 * generated. Each entry has a URI key and an associated prefix string
-	 * value.
-	 */
-	final private Map uri2prefix;
-
-	/**
-	 * Construct a new instance of <code>SLDTransformer</code> with the default
-	 * namespace mappings usually found in a simple Styled Layer Descriptor
-	 * element.
-	 */
-	public SLDTransformer() {
-		this(null);
-	}
-
-	/**
-	 * Construct a new instance of <code>SLDTransformer</code> with the
-	 * additional namespace mappings contained in <code>nsBindings</code>.
-	 * <p>
-	 * The designated collection contains mappings of {@link URI} to associated
-	 * prefix (string) to emit in the generated XML element.
-	 */
-	public SLDTransformer(Map nsBindings) {
-		super();
-		if (nsBindings == null || nsBindings.isEmpty()) {
-			uri2prefix = new HashMap();
-		} else {
-			uri2prefix = new HashMap(nsBindings.size());
-			int count = 0;
-			for (Iterator it = nsBindings.entrySet().iterator(); it.hasNext();) {
-				Map.Entry e = (Entry) it.next();
-				URI uri = (URI) e.getKey();
-				String prefix = (String) e.getValue();
-				if (uri != null && prefix != null) {
-					uri2prefix.put(uri, prefix.trim());
-					count++;
-				}
-			}
-			LOGGER.info("Added [" + count
-					+ "] namespace entries resulting in [" + uri2prefix.size()
-					+ "] distinct entries");
-		}
-	}
-
-	public Translator createTranslator(ContentHandler handler) {
-		Translator result = new SLDTranslator(handler);
-		// add pre-configured namespace mappings
-		if (!uri2prefix.isEmpty()) {
-			for (Iterator it = uri2prefix.entrySet().iterator(); it.hasNext();) {
-				Map.Entry e = (Entry) it.next();
-				URI uri = (URI) e.getKey();
-				if (uri != null) {
-					String prefix = (String) e.getValue();
-					// FIXME handle default namespace and possible clash with
-					// one already known to the namespace-support delegate; i.e.
-					// the entry with an empty prefix
-					String uriStr = String.valueOf(uri);
-					result.getNamespaceSupport().declarePrefix(prefix, uriStr);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Currently does nothing.
-	 * 
-	 * @param args
-	 *            DOCUMENT ME!
-	 * 
-	 * @throws Exception
-	 *             DOCUMENT ME!
-	 */
-	public static final void main(String[] args) throws Exception {
-		java.net.URL url = new java.io.File(args[0]).toURI().toURL();
-		SLDParser s = new SLDParser(CommonFactoryFinder.getStyleFactory(null),
-				url);
-		SLDTransformer transformer = new SLDTransformer();
-		transformer.setIndentation(4);
-		transformer.transform(s.readXML(),
-				new FileOutputStream(System.getProperty("java.io.tmpdir")
-						+ "/junk.eraseme"));
-	}
-
-	/**
-	 * Translates the Style data structure into a series of XML events that can
-	 * be encoded etc...
-	 * <p>
-	 * This Translator makes use of the following (currently hardcoded)
-	 * information:
-	 * <ul>
-	 * <li>prefix: sld
-	 * <li>namespace: http://www.opengis.net/sld
-	 * </ul>
-	 * 
-	 * @author Jody
-	 */
-	static class SLDTranslator extends TranslatorSupport implements
-			StyleVisitor {
-		/**
-		 * Handles any Filters used in our data structure.
-		 */
-		FilterTransformer.FilterTranslator filterTranslator;
-
-		/**
-		 * Translates into the default of prefix "sld" for
-		 * "http://www.opengis.net/sld".
-		 * 
-		 * @param handler
-		 */
-		public SLDTranslator(ContentHandler handler) {
-			this(handler, "sld", "http://www.opengis.net/sld");
-		}
-
-		/**
-		 * Translates
-		 * 
-		 * @param handler
-		 */
-		public SLDTranslator(ContentHandler handler, String prefix, String uri) {
-			super(handler, prefix, uri);
-			filterTranslator = new FilterTransformer.FilterTranslator(handler);
-			addNamespaceDeclarations(filterTranslator);
-		}
-
-		boolean isNull(Expression expr) {
-			if (expr == null)
-				return true;
-			if (expr == Expression.NIL)
-				return true;
-			if (expr instanceof Literal) {
-				Literal literal = (Literal) expr;
-				return literal.getValue() == null;
-			}
-			return false; // must be some other non null thing
-		}
-
-		boolean isDefault(Expression expr, Object defaultValue) {
-			if (defaultValue == null)
-				return isNull(expr);
-
-			if (expr == null)
-				return false;
-			if (expr == Expression.NIL)
-				return false;
-			if (expr instanceof Literal) {
-				Literal literal = (Literal) expr;
-				if (defaultValue.equals(literal.getValue())) {
-					return true;
-				}
-				if (defaultValue.toString().equals(
-						literal.getValue().toString())) {
-					return true;
-				}
-			}
-			return false;
-		}
-
-		/**
-		 * Utility method used to quickly package up the provided expression.
-		 * 
-		 * @param element
-		 * @param expr
-		 */
-		void element(String element, Expression expr) {
-			element(element, expr, null);
-		}
-
-		/**
-		 * Utility method used to quickly package up the provided expression.
-		 * 
-		 * @param element
-		 * @param expr
-		 */
-		void element(String element, Expression expr, Object defaultValue) {
-			element(element, expr, defaultValue, null);
-		}
-
-		void element(String element, Expression expr, Object defaultValue,
-				AttributesImpl atts) {
-			if (expr == null || expr == Expression.NIL)
-				return;
-
-			// skip encoding if we are using the default value
-			if (expr instanceof Literal) {
-				if (defaultValue != null) {
-					Object value = expr.evaluate(null, defaultValue.getClass());
-					if (value != null && !value.equals(defaultValue)) {
-						element(element, value.toString(), atts);
-					}
-				} else {
-					String value = expr.evaluate(null, String.class);
-					if (value != null) {
-						element(element, value, atts);
-					}
-				}
-				return;
-			}
-
-			start(element, atts);
-			filterTranslator.encode(expr);
-			end(element);
-		}
-
-		/**
-		 * To be used when the expression is a single literal whose value must
-		 * be written out as element.
-		 * <p>
-		 * For Example OverlapBehaviour is represented as an expression but v
-		 * 1.0.0 specifications do not define it as an expression.
-		 * (&ltAVERAGE/&gt)
-		 * </p>
-		 * 
-		 */
-		void elementLiteral(String element, Expression e, String defaultValue) {
-			if (e == null || e == Expression.NIL)
-				return;
-
-			final String value = e.evaluate(null, String.class);
-			if (defaultValue == null || !defaultValue.equals(value)) {
-				start(element);
-				start(value);
-				end(value);
-				end(element);
-			}
-		}
-
-		public void visit(PointPlacement pp) {
-			start("LabelPlacement");
-			start("PointPlacement");
-			pp.getAnchorPoint().accept(this);
-
-			visit(pp.getDisplacement());
-
-			encodeValue("Rotation", null, pp.getRotation(), Double.valueOf(0.0));
-			end("PointPlacement");
-			end("LabelPlacement");
-		}
-
-		public void visit(Stroke stroke) {
-			start("Stroke");
-
-			if (stroke.getGraphicFill() != null) {
-				start("GraphicFill");
-				stroke.getGraphicFill().accept(this);
-				end("GraphicFill");
-			}
-
-			if (stroke.getGraphicStroke() != null) {
-				start("GraphicStroke");
-				stroke.getGraphicStroke().accept(this);
-				end("GraphicStroke");
-			}
-
-			encodeCssParam("stroke", stroke.getColor(), Color.BLACK);
-			encodeCssParam("stroke-linecap", stroke.getLineCap(), "butt");
-			encodeCssParam("stroke-linejoin", stroke.getLineJoin(), "miter");
-			encodeCssParam("stroke-opacity", stroke.getOpacity(), 1.0);
-			encodeCssParam("stroke-width", stroke.getWidth(), 1.0);
-			encodeCssParam("stroke-dashoffset", stroke.getDashOffset(), 0.0);
-
-			float[] dash = stroke.getDashArray();
-
-			if (dash != null) {
-				StringBuffer sb = new StringBuffer();
-
-				for (int i = 0; i < dash.length; i++) {
-					sb.append(dash[i]);
-					if (i < dash.length - 1) {
-						sb.append(" ");
-					}
-				}
-
-				encodeCssParam("stroke-dasharray", ff.literal(sb.toString()));
-
-			}
-			end("Stroke");
-		}
-
-		public void visit(LinePlacement lp) {
-			start("LabelPlacement");
-			start("LinePlacement");
-			element("PerpendicularOffset", lp.getPerpendicularOffset());
-			end("LinePlacement");
-			end("LabelPlacement");
-		}
-
-		public void visit(AnchorPoint ap) {
-			start("AnchorPoint");
-			element("AnchorPointX", ap.getAnchorPointX());
-			element("AnchorPointY", ap.getAnchorPointY());
-			end("AnchorPoint");
-		}
-
-		public void visit(TextSymbolizer text) {
-			if (text == null) {
-				return;
-			}
-
-			// adds the uom attribute according to the OGC SE specification
-			AttributesImpl atts = new AttributesImpl();
-			Unit<Length> uom = text.getUnitOfMeasure();
-			if (uom != null)
-				atts.addAttribute("", "uom", "uom", "", UomOgcMapping.get(uom)
-						.getSEString());
-
-			start("TextSymbolizer", atts);
-
-			encodeGeometryExpression(text.getGeometry());
-
-			if (text.getLabel() != null) {
-				element("Label", text.getLabel());
-			}
-
-			if ((text.getFonts() != null) && (text.getFonts().length != 0)) {
-				start("Font");
-
-				Font[] fonts = text.getFonts();
-
-				for (int i = 0; i < fonts.length; i++) {
-					encodeCssParam("font-family", fonts[i].getFontFamily());
-				}
-
-				encodeCssParam("font-size", fonts[0].getFontSize());
-				encodeCssParam("font-style", fonts[0].getFontStyle());
-				encodeCssParam("font-weight", fonts[0].getFontWeight());
-				end("Font");
-			}
-
-			if (text.getPlacement() != null) {
-				text.getPlacement().accept(this);
-			}
-
-			if (text.getHalo() != null) {
-				text.getHalo().accept(this);
-			}
-
-			if (text.getFill() != null) {
-				text.getFill().accept(this);
-			}
-
-			if (text instanceof TextSymbolizer2) {
-				TextSymbolizer2 text2 = (TextSymbolizer2) text;
-				if (text2.getGraphic() != null)
-					visit(text2.getGraphic());
-				if (text2.getSnippet() != null)
-					element("Snippet", text2.getSnippet());
-				if (text2.getFeatureDescription() != null)
-					element("FeatureDescription", text2.getFeatureDescription());
-				OtherText otherText = text2.getOtherText();
-				if (otherText != null) {
-					AttributesImpl otherTextAtts = new AttributesImpl();
-					otherTextAtts.addAttribute("", "target", "target", "",
-							otherText.getTarget());
-					element("OtherText", otherText.getText(), null,
-							otherTextAtts);
-				}
-			}
-
-			if (text.getPriority() != null) {
-				element("Priority", text.getPriority());
-			}
-
-			if (text.getOptions() != null) {
-				encodeVendorOptions(text.getOptions());
-			}
-
-			end("TextSymbolizer");
-		}
-
-		public void visit(RasterSymbolizer raster) {
-			if (raster == null) {
-				return;
-			}
-
-			// adds the uom attribute according to the OGC SE specification
-			AttributesImpl atts = new AttributesImpl();
-			Unit<Length> uom = raster.getUnitOfMeasure();
-			if (uom != null)
-				atts.addAttribute("", "uom", "uom", "", UomOgcMapping.get(uom)
-						.getSEString());
-
-			start("RasterSymbolizer", atts);
-
-			encodeGeometryExpression(raster.getGeometry());
-
-			element("Opacity", raster.getOpacity(), 1.0);
-
-			if (raster.getChannelSelection() != null) {
-				final ChannelSelection cs = raster.getChannelSelection();
-				if (cs.getGrayChannel() != null) {
-					start("ChannelSelection");
-					SelectedChannelType gray = cs.getGrayChannel();
-
-					start("GrayChannel");
-					gray.accept(this);
-					end("GrayChannel");
-
-					end("ChannelSelection");
-				} else if (cs.getRGBChannels() != null
-						&& cs.getRGBChannels().length == 3
-						&& cs.getRGBChannels()[0] != null
-						&& cs.getRGBChannels()[1] != null
-						&& cs.getRGBChannels()[2] != null) {
-					start("ChannelSelection");
-					SelectedChannelType[] rgb = cs.getRGBChannels();
-
-					start("RedChannel");
-					rgb[0].accept(this);
-					end("RedChannel");
-
-					start("GreenChannel");
-					rgb[1].accept(this);
-					end("GreenChannel");
-
-					start("BlueChannel");
-					rgb[2].accept(this);
-					end("BlueChannel");
-
-					end("ChannelSelection");
-				} else {
-					// we have an invalid ChannelSelection ?
-				}
-			}
-
-			if (raster.getOverlap() != null) {
-				Expression overlaps = raster.getOverlap();
-				if (overlaps instanceof PropertyName) {
-					final String pn = ((PropertyName) overlaps)
-							.getPropertyName();
-					if ("RANDOM".equals(pn)) {
-						start("OverlapBehavior");
-						start(pn);
-						end(pn);
-						end("OverlapBehavior");
-					}
-				} else {
-					// this expression needs to be converted to a single string
-					// and then written
-					// 1.0.0 specs don't allow it to be written as an expression
-					elementLiteral("OverlapBehavior", overlaps, "RANDOM");
-				}
-			}
-
-			ColorMap colorMap = raster.getColorMap();
-			if (colorMap != null && colorMap.getColorMapEntries() != null
-					&& colorMap.getColorMapEntries().length > 0) {
-				colorMap.accept(this);
-			}
-
-			if (raster.getContrastEnhancement() != null) {
-				raster.getContrastEnhancement().accept(this);
-			}
-
-			if (raster.getShadedRelief() != null) {
-				raster.getShadedRelief().accept(this);
-			}
-
-			if (raster.getImageOutline() != null) {
-				start("ImageOutline");
-				raster.getImageOutline().accept(this);
-				end("ImageOutline");
-			}
-
-			end("RasterSymbolizer");
-		}
-
-		public void visit(ColorMap colorMap) {
-			// The type of the ColorMap is stored in an attribute "type" and may
-			// store
-			// string-values: "ramp", "intervals" or "values".
-			AttributesImpl atts = new AttributesImpl();
-			String typeString;
-			if (colorMap.getType() == ColorMap.TYPE_INTERVALS)
-				typeString = "intervals";
-			else if (colorMap.getType() == ColorMap.TYPE_VALUES)
-				typeString = "values";
-			else
-				typeString = "ramp"; // Also the default in the parser
-			if (!"ramp".equals(typeString)) {
-				atts.addAttribute("", "type", "type", "", typeString);
-			}
-
-			if (colorMap.getExtendedColors()) {
-				atts.addAttribute("", "extended", "extended", "", typeString);
-			}
-
-			start("ColorMap", atts);
-			ColorMapEntry[] mapEntries = colorMap.getColorMapEntries();
-			for (int i = 0; i < mapEntries.length; i++) {
-				mapEntries[i].accept(this);
-			}
-			end("ColorMap");
-		}
-
-		public void visit(ColorMapEntry colorEntry) {
-			if (colorEntry != null) {
-				AttributesImpl atts = new AttributesImpl();
-				atts.addAttribute("", "color", "color", "", colorEntry
-						.getColor().evaluate(null, String.class));
-				if (colorEntry.getOpacity() != null) {
-					atts.addAttribute("", "opacity", "opacity", "", colorEntry
-							.getOpacity().toString());
-				}
-				if (colorEntry.getQuantity() != null) {
-					atts.addAttribute("", "quantity", "quantity", "",
-							colorEntry.getQuantity().toString());
-				}
-				if (colorEntry.getLabel() != null) {
-					atts.addAttribute("", "label", "label", "",
-							colorEntry.getLabel());
-				}
-				element("ColorMapEntry", (String) null, atts);
-			}
-		}
-
-		public void visit(Symbolizer sym) {
-			try {
-				contentHandler.startElement("", "!--", "!--", NULL_ATTS);
-				chars("Unidentified Symbolizer " + sym.getClass());
-				contentHandler.endElement("", "--", "--");
-			} catch (SAXException se) {
-				throw new RuntimeException(se);
-			}
-		}
-
-		public void visit(PolygonSymbolizer poly) {
-
-			// adds the uom attribute according to the OGC SE specification
-			AttributesImpl atts = new AttributesImpl();
-			Unit<Length> uom = poly.getUnitOfMeasure();
-			if (uom != null)
-				atts.addAttribute("", "uom", "uom", "", UomOgcMapping.get(uom)
-						.getSEString());
-
-			start("PolygonSymbolizer", atts);
-			encodeGeometryExpression(poly.getGeometry());
-
-			if (poly.getFill() != null) {
-				poly.getFill().accept(this);
-			}
-
-			if (poly.getStroke() != null) {
-				poly.getStroke().accept(this);
-			}
-
-			end("PolygonSymbolizer");
-		}
-
-		public void visit(ExternalGraphic exgr) {
-			start("ExternalGraphic");
-
-			AttributesImpl atts = new AttributesImpl();
-			atts.addAttribute(XMLNS_NAMESPACE, "xlink", "xmlns:xlink", "",
-					XLINK_NAMESPACE);
-			atts.addAttribute(XLINK_NAMESPACE, "type", "xlink:type", "",
-					"simple");
-
-			// TODO A HACK TO BE REMOVED IN 2.7 - as this whole class will be
-			// removing in 2.7 ;-)
-			String url = null;
-			if (exgr.getOnlineResource() != null)
-				url = exgr.getOnlineResource().getLinkage().toString();
-			else
-				try {
-					url = exgr.getLocation().toString();
-				} catch (Exception e) {
-				}
-
-			if (url != null)
-				atts.addAttribute(XLINK_NAMESPACE, "xlink", "xlink:href", "",
-						url);
-			element("OnlineResource", (String) null, atts);
-
-			element("Format", exgr.getFormat());
-
-			end("ExternalGraphic");
-		}
-
-		public void visit(LineSymbolizer line) {
-
-			// adds the uom attribute according to the OGC SE specification
-			AttributesImpl atts = new AttributesImpl();
-			Unit<Length> uom = line.getUnitOfMeasure();
-			if (uom != null)
-				atts.addAttribute("", "uom", "uom", "", UomOgcMapping.get(uom)
-						.getSEString());
-
-			start("LineSymbolizer", atts);
-			encodeGeometryExpression(line.getGeometry());
-
-			if (line.getStroke() != null) {
-				line.getStroke().accept(this);
-			}
-			end("LineSymbolizer");
-		}
-
-		public void visit(Fill fill) {
-			start("Fill");
-
-			if (fill.getGraphicFill() != null) {
-				start("GraphicFill");
-				fill.getGraphicFill().accept(this);
-				end("GraphicFill");
-			}
-
-			encodeCssParam("fill", fill.getColor(), "#808080");
-			encodeCssParam("fill-opacity", fill.getOpacity(), 1.0);
-			end("Fill");
-		}
-
-		public void visit(Rule rule) {
-			start("Rule");
-			if (rule.getName() != null)
-				element("Name", rule.getName());
-			if (rule.getTitle() != null)
-				element("Title", rule.getTitle());
-			if (rule.getAbstract() != null)
-				element("Abstract", rule.getAbstract());
-
-			Graphic[] gr = rule.getLegendGraphic();
-			for (int i = 0; i < gr.length; i++) {
-				start("LegendGraphic");
-				gr[i].accept(this);
-				end("LegendGraphic");
-			}
-
-			Filter filter = rule.getFilter();
-			if (filter == null || filter == Filter.INCLUDE) {
-				// no filter
-			} else {
-				visit(filter);
-			}
-
-			if (rule.isElseFilter()) {
-				start("ElseFilter");
-				end("ElseFilter");
-			}
-
-			if (rule.getMinScaleDenominator() != 0.0) {
-				element("MinScaleDenominator", rule.getMinScaleDenominator()
-						+ "");
-			}
-
-			if (rule.getMaxScaleDenominator() != Double.POSITIVE_INFINITY) {
-				element("MaxScaleDenominator", rule.getMaxScaleDenominator()
-						+ "");
-			}
-
-			Symbolizer[] sym = rule.getSymbolizers();
-			for (int i = 0; i < sym.length; i++) {
-				sym[i].accept(this);
-			}
-
-			end("Rule");
-		}
-
-		public void visit(Mark mark) {
-			start("Mark");
-			if (mark.getWellKnownName() != null
-					&& !"square".equals(mark.getWellKnownName().evaluate(null))) {
-				element("WellKnownName", mark.getWellKnownName().toString());
-			}
-
-			if (mark.getFill() != null) {
-				mark.getFill().accept(this);
-			}
-
-			if (mark.getStroke() != null) {
-				mark.getStroke().accept(this);
-			}
-
-			end("Mark");
-		}
-
-		public void visit(PointSymbolizer ps) {
-
-			// adds the uom attribute according to the OGC SE specification
-			AttributesImpl atts = new AttributesImpl();
-			Unit<Length> uom = ps.getUnitOfMeasure();
-			if (uom != null)
-				atts.addAttribute("", "uom", "uom", "", UomOgcMapping.get(uom)
-						.getSEString());
-
-			start("PointSymbolizer", atts);
-
-			encodeGeometryExpression(ps.getGeometry());
-
-			ps.getGraphic().accept(this);
-
-			end("PointSymbolizer");
-		}
-
-		public void visit(Halo halo) {
-			start("Halo");
-			if (halo.getRadius() != null) {
-				encodeValue("Radius", null, halo.getRadius(), null);
-			}
-			if (halo.getFill() != null) {
-				halo.getFill().accept(this);
-			}
-			end("Halo");
-		}
-
-		public void visit(Graphic gr) {
-			start("Graphic");
-
-			// encodeGeometryProperty(gr.getGeometryPropertyName());
-
-			Symbol[] symbols = gr.getSymbols();
-
-			for (int i = 0; i < symbols.length; i++) {
-				symbols[i].accept(this);
-			}
-
-			element("Opacity", gr.getOpacity(), 1.0);
-			element("Size", gr.getSize());
-			element("Rotation", gr.getRotation(), 0.0);
-			visit(gr.getDisplacement());
-
-			end("Graphic");
-		}
-
-		public void visit(StyledLayerDescriptor sld) {
-			AttributesImpl atts = new AttributesImpl();
-			atts.addAttribute("", "version", "version", "", "1.0.0");
-			start("StyledLayerDescriptor", atts);
-
-			if ((sld.getName() != null) && (sld.getName().length() > 0)) {
-				element("Name", sld.getName()); // optional
-			}
-			if ((sld.getTitle() != null) && (sld.getTitle().length() > 0)) {
-				element("Title", sld.getTitle()); // optional
-			}
-			if ((sld.getAbstract() != null) && (sld.getAbstract().length() > 0)) {
-				element("Abstract", sld.getAbstract()); // optional
-			}
-
-			StyledLayer[] layers = sld.getStyledLayers();
-
-			for (int i = 0; i < layers.length; i++) {
-				if (layers[i] instanceof NamedLayer) {
-					visit((NamedLayer) layers[i]);
-				} else if (layers[i] instanceof UserLayer) {
-					visit((UserLayer) layers[i]);
-				} else {
-					throw new IllegalArgumentException("StyledLayer '"
-							+ layers[i].getClass().toString() + "' not found");
-				}
-			}
-
-			end("StyledLayerDescriptor");
-		}
-
-		public void visit(NamedLayer layer) {
-			start("NamedLayer");
-			element("Name", layer.getName());
-
-			FeatureTypeConstraint[] lfc = layer.getLayerFeatureConstraints();
-			if ((lfc != null) && lfc.length > 0) {
-				start("LayerFeatureConstraints"); // optional
-				for (int i = 0; i < lfc.length; i++) {
-					visit(lfc[i]);
-				}
-				end("LayerFeatureConstraints");
-			}
-
-			Style[] styles = layer.getStyles();
-
-			for (int i = 0; i < styles.length; i++) {
-				visit(styles[i]);
-			}
-
-			end("NamedLayer");
-		}
-
-		public void visit(UserLayer layer) {
-			start("UserLayer");
-
-			if ((layer.getName() != null) && (layer.getName().length() > 0)) {
-				element("Name", layer.getName()); // optional
-			}
-
-			DataStore inlineFDS = layer.getInlineFeatureDatastore();
-			if (inlineFDS != null) {
-				visitInlineFeatureType(inlineFDS, layer.getInlineFeatureType());
-			} else if (layer.getRemoteOWS() != null) {
-				visit(layer.getRemoteOWS());
-			}
-
-			start("LayerFeatureConstraints"); // required
-			FeatureTypeConstraint[] lfc = layer.getLayerFeatureConstraints();
-			if ((lfc != null) && lfc.length > 0) {
-				for (int i = 0; i < lfc.length; i++) {
-					visit(lfc[i]);
-				}
-			} else { // create an empty FeatureTypeConstraint, since it is
-						// required
-				start("FeatureTypeConstraint");
-				end("FeatureTypeConstraint");
-			}
-			end("LayerFeatureConstraints");
-
-			Style[] styles = layer.getUserStyles();
-
-			for (int i = 0; i < styles.length; i++) {
-				visit(styles[i]);
-			}
-
-			end("UserLayer");
-		}
-
-		private void visitInlineFeatureType(DataStore dataStore,
-				SimpleFeatureType featureType) {
-			start("InlineFeature");
-			try {
-				final String ftName = featureType.getTypeName();
-				final FeatureSource<SimpleFeatureType, SimpleFeature> fs = dataStore
-						.getFeatureSource(ftName);
-				final FeatureCollection<SimpleFeatureType, SimpleFeature> fc = fs
-						.getFeatures();
-				final FeatureTransformer ftrax = new FeatureTransformer();
-				ftrax.setCollectionNamespace(null);
-				ftrax.setCollectionPrefix(null);
-				ftrax.setGmlPrefixing(true);
-				ftrax.setIndentation(2);
-				final CoordinateReferenceSystem crs = featureType
-						.getGeometryDescriptor().getCoordinateReferenceSystem();
-				String srsName = null;
-				if (crs == null) {
-					LOGGER.warning("Null CRS in feature type named [" + ftName
-							+ "]. Ignore CRS");
-				} else {
-					srsName = null; // single implementation of toSRS
-					if (srsName == null) {
-						// fallback on origional code
-						// assume the first named identifier of this CRS is its
-						// fully
-						// qualified code; e.g. authoriy and SRID
-						Set<ReferenceIdentifier> ids = crs.getIdentifiers();
-						if (ids == null || ids.isEmpty()) {
-							LOGGER.warning("Null or empty set of named identifiers "
-									+ "in CRS ["
-									+ crs
-									+ "] of feature type named ["
-									+ ftName
-									+ "]. Ignore CRS");
-						} else {
-							for (ReferenceIdentifier id : ids) {
-								if (id != null) {
-									srsName = String.valueOf(id);
-									break;
-								}
-							}
-						}
-					}
-					if (srsName != null) {
-						// Some Server implementations using older versions of
-						// this
-						// library barf on a fully qualified CRS name with
-						// messages
-						// like : "couldnt decode SRS - EPSG:EPSG:4326.
-						// currently
-						// only supporting EPSG #"; looks like they only needs
-						// the
-						// SRID. adjust
-						final int ndx = srsName.indexOf(':');
-						if (ndx > 0) {
-							LOGGER.info("Reducing CRS name [" + srsName
-									+ "] to its SRID");
-							srsName = srsName.substring(ndx + 1).trim();
-						}
-					}
-				}
-				if (srsName != null) {
-					ftrax.setSrsName(srsName);
-				}
-
-				final String defaultNS = this.getDefaultNamespace();
-				ftrax.getFeatureTypeNamespaces().declareDefaultNamespace("",
-						defaultNS);
-				final String ns = featureType.getName().getNamespaceURI();
-				if (ns == null) {
-					LOGGER.info("Null namespace URI in feature type named ["
-							+ ftName + "]. Ignore namespace in features");
-				} else {
-					// find the URI's prefix mapping in this namespace support
-					// delegate and use it; otherwise ignore it
-					final String prefix = this.nsSupport.getPrefix(ns);
-					if (prefix != null)
-						ftrax.getFeatureTypeNamespaces().declareNamespace(
-								featureType, prefix, ns);
-				}
-				final Translator t = ftrax
-						.createTranslator(this.contentHandler);
-				t.encode(fc);
-			} catch (IOException ignored) {
-			}
-			end("InlineFeature");
-		}
-
-		public void visit(RemoteOWS remoteOWS) {
-			start("RemoteOWS");
-			element("Service", remoteOWS.getService());
-			element("OnlineResource", remoteOWS.getOnlineResource());
-			end("RemoteOWS");
-		}
-
-		public void visit(FeatureTypeConstraint ftc) {
-			start("FeatureTypeConstraint");
-
-			if (ftc != null) {
-				element("FeatureTypeName", ftc.getFeatureTypeName());
-				visit(ftc.getFilter());
-
-				Extent[] extent = ftc.getExtents();
-
-				for (int i = 0; i < extent.length; i++) {
-					visit(extent[i]);
-				}
-			}
-
-			end("FeatureTypeConstraint");
-		}
-
-		public void visit(Extent extent) {
-			start("Extent");
-			element("Name", extent.getName());
-			element("Value", extent.getValue());
-			end("Extent");
-		}
-
-		public void visit(Filter filter) {
-			try {
-				contentHandler.startElement("", "", "ogc:Filter", NULL_ATTS);
-				filterTranslator.encode(filter);
-				contentHandler.endElement("", "", "ogc:Filter");
-			} catch (SAXException se) {
-				throw new RuntimeException(se);
-			}
-		}
-
-		public void visit(Style style) {
-			if (style instanceof NamedStyle) {
-				start("NamedStyle");
-				element("Name", style.getName());
-				end("NamedStyle");
-			} else {
-				start("UserStyle");
-				element("Name", style.getName());
-				element("Title", style.getTitle());
-				if (style.isDefault()) {
-					element("IsDefault", "1");
-				}
-				elementSafe("Abstract", style.getAbstract());
-				FeatureTypeStyle[] fts = style.getFeatureTypeStyles();
-				for (int i = 0; i < fts.length; i++) {
-					visit(fts[i]);
-				}
-				end("UserStyle");
-			}
-		}
-
-		public void visit(FeatureTypeStyle fts) {
-			start("FeatureTypeStyle");
-
-			if ((fts.getName() != null) && (fts.getName().length() > 0)) {
-				element("Name", fts.getName());
-			}
-
-			if ((fts.getTitle() != null) && (fts.getTitle().length() > 0)) {
-				element("Title", fts.getTitle());
-			}
-
-			if ((fts.getAbstract() != null) && (fts.getAbstract().length() > 0)) {
-				element("Abstract", fts.getAbstract());
-			}
-
-			if ((fts.featureTypeNames() != null)
-					&& (fts.featureTypeNames().size() > 0)) {
-				element("FeatureTypeName", fts.featureTypeNames().iterator()
-						.next().toString());
-			}
-
-			String[] sti = fts.getSemanticTypeIdentifiers();
-
-			if (sti.length == 1 && sti[0].equals(SemanticType.ANY.toString())) {
-				// skip, it's the default
-			} else {
-				for (int i = 0; i < sti.length; i++) {
-					element("SemanticTypeIdentifier", sti[i]);
-				}
-			}
-
-			Rule[] rules = fts.getRules();
-
-			for (int i = 0; i < rules.length; i++) {
-				rules[i].accept(this);
-			}
-
-			end("FeatureTypeStyle");
-		}
-
-		public void visit(Displacement dis) {
-			if (dis == null) {
-				return;
-			}
-
-			// We don't want to get huge SLDs with default values. So if
-			// displacement = 0 and 0 we
-			// drop it.
-			Expression dx = dis.getDisplacementX();
-			Expression dy = dis.getDisplacementY();
-			if (isNull(dx) && isNull(dy)) {
-				return;
-			}
-			if (isDefault(dx, 0) && isDefault(dy, 0)) {
-				return;
-			}
-
-			start("Displacement");
-			element("DisplacementX", dis.getDisplacementX());
-			element("DisplacementY", dis.getDisplacementY());
-			end("Displacement");
-		}
-
-		void encodeGeometryProperty(String name) {
-			if ((name == null) || (name.trim().length() == 0)) {
-				return;
-			}
-			// create a property name out the name and encode it
-			FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
-			Expression expression = ff.property(name);
-
-			start("Geometry");
-			filterTranslator.encode(expression);
-			end("Geometry");
-
-		}
-
-		void encodeGeometryExpression(Expression geom) {
-			if ((geom == null)) {
-				return;
-			}
-
-			start("Geometry");
-			filterTranslator.encode(geom);
-			end("Geometry");
-
-		}
-
-		void encodeCssParam(String name, Expression expression) {
-			encodeCssParam(name, expression, null);
-		}
-
-		void encodeCssParam(String name, Expression expression,
-				Object defaultValue) {
-			if (expression == null) {
-				return; // protect ourselves from things like a null Stroke
-						// Color
-			}
-
-			AttributesImpl atts = new AttributesImpl();
-			atts.addAttribute("", "name", "name", "", name);
-			encodeValue("CssParameter", atts, expression, defaultValue);
-		}
-
-		void encodeValue(String elementName, Attributes atts,
-				Expression expression, Object defaultValue) {
-			if (expression == null) {
-				return; // protect ourselves from things like a null Stroke
-						// Color
-			}
-
-			// skip encoding if we are using the default value
-			if (expression instanceof Literal && defaultValue != null) {
-				Object value = expression.evaluate(null,
-						defaultValue.getClass());
-				if (value != null && value.equals(defaultValue)) {
-					return;
-				}
-			}
-
-			if (atts == null) {
-				atts = NULL_ATTS;
-			}
-			if (expression instanceof Literal) {
-				// use more compact encoding
-				element(elementName, expression.evaluate(null, String.class),
-						atts);
-			} else {
-				start(elementName, atts);
-				filterTranslator.encode(expression);
-				end(elementName);
-			}
-		}
-
-		void encodeVendorOptions(Map options) {
-			if (options != null) {
-				Iterator it = options.keySet().iterator();
-				while (it.hasNext()) {
-					String key = (String) it.next();
-					String value = (String) options.get(key);
-					encodeVendorOption(key, value);
-				}
-			}
-		}
-
-		void encodeVendorOption(String key, String value) {
-			AttributesImpl atts = new AttributesImpl();
-			atts.addAttribute("", "name", "name", "", key);
-			start("VendorOption", atts);
-			chars(value);
-			end("VendorOption");
-		}
-
-		public void encode(Style[] styles) {
-			try {
-				contentHandler.startDocument();
-
-				start("StyledLayerDescriptor", NULL_ATTS);
-				start("NamedLayer", NULL_ATTS); // this is correct?
-
-				for (int i = 0, ii = styles.length; i < ii; i++) {
-					styles[i].accept(this);
-				}
-
-				end("NamedLayer");
-				end("StyledLayerDescriptor");
-
-				contentHandler.endDocument();
-			} catch (SAXException se) {
-				throw new RuntimeException(se);
-			}
-		}
-
-		public void encode(StyledLayerDescriptor sld) {
-			try {
-				contentHandler.startDocument();
-				sld.accept(this);
-				contentHandler.endDocument();
-			} catch (SAXException se) {
-				throw new RuntimeException(se);
-			}
-		}
-
-		public void encode(Object o) throws IllegalArgumentException {
-			if (o instanceof StyledLayerDescriptor) {
-				encode((StyledLayerDescriptor) o);
-			} else if (o instanceof Style[]) {
-				encode((Style[]) o);
-			} else {
-				Class c = o.getClass();
-
-				try {
-					java.lang.reflect.Method m = c.getMethod("accept",
-							new Class[] { StyleVisitor.class });
-					m.invoke(o, new Object[] { this });
-				} catch (NoSuchMethodException nsme) {
-					throw new IllegalArgumentException("Cannot encode " + o);
-				} catch (Exception e) {
-					throw new RuntimeException(
-							"Internal transformation exception", e);
-				}
-			}
-		}
-
-		public void visit(ContrastEnhancement ce) {
-			if (ce == null || ce.getMethod() == null)
-				return;
-
-			start("ContrastEnhancement");
-			// histogram
-			ContrastMethod method = ce.getMethod();
-			if (method != null && !ContrastMethod.NONE.equals(method)) {
-				String val = method.name();
-				val = val.substring(0, 1).toUpperCase()
-						+ val.substring(1).toLowerCase();
-				start(val);
-				end(val);
-			}
-
-			// gamma
-			Expression exp = (Literal) ce.getGammaValue();
-			if (exp != null) {
-				// gamma is a double so the actual value needs to be printed
-				// here
-				element("GammaValue", ((Literal) exp).getValue().toString());
-				// element("GammaValue", exp);
-			}
-			end("ContrastEnhancement");
-
-		}
-
-		public void visit(ImageOutline outline) {
-			if (outline == null)
-				return;
-			start("ImageOutline");
-			outline.getSymbolizer().accept(this);
-			end("ImageOutline");
-		}
-
-		public void visit(ChannelSelection cs) {
-			if (cs == null)
-				return;
-			start("ChannelSelection");
-			final SelectedChannelType[] sct = cs.getSelectedChannels();
-			for (int i = 0; i < sct.length && sct != null; i++)
-				visit(sct[i]);
-			end("ChannelSelection");
-
-		}
-
-		public void visit(OverlapBehavior ob) {
-			start("OverlapBehavior");
-			final String pn = (String) ob.getValue();
-			start(pn);
-			end(pn);
-			end("OverlapBehavior");
-
-		}
-
-		public void visit(SelectedChannelType sct) {
-			element("SourceChannelName", sct.getChannelName());
-			final ContrastEnhancement ce = sct.getContrastEnhancement();
-			if (ce != null)
-				ce.accept(this);
-
-		}
-
-		public void visit(ShadedRelief sr) {
-			start("ShadedRelief");
-			// brightnessonly
-			if (sr.isBrightnessOnly())
-				element("BrightnessOnly", "true");
-			else
-				element("BrightnessOnly", "false");
-
-			// relief factor
-			if (sr.getReliefFactor() != null) {
-				// element("ReliefFactor",sr.getReliefFactor());
-				// this expression needs to be converted to a single string and
-				// then written
-				// 1.0.0 specs don't allow it to be written as an expression
-				Literal l = (Literal) sr.getReliefFactor();
-				element("ReliefFactor", l.getValue().toString());
-			}
-			end("ShadedRelief");
-
-		}
-	}
-}
\ No newline at end of file

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/selection/FeatureMapLayerSelectionSynchronizer.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/selection/FeatureMapLayerSelectionSynchronizer.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/selection/FeatureMapLayerSelectionSynchronizer.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -60,6 +60,7 @@
 import org.geotools.map.MapLayer;
 import org.geotools.styling.FeatureTypeStyle;
 import org.geotools.styling.Style;
+import org.geotools.styling.visitor.DuplicatingStyleVisitor;
 import org.opengis.feature.simple.SimpleFeature;
 import org.opengis.feature.simple.SimpleFeatureType;
 import org.opengis.filter.Filter;
@@ -72,7 +73,6 @@
 import de.schmitzm.geotools.gui.XMapPaneEvent;
 import de.schmitzm.geotools.map.event.FeatureSelectedEvent;
 import de.schmitzm.geotools.map.event.JMapPaneListener;
-import de.schmitzm.geotools.org.geotools.styling.visitor.DuplicatingStyleVisitor;
 import de.schmitzm.geotools.styling.StyledFeaturesInterface;
 import de.schmitzm.geotools.styling.StylingUtil;
 import de.schmitzm.geotools.styling.StylingUtil.SelectionStylesTypes;

Modified: trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/styling/StylingUtil.java
===================================================================
--- trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/styling/StylingUtil.java	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-gt/src/main/java/de/schmitzm/geotools/styling/StylingUtil.java	2011-09-26 09:20:31 UTC (rev 1735)
@@ -110,6 +110,7 @@
 import org.geotools.styling.Rule;
 import org.geotools.styling.RuleImpl;
 import org.geotools.styling.SLDParser;
+import org.geotools.styling.SLDTransformer;
 import org.geotools.styling.Stroke;
 import org.geotools.styling.Style;
 import org.geotools.styling.StyleBuilder;
@@ -117,6 +118,7 @@
 import org.geotools.styling.StyledLayerDescriptor;
 import org.geotools.styling.Symbolizer;
 import org.geotools.styling.TextSymbolizer;
+import org.geotools.styling.visitor.DuplicatingStyleVisitor;
 import org.geotools.util.NumberRange;
 import org.geotools.xml.Parser;
 import org.jdom.Element;
@@ -148,8 +150,6 @@
 import de.schmitzm.geotools.feature.FeatureUtil.GeometryForm;
 import de.schmitzm.geotools.grid.GridUtil;
 import de.schmitzm.geotools.gui.XMapPane;
-import de.schmitzm.geotools.org.geotools.styling.SLDTransformer;
-import de.schmitzm.geotools.org.geotools.styling.visitor.DuplicatingStyleVisitor;
 import de.schmitzm.geotools.selection.FeatureMapLayerSelectionSynchronizer;
 import de.schmitzm.io.IOUtil;
 import de.schmitzm.lang.LangUtil;
@@ -936,8 +936,10 @@
 			if (label == null)
 				label = "";
 			categories.put(intValue, new Category(label, new Color[] { color },
-					new NumberRange(intValue, intValue), new NumberRange(
-							intValue, intValue)));
+					// New by Stefan Tzeggai 12.9.11: GT8 Migration
+//					new NumberRange(intValue, intValue), new NumberRange<Integer>(
+//							intValue, intValue)));
+					new NumberRange<Integer>(Integer.class, intValue, intValue), new NumberRange<Integer>(Integer.class,intValue, intValue)));
 		}
 
 		// If NoData-Value is set, create an additional Category
@@ -955,10 +957,15 @@
 		// double higherEnd = colorMapMax + 10000*colorMapRange;
 		final int lowerStart = Integer.MIN_VALUE;
 		final int higherEnd = Integer.MAX_VALUE;
+		
+		// New by Stefan Tzeggai 12.9.11: GT8 Migration
 		categories.put(colorMapMax + 10, new Category("_autoNoData1_",
-				new Color[] { new Color(0, 0, 0, 0) }, new NumberRange(
-						colorMapMax + 1, colorMapMax + 2), new NumberRange(
+				new Color[] { new Color(0, 0, 0, 0) }, new NumberRange<Integer>(Integer.class,
+						colorMapMax + 1, colorMapMax + 2), new NumberRange<Integer>(Integer.class,
 						colorMapMax + 1, higherEnd)));
+//		new Color[] { new Color(0, 0, 0, 0) }, new NumberRange(
+//				colorMapMax + 1, colorMapMax + 2), new NumberRange(
+//						colorMapMax + 1, higherEnd)));
 		if (colorMapMin < colorMapMax)
 			categories.put(colorMapMin - 10, new Category("_autoNoData2_",
 					new Color[] { new Color(0, 0, 0, 0) },
@@ -1003,8 +1010,9 @@
 	public static Category createNoDataCategory(int value, double geoValue) {
 		return new Category(
 				Vocabulary.formatInternational(VocabularyKeys.NODATA),
-				new Color[] { new Color(0, 0, 0, 0) }, new NumberRange(value,
-						value), new NumberRange(geoValue, geoValue));
+				// New by Stefan Tzeggai 12.9.11: GT8 Migration
+				new Color[] { new Color(0, 0, 0, 0) }, new NumberRange<Integer>(Integer.class, value,
+						value), new NumberRange<Double>(Double.class, geoValue, geoValue));
 	}
 
 	/**
@@ -1427,8 +1435,10 @@
 				.createGraphic(null, STYLE_BUILDER.createMark("circle"), null));
 		ps.getGraphic().getMarks()[0].setFill(STYLE_BUILDER.createFill(color,
 				0.5));
-		ps.getGraphic().getMarks()[0].setSize(STYLE_BUILDER
-				.literalExpression(8.));
+		
+//		ps.getGraphic().getMarks()[0].setSize(STYLE_BUILDER
+//				.literalExpression(8.));
+		
 		ps.getGraphic().setSize(STYLE_BUILDER.literalExpression(8.));
 		ps.getGraphic().getMarks()[0].setStroke(STYLE_BUILDER
 				.createStroke(color2));

Modified: trunk/schmitzm-parent/pom.xml
===================================================================
--- trunk/schmitzm-parent/pom.xml	2011-09-25 16:59:11 UTC (rev 1734)
+++ trunk/schmitzm-parent/pom.xml	2011-09-26 09:20:31 UTC (rev 1735)
@@ -14,7 +14,7 @@
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<schmitzm.version>${project.version}</schmitzm.version>
-		<geotools.version>2.6.6</geotools.version>
+		<geotools.version>8-SNAPSHOT</geotools.version>
 <!--		<geotools.version>2.7-RC1</geotools.version> -->
 	</properties>
 



More information about the Schmitzm-commits mailing list