001 //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/model/coverage/grid/GridCoverage.java $ 002 /*---------------------------------------------------------------------------- 003 This file originated as a part of GeoAPI. 004 005 GeoAPI is free software. GeoAPI may be used, modified and 006 redistributed by anyone for any purpose requring only maintaining the 007 copyright and license terms on the source code and derivative files. 008 See the OGC legal page for details. 009 010 The copyright to the GeoAPI interfaces is held by the Open Geospatial 011 Consortium, see http://www.opengeospatial.org/ogc/legal 012 ----------------------------------------------------------------------------*/ 013 package org.deegree.model.coverage.grid; 014 015 import org.deegree.model.coverage.Coverage; 016 017 /** 018 * Represent the basic implementation which provides access to grid coverage data. A 019 * <code>GridCoverage</code> implementation may provide the ability to update grid values. 020 * 021 * @UML abstract CV_GridCoverage 022 * @author <A HREF="http://www.opengis.org">OpenGIS® consortium</A> 023 * @version <A HREF="http://www.opengis.org/docs/01-004.pdf">Grid Coverage specification 1.0</A> 024 * 025 * @author last edited by: $Author: mschneider $ 026 * 027 * @version $Revision: 20326 $, $Date: 2009-10-22 18:41:56 +0200 (Do, 22 Okt 2009) $ 028 * 029 * @see java.awt.image.RenderedImage 030 * @see javax.media.jai.PixelAccessor 031 */ 032 public interface GridCoverage extends Coverage { 033 /** 034 * Returns <code>true</code> if grid data can be edited. 035 * 036 * @return <code>true</code> if grid data can be edited. 037 * @UML mandatory dataEditable 038 */ 039 boolean isDataEditable(); 040 041 /** 042 * Information for the grid coverage geometry. Grid geometry includes the valid range of grid 043 * coordinates and the georeferencing. 044 * 045 * @return The information for the grid coverage geometry. 046 * @UML mandatory gridGeometry 047 */ 048 GridGeometry getGridGeometry(); 049 050 /** 051 * Returns the source data for a grid coverage. If the <code>GridCoverage</code> was produced 052 * from an underlying dataset (by {@link GridCoverageReader#read read(...)} for instance) the 053 * getNumSources() method should returns zero, and this method should not be called. 054 * 055 * If the <code>GridCoverage</code> was produced using {link 056 * org.opengis.coverage.processing.GridCoverageProcessor} then it should return the source grid 057 * coverage of the one used as input to <code>GridCoverageProcessor</code>. In general the 058 * <code>getSource(i)</code> method is intended to return the original 059 * <code>GridCoverage</code> on which it depends. 060 * 061 * This is intended to allow applications to establish what <code>GridCoverage</code>s will 062 * be affected when others are updated, as well as to trace back to the "raw data". 063 * 064 * @param sourceDataIndex 065 * Source grid coverage index. Indexes start at 0. 066 * @return The source data for a grid coverage. 067 * @throws IndexOutOfBoundsException 068 * if <code>sourceDataIndex</code> is out of bounds. 069 * @UML operation Coverage.getSource 070 */ 071 Coverage getSource( int sourceDataIndex ) 072 throws IndexOutOfBoundsException; 073 074 }