Revision: 5927
          http://sourceforge.net/p/jump-pilot/code/5927
Author:   ma15569
Date:     2018-08-25 16:31:05 +0000 (Sat, 25 Aug 2018)
Log Message:
-----------
Moved Sextante raster file export to OpenJUMP inner methods (RasterImageIO 
class) so any enhencement in OJ raster output will affect Sextante raster output

Modified Paths:
--------------
    
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/core/OpenJUMPRasterLayer.java

Modified: 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/core/OpenJUMPRasterLayer.java
===================================================================
--- 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/core/OpenJUMPRasterLayer.java
 2018-08-24 10:54:19 UTC (rev 5926)
+++ 
plug-ins/SextantePlugIn/src/es/unex/sextante/openjump/core/OpenJUMPRasterLayer.java
 2018-08-25 16:31:05 UTC (rev 5927)
@@ -3,6 +3,7 @@
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
+import java.awt.image.DataBuffer;
 import java.awt.image.Raster;
 import java.awt.image.WritableRaster;
 import java.io.BufferedWriter;
@@ -10,6 +11,7 @@
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.nio.ByteOrder;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.util.Locale;
@@ -25,6 +27,10 @@
 import javax.xml.transform.stream.StreamResult;
 
 import org.openjump.core.rasterimage.GeoTiffConstants;
+import org.openjump.core.rasterimage.GridAscii;
+import org.openjump.core.rasterimage.GridFloat;
+import org.openjump.core.rasterimage.RasterImageIO;
+import org.openjump.core.rasterimage.RasterImageIO.CellSizeXY;
 import org.openjump.core.rasterimage.RasterImageLayer;
 import org.openjump.core.rasterimage.Stats;
 import org.openjump.core.rasterimage.TiffTags;
