Package org.geotools.coverageio.gdal.rpftoc

Source Code of org.geotools.coverageio.gdal.rpftoc.RPFTOCReader

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2007-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 org.geotools.coverageio.gdal.rpftoc;

import java.io.File;

import it.geosolutions.imageio.plugins.rpftoc.RPFTOCImageReaderSpi;

import org.geotools.coverage.grid.GridCoverage2D;
import org.geotools.coverageio.gdal.BaseGDALGridCoverage2DReader;
import org.geotools.data.DataSourceException;
import org.geotools.factory.Hints;
import org.opengis.coverage.grid.Format;
import org.opengis.coverage.grid.GridCoverageReader;


/**
* This class can read a RPFTOC data source and create a {@link GridCoverage2D}
* from the data.
*
* @author Daniele Romagnoli, GeoSolutions.
* @author Simone Giannecchini (simboss), GeoSolutions
* @since 2.5.x
*
*
* @source $URL$
*/
public final class RPFTOCReader extends BaseGDALGridCoverage2DReader implements GridCoverageReader {
    private final static String worldFileExt = "";

    /**
     * Creates a new instance of a {@link RPFTOCReader}. I assume nothing about
     * file extension.
     *
     * @param input
     *            Source object for which we want to build an {@link RPFTOCReader}.
     * @throws DataSourceException
     */
    public RPFTOCReader(Object input) throws DataSourceException {
        this(input, null);
    }

    /**
     * Creates a new instance of a {@link RPFTOCReader}. I assume nothing about
     * file extension.
     *
     * @param input
     *            Source object for which we want to build an {@link RPFTOCReader}.
     * @param hints
     *            Hints to be used by this reader throughout his life.
     * @throws DataSourceException
     */
    public RPFTOCReader(Object input, Hints hints) throws DataSourceException {
        super(input, hints, worldFileExt, new RPFTOCImageReaderSpi());
    }

    /**
     * @see org.opengis.coverage.grid.GridCoverageReader#getFormat()
     */
    public Format getFormat() {
        return new RPFTOCFormat();
    }
   
    /**
     * Override coverage name because of the default structure of the folders. Very often XXX/RPF/A.TOC
     * The parent directory is a better alternative
     * @return the coverage name
     */
    public String getCoverageName() {
      /*
      * Override coverage name because of the default structure of the folders. Very often XXX/RPF/A.TOC
        * The coverage name would be always A. The parent directory is a better alternative.
        */
      String retVal = "RPFTOC Coverage";
      if (!super.getCoverageName().equals("A")){
        retVal = super.getCoverageName();
      }
      else
      {
        retVal = "RPFTOC Coverage";
          File oFile = super.getInputFile().getParentFile();
        while (oFile != null)
        {
          String sName = oFile.getName();
          if (!sName.toUpperCase().equals("RPF"))
          {
            retVal = sName;
            break;
          }
          else
          {
            oFile = oFile.getParentFile();
          }
        }
      }
        return retVal;
    }
   
   
}
TOP

Related Classes of org.geotools.coverageio.gdal.rpftoc.RPFTOCReader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.