From: <si...@sv...> - 2008-01-31 00:53:12
|
Author: simboss Date: 2008-01-30 16:52:21 -0800 (Wed, 30 Jan 2008) New Revision: 29014 Modified: geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/BandSelectionNode.java geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ChannelSelectionNode.java geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ColorMapVisitor.java geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ContrastEnhancementNode.java Log: -slightly refactoring code for rastersymbolizer Modified: geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/BandSelectionNode.java =================================================================== --- geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/BandSelectionNode.java 2008-01-31 00:51:29 UTC (rev 29013) +++ geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/BandSelectionNode.java 2008-01-31 00:52:21 UTC (rev 29014) @@ -23,16 +23,20 @@ import org.opengis.parameter.ParameterValueGroup; /** + * * @author Simone Giannecchini, GeoSolutions. * */ -class BandSelectionNode extends StyleVisitorCoverageProcessingNode implements +class BandSelectionNode extends BaseStyleVisitorCoverageProcessingNode implements CoverageProcessingNode { private int bandIndex=-1; /** + * Default constructor. * + * <p> + * A band selection node can have at mosst one source node. */ public BandSelectionNode() { super(1); @@ -45,12 +49,12 @@ /* * (non-Javadoc) * - * @see org.geotools.renderer.lite.gridcoverage2d.rs.CoverageProcessingNodeAdapter#execute() + * @see org.geotools.renderer.lite.gridcoverage2d.rs.BaseCoverageProcessingNode#execute() */ - protected void execute() { + protected GridCoverage2D execute() { //preconditions assert Thread.holdsLock(this); - assert this.getSources().size()==1; + assert this.getSources().size()<=1; // ///////////////////////////////////////////////////////////////////// // @@ -62,6 +66,7 @@ if (sources != null || !sources.isEmpty()) { final GridCoverage2D source = getSource(0).getOutput(); ensureNotNull(source); + GridCoverage2D output=null; if (bandIndex!=-1) { // ///////////////////////////////////////////////////////////////////// // @@ -78,7 +83,7 @@ if (bandIndex < 1 || bandIndex > numSampleDimensions) throw new IllegalArgumentException( "The provided band index is invalid."); - else + // // // // SHORTCUT @@ -137,7 +142,7 @@ // postcondition assert output.getNumSampleDimensions() == 1; - return; + return output; } throw new IllegalStateException("No source was set for this Node."); Modified: geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ChannelSelectionNode.java =================================================================== --- geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ChannelSelectionNode.java 2008-01-31 00:51:29 UTC (rev 29013) +++ geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ChannelSelectionNode.java 2008-01-31 00:52:21 UTC (rev 29014) @@ -9,9 +9,15 @@ import org.geotools.factory.Hints; import org.geotools.styling.ChannelSelection; import org.geotools.styling.SelectedChannelType; +import org.geotools.styling.StyleVisitor; -class ChannelSelectionNode extends StyleVisitorCoverageProcessingNode implements - ChainedStyleVisitorNode { +/** + * + * @author simone + * + */ +class ChannelSelectionNode extends BaseStyleVisitorCoverageProcessingNode implements + StyleVisitor,CoverageProcessingNode { /** Logger for this class. */ private final static Logger LOGGER = Logger .getLogger(ChannelSelectionNode.class.getName()); @@ -113,12 +119,11 @@ * This node is a chain itself then we got to execute its last node in order * to get the output for the chain. */ - protected void execute() { + protected GridCoverage2D execute() { assert Thread.holdsLock(this); - if (chainSink != null) { - output = chainSink.getOutput(); - } else - throw new IllegalStateException("No source was set for this Node."); + if (chainSink != null) + return chainSink.getOutput(); + throw new IllegalStateException("No source was set for this Node."); } Modified: geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ColorMapVisitor.java =================================================================== --- geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ColorMapVisitor.java 2008-01-31 00:51:29 UTC (rev 29013) +++ geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ColorMapVisitor.java 2008-01-31 00:52:21 UTC (rev 29014) @@ -18,6 +18,7 @@ import org.geotools.resources.coverage.CoverageUtilities; import org.geotools.styling.ColorMap; import org.geotools.styling.ColorMapEntry; +import org.geotools.styling.StyleVisitor; import org.geotools.util.NumberRange; import org.opengis.filter.expression.Expression; @@ -38,8 +39,8 @@ * @author Simone Giannecchini, GeoSolutions * @see ColorMap */ -class ColorMapVisitor extends StyleVisitorCoverageProcessingNode implements - ChainedStyleVisitorNode { +class ColorMapVisitor extends BaseStyleVisitorCoverageProcessingNode implements +StyleVisitor,CoverageProcessingNode { static { try { @@ -397,7 +398,7 @@ * principle, applying the {@link ColorMap} element to a coverage with more * than one band is an error. */ - protected void execute() { + protected GridCoverage2D execute() { final CoverageProcessingNode sourceNode = getSource(0); if (sourceNode == null) throw new IllegalStateException( @@ -424,12 +425,12 @@ pbj.addSource(sourceImage); pbj.add(classification); final RenderedOp d = JAI.create(RasterClassifier.OPERATION_NAME, pbj); - output = FactoryFinder.getGridCoverageFactory(null).create("BandMerge", + return FactoryFinder.getGridCoverageFactory(null).create("BandMerge", d, getSource(0).getOutput().getEnvelope()); - } else { - output = FactoryFinder.getGridCoverageFactory(null).create("Raster", + } + return FactoryFinder.getGridCoverageFactory(null).create("Raster", sourceImage, getSource(0).getOutput().getEnvelope()); - } + } public synchronized boolean isExtendedColors() { Modified: geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ContrastEnhancementNode.java =================================================================== --- geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ContrastEnhancementNode.java 2008-01-31 00:51:29 UTC (rev 29013) +++ geotools/branches/2.4.x_rs/modules/library/render/src/main/java/org/geotools/renderer/lite/gridcoverage2d/rs/ContrastEnhancementNode.java 2008-01-31 00:52:21 UTC (rev 29014) @@ -27,6 +27,7 @@ import org.geotools.factory.Hints; import org.geotools.image.ImageWorker; import org.geotools.styling.ContrastEnhancement; +import org.geotools.styling.StyleVisitor; import org.opengis.filter.expression.Expression; /** @@ -35,8 +36,8 @@ * */ class ContrastEnhancementNode extends - StyleVisitorCoverageProcessingNode implements - ChainedStyleVisitorNode { + BaseStyleVisitorCoverageProcessingNode implements + StyleVisitor,CoverageProcessingNode { /** Logger for this class. */ private final static Logger LOGGER = Logger @@ -119,7 +120,7 @@ super(1, hints); } - protected void execute() { + protected GridCoverage2D execute() { assert Thread.holdsLock(this); final Hints hints = super.getHints(); @@ -136,6 +137,7 @@ + GridCoverage2D output; if ((!Double.isNaN(gammaValue)&&!Double.isInfinite(gammaValue)&&!(gammaValue==1-0)) || (type != null && type.length() > 0)) { @@ -334,7 +336,7 @@ // // ///////////////////////////////////////////////////////////////////// output = source; - return; + return output; } throw new IllegalStateException("No source was set for this Node."); |