@@ -55,18 +61,24 @@
     RasterImageLayer m_Layer;
 
     public void create(RasterImageLayer layer) throws IOException {
-        this.m_Layer = layer;
-        this.m_Raster = layer.getRasterData(null);
-        this.m_sName = layer.getName();
-        this.m_sFilename = layer.getImageFileName();
-        Envelope env = layer.getWholeImageEnvelope();
-        this.m_LayerExtent = new AnalysisExtent();
-        this.m_LayerExtent.setCellSize((env.getMaxX() - env.getMinX())
-                / this.m_Raster.getWidth());
-        this.m_LayerExtent.setXRange(env.getMinX(), env.getMaxX(), true);
-        this.m_LayerExtent.setYRange(env.getMinY(), env.getMaxY(), true);
-        this.m_dNoDataValue = layer.getNoDataValue();
+        m_Layer = layer;
+        m_Raster = layer.getRasterData(null);
+        m_sName = layer.getName();
+        m_sFilename = layer.getImageFileName();
+        final Envelope env = layer.getWholeImageEnvelope();
+        m_LayerExtent = new AnalysisExtent();
+        m_LayerExtent.setCellSize((env.getMaxX() - env.getMinX())
+                / m_Raster.getWidth());
+        m_LayerExtent.setXRange(env.getMinX(), env.getMaxX(), true);
+        m_LayerExtent.setYRange(env.getMinY(), env.getMaxY(), true);
+        m_dNoDataValue = layer.getNoDataValue();
 
+        
+        
+        // [Giuseppe Aruta 25 Aug. 2018] Moved raster file export to OpenJUMP
+        //inner methods (RasterImageIO class) so any enhencement in OJ raster
+        //output will affect Sextante raster output
+        // ------------------------------------------
         // [Giuseppe Aruta 30 Gen. 2018] deactivated as OJ calculate anyhow
         // statistics (and writes .xml file) when loads raster
         // m_Stats = stats(layer);
@@ -89,39 +101,39 @@
     public void create(RasterImageLayer layer, boolean loadFromFile)
             throws IOException {
         if (!loadFromFile) {
-            this.m_Layer = layer;
+            m_Layer = layer;
 
             // [sstein 2 Aug 2010], changed so we work now with the raster and
             // not the image, which may be scaled for display.
             // m_Raster = layer.getImage().getData();
-            this.m_Raster = layer.getRasterData(null);
+            m_Raster = layer.getRasterData(null);
 
-            this.m_sName = layer.getName();
-            this.m_sFilename = layer.getImageFileName();
-            Envelope env = layer.getWholeImageEnvelope();
-            this.m_LayerExtent = new AnalysisExtent();
+            m_sName = layer.getName();
+            m_sFilename = layer.getImageFileName();
+            final Envelope env = layer.getWholeImageEnvelope();
+            m_LayerExtent = new AnalysisExtent();
             // [sstein 18 Mar 2013], set cell size first, and then the extent,
             // otherwise maxX and maxY will be reset
-            this.m_LayerExtent.setCellSize((env.getMaxX() - env.getMinX())
-                    / this.m_Raster.getWidth());
-            this.m_LayerExtent.setXRange(env.getMinX(), env.getMaxX(), true);
-            this.m_LayerExtent.setYRange(env.getMinY(), env.getMaxY(), true);
+            m_LayerExtent.setCellSize((env.getMaxX() - env.getMinX())
+                    / m_Raster.getWidth());
+            m_LayerExtent.setXRange(env.getMinX(), env.getMaxX(), true);
+            m_LayerExtent.setYRange(env.getMinY(), env.getMaxY(), true);
             // [Giuseppe Aruta 8 Oct. 2016] using selected rasterlayer no data
             // value instead
             // m_dNoDataValue = DEFAULT_NO_DATA_VALUE;
-            this.m_dNoDataValue = layer.getNoDataValue();
+            m_dNoDataValue = layer.getNoDataValue();
         } else {
-            RasterImageLayer rasterLayer = new RasterImageLayer(
+            final RasterImageLayer rasterLayer = new RasterImageLayer(
                     layer.getName(), layer.getLayerManager(),
                     layer.getImageFileName(), null,
                     layer.getWholeImageEnvelope());
-            this.m_Layer = rasterLayer;
-            this.m_Raster = rasterLayer.getRasterData(null);
+            m_Layer = rasterLayer;
+            m_Raster = rasterLayer.getRasterData(null);
 
-            this.m_sName = rasterLayer.getName();
-            this.m_sFilename = rasterLayer.getImageFileName();
-            Envelope env = rasterLayer.getWholeImageEnvelope();
-            this.m_LayerExtent = new AnalysisExtent();
+            m_sName = rasterLayer.getName();
+            m_sFilename = rasterLayer.getImageFileName();
+            final Envelope env = rasterLayer.getWholeImageEnvelope();
+            m_LayerExtent = new AnalysisExtent();
             // [sstein 18 Mar 2013], set cell size first, and then the extent,
             // otherwise maxX and maxY will be reset
             m_LayerExtent.setCellSize((env.getMaxX() - env.getMinX())
@@ -137,24 +149,24 @@
 
     public void create(String name, String filename, AnalysisExtent ge,
             int dataType, int numBands, Object crs) {
-        this.m_Raster = RasterFactory.createBandedRaster(dataType, ge.getNX(),
+        m_Raster = RasterFactory.createBandedRaster(dataType, ge.getNX(),
                 ge.getNY(), numBands, null);
 
-        OpenJUMPOutputFactory fact = (OpenJUMPOutputFactory) SextanteGUI
+        final OpenJUMPOutputFactory fact = (OpenJUMPOutputFactory) SextanteGUI
                 .getOutputFactory();
 
-        Envelope envelope = new Envelope();
+        final Envelope envelope = new Envelope();
         envelope.init(ge.getXMin(), ge.getXMax(), ge.getYMin(), ge.getYMax());
-        ColorModel colorModel = PlanarImage.createColorModel(this.m_Raster
+        final ColorModel colorModel = PlanarImage.createColorModel(m_Raster
                 .getSampleModel());
-        BufferedImage bufimg = new BufferedImage(colorModel,
-                (WritableRaster) this.m_Raster, false, null);
+        final BufferedImage bufimg = new BufferedImage(colorModel,
+                (WritableRaster) m_Raster, false, null);
 
-        this.m_Layer = new RasterImageLayer(name, fact.getContext()
+        m_Layer = new RasterImageLayer(name, fact.getContext()
                 .getLayerManager(), filename, bufimg, envelope);
-        this.m_sName = name;
-        this.m_sFilename = filename;
-        this.m_LayerExtent = ge;
+        m_sName = name;
+        m_sFilename = filename;
+        m_LayerExtent = ge;
         // [Giuseppe Aruta 8 Oct. 2016] using Sextante GUI to get no data value
         // instead
         m_dNoDataValue = 
SextanteGUI.getOutputFactory().getDefaultNoDataValue();
@@ -163,28 +175,53 @@
 
     @Override
     public int getBandsCount() {
-        if (this.m_Raster != null) {
-            return this.m_Raster.getNumBands();
+        if (m_Raster != null) {
+            return m_Raster.getNumBands();
         }
         return 0;
     }
 
+    // @Override
+    // public double getCellValueInLayerCoords(int x, int y, int band) {
+    // try {
+    // if (m_Raster != null) {
+    // return m_Raster.getSampleDouble(x, y, band);
+    // }
+    // return getNoDataValue();
+    // } catch (final Exception e) {
+    // }
+    // return getNoDataValue();
+    // }
+
     @Override
     public double getCellValueInLayerCoords(int x, int y, int band) {
+        final DataBuffer db = m_Raster.getDataBuffer();
         try {
-            if (this.m_Raster != null) {
-                return this.m_Raster.getSampleDouble(x, y, band);
+            switch (db.getDataType()) {
+            case 5:
+                return m_Raster.getSampleDouble(x, y, band);
+            case 4:
+                return m_Raster.getSampleFloat(x, y, band);
+            case 3:
+                return m_Raster.getSample(x, y, band);
+            case 1:
+            case 2:
+                return (short) m_Raster.getSampleDouble(x, y, band);
+            case 0:
+                return (byte) m_Raster.getSampleDouble(x, y, band) & 0xFF;
             }
-            return getNoDataValue();
-        } catch (Exception e) {
+            return m_Layer.getNoDataValue();
+        } catch (final Exception e) {
+            throw new RuntimeException(
+                    "Interrupted while getting value of cell x = " + x
+                            + ", y = " + y + ", band = " + band, e);
         }
-        return getNoDataValue();
     }
 
     @Override
     public int getDataType() {
-        if (this.m_Raster != null) {
-            return this.m_Raster.getDataBuffer().getDataType();
+        if (m_Raster != null) {
+            return m_Raster.getDataBuffer().getDataType();
         }
         return 5;
     }
@@ -191,8 +228,8 @@
 
     @Override
     public double getLayerCellSize() {
-        if (this.m_LayerExtent != null) {
-            return this.m_LayerExtent.getCellSize();
+        if (m_LayerExtent != null) {
+            return m_LayerExtent.getCellSize();
         }
         return 0.0D;
     }
@@ -199,25 +236,62 @@
 
     @Override
     public AnalysisExtent getLayerGridExtent() {
-        return this.m_LayerExtent;
+        return m_LayerExtent;
     }
 
     @Override
     public double getNoDataValue() {
-        return this.m_dNoDataValue;
+        return m_dNoDataValue;
     }
 
+    // public void setCellValue(int x, int y, int band, double value) {
+    // if (((this.m_Raster instanceof WritableRaster))
+    // && (getWindowGridExtent().containsCell(x, y))) {
+    // ((WritableRaster) this.m_Raster).setSample(x, y, band, value);
+    // }
+    // }
+
     @Override
-    public void setCellValue(int x, int y, int band, double value) {
-        if (((this.m_Raster instanceof WritableRaster))
+    public void setCellValue(int x, int y, int band, double dValue) {
+        if (((m_Raster instanceof WritableRaster))
                 && (getWindowGridExtent().containsCell(x, y))) {
-            ((WritableRaster) this.m_Raster).setSample(x, y, band, value);
+            final DataBuffer db = m_Raster.getDataBuffer();
+
+            try {
+                switch (db.getDataType()) {
+                case 5:
+                    ((WritableRaster) m_Raster).setSample(x, y, band, dValue);
+                    break;
+                case 4:
+                    ((WritableRaster) m_Raster).setSample(x, y, band,
+                            (float) dValue);
+                    break;
+                case 3:
+                    ((WritableRaster) m_Raster).setSample(x, y, band,
+                            (int) dValue);
+                    break;
+                case 1:
+                case 2:
+                    ((WritableRaster) m_Raster).setSample(x, y, band,
+                            (short) dValue);
+                    break;
+                case 0:
+                    ((WritableRaster) m_Raster).setSample(x, y, band,
+                            (byte) dValue);
+                }
+            } catch (final Exception e) {
+                throw new RuntimeException(
+                        "Interrupted while setting value of cell x = " + x
+                                + ", y = " + y + ", band = " + band
+                                + ", value = " + dValue, e);
+
+            }
         }
     }
 
     @Override
     public void setNoDataValue(double noDataValue) {
-        this.m_dNoDataValue = noDataValue;
+        m_dNoDataValue = noDataValue;
     }
 
     @Override
@@ -232,8 +306,8 @@
      */
     @Override
     public Rectangle2D getFullExtent() {
-        if (this.m_Layer != null) {
-            Envelope envelope = this.m_Layer.getWholeImageEnvelope();
+        if (m_Layer != null) {
+            final Envelope envelope = m_Layer.getWholeImageEnvelope();
             return new Rectangle2D.Double(envelope.getMinX(),
                     envelope.getMinY(), envelope.getWidth(),
                     envelope.getHeight());
@@ -249,8 +323,7 @@
     public void close() {
     }
 
-    @Override
-    public void postProcess() throws Exception {
+    public void postProcess_old() throws Exception {
 
         if (m_Layer != null) {
 
@@ -257,7 +330,7 @@
             final FileOutputStream tifOut = new FileOutputStream(m_sFilename);
             final TIFFEncodeParam param = new TIFFEncodeParam();
             param.setCompression(TIFFEncodeParam.COMPRESSION_NONE);
-            TIFFField[] tiffFields = new TIFFField[2];
+            final TIFFField[] tiffFields = new TIFFField[2];
 
             // [Giuseppe Aruta 8 Oct. 2016] the following parameters come from
             // RasterImageIO class
@@ -267,13 +340,13 @@
             tiffFields[0] = new TIFFField(GeoTiffConstants.ModelPixelScaleTag,
                     TIFFField.TIFF_DOUBLE, 2, getLayerCellSize());
             // No data
-            String noDataS = Double.toString(getNoDataValue());
-            byte[] bytes = noDataS.getBytes();
-            tiffFields[0] = new TIFFField(TiffTags.TIFFTAG_GDAL_NODATA,
+            final String noDataS = Double.toString(getNoDataValue());
+            final byte[] bytes = noDataS.getBytes();
+            tiffFields[1] = new TIFFField(TiffTags.TIFFTAG_GDAL_NODATA,
                     TIFFField.TIFF_BYTE, noDataS.length(), bytes);
             // Tie point
             final Envelope envelope = m_Layer.getWholeImageEnvelope();
-            tiffFields[1] = new TIFFField(GeoTiffConstants.ModelTiepointTag,
+            tiffFields[2] = new TIFFField(GeoTiffConstants.ModelTiepointTag,
                     TIFFField.TIFF_DOUBLE, 6, new double[] { 0, 0, 0,
                             envelope.getMinX(), envelope.getMaxY(), 0 });
             param.setExtraFields(tiffFields);
@@ -309,84 +382,105 @@
 
     }
 
-    public boolean export(String sFilename) {
-        if (sFilename.endsWith("asc")) {
-            return exportToArcInfoASCIIFile(sFilename);
+    @Override
+    public void postProcess() throws Exception {
+
+        if (m_Layer != null) {
+
+            exportToTIFF();
+
+            // Switch RAM mode of the RasterImage
+            m_Layer.setImageFileName(m_sFilename);
+            m_Layer.setNeedToKeepImage(false);
+
         }
-        if (sFilename.endsWith("tif")) {
-            return exportToGeoTIFFFile(sFilename);
-        }
-        return exportToGeoTIFFFile(sFilename);
+
     }
 
-    private boolean exportToGeoTIFFFile(String sFilename) {
-        try {
-            FileOutputStream tifOut = new FileOutputStream(this.m_sFilename);
-            TIFFEncodeParam param = new TIFFEncodeParam();
-            param.setCompression(1);
-            TIFFField[] tiffFields = new TIFFField[3];
+    private void exportToTIFF() throws Exception {
+        if (m_Layer != null) {
 
-            tiffFields[0] = new TIFFField(33550, 12, 2, new double[] {
-                    getLayerCellSize(), getLayerCellSize() });
+            final RasterImageIO rasterImageIO = new RasterImageIO();
+            final Envelope env = m_Layer.getWholeImageEnvelope();
 
-            String noDataS = Double.toString(getNoDataValue());
-            byte[] bytes = noDataS.getBytes();
-            tiffFields[1] = new TIFFField(42113, 1, noDataS.length(), bytes);
+            final File file = new File(m_sFilename);
+            rasterImageIO.writeImage(
+                    file,
+                    m_Raster,
+                    env,
+                    rasterImageIO.new CellSizeXY(env.getWidth()
+                            / m_Raster.getWidth(), env.getHeight()
+                            / m_Raster.getHeight()), m_Layer.getNoDataValue());
 
-            Envelope envelope = this.m_Layer.getWholeImageEnvelope();
-            tiffFields[2] = new TIFFField(33922, 12, 6, new double[] { 0.0D,
-                    0.0D, 0.0D, envelope.getMinX(), envelope.getMaxY(), 0.0D 
});
-            param.setExtraFields(tiffFields);
-            TIFFImageEncoder encoder = (TIFFImageEncoder) TIFFCodec
-                    .createImageEncoder("tiff", tifOut, param);
+            // Switch RAM mode of the RasterImage
+            m_Layer.setImageFileName(m_sFilename);
+            m_Layer.setNeedToKeepImage(false);
 
-            ColorModel colorModel = PlanarImage.createColorModel(this.m_Raster
-                    .getSampleModel());
-            BufferedImage image = new BufferedImage(colorModel,
-                    (WritableRaster) this.m_Raster, false, null);
+        }
 
-            encoder.encode(image);
-            tifOut.close();
+    }
 
-            WorldFileHandler worldFileHandler = new WorldFileHandler(
-                    this.m_sFilename, false);
-            worldFileHandler.writeWorldFile(envelope, image.getWidth(),
-                    image.getHeight());
+    private void exportToASC() throws Exception {
+        if (m_Layer != null) {
+            final RasterImageIO rasterImageIO = new RasterImageIO();
+            final Envelope env = m_Layer.getWholeImageEnvelope();
+            final CellSizeXY cellsize = rasterImageIO.new CellSizeXY(
+                    env.getWidth() / m_Raster.getWidth(), env.getHeight()
+                            / m_Raster.getHeight());
 
-            this.m_Layer.setImageFileName(this.m_sFilename);
-            this.m_Layer.setNeedToKeepImage(false);
-        } catch (Exception e) {
-            return false;
+            final GridAscii ga = new GridAscii(m_sFilename,
+                    m_Raster.getWidth(), m_Raster.getHeight(), true,
+                    env.getMinX(), env.getMinY(),
+                    cellsize.getAverageCellSize(), m_Layer.getNoDataValue());
+            ga.setRas(m_Raster);
+            ga.writeGrid();
         }
-        return true;
+
     }
 
+    private void exportToFLT() throws Exception {
+        if (m_Layer != null) {
+            final RasterImageIO rasterImageIO = new RasterImageIO();
+            final Envelope env = m_Layer.getWholeImageEnvelope();
+            final CellSizeXY cellsize = rasterImageIO.new CellSizeXY(
+                    env.getWidth() / m_Raster.getWidth(), env.getHeight()
+                            / m_Raster.getHeight());
+
+            final GridFloat gf = new GridFloat(m_sFilename,
+                    m_Raster.getWidth(), m_Raster.getHeight(), true,
+                    env.getMinX(), env.getMinY(),
+                    cellsize.getAverageCellSize(), m_Layer.getNoDataValue(),
+                    ByteOrder.LITTLE_ENDIAN);
+            gf.setRas(m_Raster);
+            gf.writeGrid();
+        }
+
+    }
+
     private boolean exportToArcInfoASCIIFile(String sFilename) {
         try {
-            FileWriter f = new FileWriter(sFilename);
-            BufferedWriter fout = new BufferedWriter(f);
-            DecimalFormat df = new DecimalFormat("##.###");
+            final FileWriter f = new FileWriter(sFilename);
+            final BufferedWriter fout = new BufferedWriter(f);
+            final DecimalFormat df = new DecimalFormat("##.###");
             df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.US));
             df.setDecimalSeparatorAlwaysShown(true);
 
-            fout.write("ncols " + 
Integer.toString(this.m_LayerExtent.getNX()));
+            fout.write("ncols " + Integer.toString(m_LayerExtent.getNX()));
             fout.newLine();
-            fout.write("nrows " + 
Integer.toString(this.m_LayerExtent.getNY()));
+            fout.write("nrows " + Integer.toString(m_LayerExtent.getNY()));
             fout.newLine();
-            fout.write("xllcorner "
-                    + Double.toString(this.m_LayerExtent.getXMin()));
+            fout.write("xllcorner " + 
Double.toString(m_LayerExtent.getXMin()));
             fout.newLine();
-            fout.write("yllcorner "
-                    + Double.toString(this.m_LayerExtent.getYMin()));
+            fout.write("yllcorner " + 
Double.toString(m_LayerExtent.getYMin()));
             fout.newLine();
 
             fout.write("cellsize "
-                    + Double.toString(this.m_LayerExtent.getCellSize()));
+                    + Double.toString(m_LayerExtent.getCellSize()));
             fout.newLine();
             fout.write("nodata_value " + Double.toString(getNoDataValue()));
             fout.newLine();
-            for (int i = 0; i < this.m_LayerExtent.getNY(); i++) {
-                for (int j = 0; j < this.m_LayerExtent.getNX(); j++) {
+            for (int i = 0; i < m_LayerExtent.getNY(); i++) {
+                for (int j = 0; j < m_LayerExtent.getNX(); j++) {
                     fout.write(df.format(getCellValueAsDouble(j, i)) + " ");
                 }
                 fout.newLine();
@@ -393,7 +487,7 @@
             }
             fout.close();
             f.close();
-        } catch (Exception e) {
+        } catch (final Exception e) {
             return false;
         }
         return true;
@@ -401,14 +495,14 @@
 
     @Override
     public String getName() {
-        return this.m_sName;
+        return m_sName;
     }
 
     @Override
     public void setName(String sName) {
-        this.m_sName = sName;
-        if (this.m_Layer != null) {
-            this.m_Layer.setName(sName);
+        m_sName = sName;
+        if (m_Layer != null) {
+            m_Layer.setName(sName);
         }
     }
 
@@ -418,16 +512,16 @@
 
     @Override
     public Object getBaseDataObject() {
-        return this.m_Layer;
+        return m_Layer;
     }
 
     @Override
     public IOutputChannel getOutputChannel() {
-        return new FileOutputChannel(this.m_sFilename);
+        return new FileOutputChannel(m_sFilename);
     }
 
     public String getFilename() {
-        return this.m_sFilename;
+        return m_sFilename;
     }
 
     // [Giuseppe Aruta 30 Gen. 2018] The following code is used to a) calculate
@@ -444,10 +538,10 @@
     }
 
     public void writeXLM(File auxXmlFile) throws Exception {
-        Stats stats = m_Stats;
-        DocumentBuilderFactory docFactory = DocumentBuilderFactory
+        final Stats stats = m_Stats;
+        final DocumentBuilderFactory docFactory = DocumentBuilderFactory
                 .newInstance();
-        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+        final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
         Document doc;
 
         Element pamDatasetElement;
@@ -455,7 +549,7 @@
         doc = docBuilder.newDocument();
 
         // Check if PAMDataset element exists and, if not, create it
-        String pamDatasetTagName = "PAMDataset";
+        final String pamDatasetTagName = "PAMDataset";
         pamDatasetElement = (Element) doc.getElementsByTagName(
                 pamDatasetTagName).item(0);
         if (pamDatasetElement == null) {
@@ -462,12 +556,12 @@
             pamDatasetElement = doc.createElement(pamDatasetTagName);
         }
 
-        String pamRasterBandTagName = "PAMRasterBand";
-        String pamRasterSridTagName = "SRS";
-        String bandAttribute = "band";
-        String metadataElementName = "Metadata";
+        final String pamRasterBandTagName = "PAMRasterBand";
+        final String pamRasterSridTagName = "SRS";
+        final String bandAttribute = "band";
+        final String metadataElementName = "Metadata";
 
-        String SRID = null;
+        final String SRID = null;
         // String fileSourcePath = m_Layer.getImageFileName();
         // //// String srsCode = m_Layer.getSRSInfo().getCode();
 
@@ -505,9 +599,9 @@
         if (pamRasterBandNodeList != null
                 && pamRasterBandNodeList.getLength() > 0) {
             for (int b = 0; b < pamRasterBandNodeList.getLength(); b++) {
-                Element pamRasterBandElement = (Element) pamRasterBandNodeList
+                final Element pamRasterBandElement = (Element) 
pamRasterBandNodeList
                         .item(b);
-                int bandNr = Integer.parseInt(pamRasterBandElement
+                final int bandNr = Integer.parseInt(pamRasterBandElement
                         .getAttribute(bandAttribute));
 
                 if (bandNr == b + 1) {
@@ -525,9 +619,9 @@
         } else {
             for (int b = 0; b < stats.getBandCount(); b++) {
 
-                Element pamRasterBandElement = doc
+                final Element pamRasterBandElement = doc
                         .createElement(pamRasterBandTagName);
-                Attr attr = doc.createAttribute(bandAttribute);
+                final Attr attr = doc.createAttribute(bandAttribute);
                 attr.setValue(Integer.toString(b + 1));
                 pamRasterBandElement.setAttributeNode(attr);
 
@@ -543,14 +637,14 @@
         }
 
         // write the content into xml file
-        TransformerFactory transformerFactory = TransformerFactory
+        final TransformerFactory transformerFactory = TransformerFactory
                 .newInstance();
-        Transformer transformer = transformerFactory.newTransformer();
+        final Transformer transformer = transformerFactory.newTransformer();
         transformer.setOutputProperty(OutputKeys.INDENT, "yes");
         transformer.setOutputProperty(
                 "{http://xml.apache.org/xslt}indent-amount";, "2");
-        DOMSource source = new DOMSource(doc);
-        StreamResult result = new StreamResult(auxXmlFile);
+        final DOMSource source = new DOMSource(doc);
+        final StreamResult result = new StreamResult(auxXmlFile);
         transformer.transform(source, result);
 
     }
@@ -557,7 +651,7 @@
 
     private Element updateMetadataElement(Document doc,
             Element metadataElement, RasterImageLayer layer, int band) {
-        Stats stats = m_Stats;
+        final Stats stats = m_Stats;
         ;
         Element mdi = doc.createElement("MDI");
         mdi.setAttribute("key", "STATISTICS_MINIMUM");


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to