All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geotools.gce.grassraster.metadata.GrassBinaryImageMetadataFormat Maven / Gradle / Ivy

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2006-2011, 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.gce.grassraster.metadata;

import javax.imageio.ImageTypeSpecifier;
import javax.imageio.metadata.IIOMetadataFormat;
import javax.imageio.metadata.IIOMetadataFormatImpl;
import org.geotools.gce.grassraster.JGrassRegion;
import org.geotools.gce.grassraster.core.GrassBinaryRasterReadHandler;

/**
 * Defines the structure of metadata documents describing Grass raster image metadata.
 *
 * @author Andrea Antonello (www.hydrologis.com)
 * @since 3.0
 * @see GrassBinaryImageMetadata
 * @see GrassBinaryRasterReadHandler
 * @see JGrassRegion
 */
public final class GrassBinaryImageMetadataFormat extends IIOMetadataFormatImpl {

    /** The instance of {@linkplain GrassBinaryImageMetadataFormat}. */
    private static IIOMetadataFormat instance = null;

    /** Default constructor. */
    protected GrassBinaryImageMetadataFormat() {
        super(
                GrassBinaryImageMetadata.nativeMetadataFormatName,
                IIOMetadataFormatImpl.CHILD_POLICY_ALL);

        // root -> EnvelopeDescriptor
        addElement(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.nativeMetadataFormatName,
                CHILD_POLICY_EMPTY);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.NORTH,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.SOUTH,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.EAST,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.WEST,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.XRES,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.YRES,
                DATATYPE_DOUBLE,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.NO_DATA,
                DATATYPE_DOUBLE,
                false,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.NROWS,
                DATATYPE_INTEGER,
                true,
                null);
        addAttribute(
                GrassBinaryImageMetadata.REGION_DESCRIPTOR,
                GrassBinaryImageMetadata.NCOLS,
                DATATYPE_INTEGER,
                true,
                null);

        // root-> ColorrulesDescriptor
        addElement(
                GrassBinaryImageMetadata.COLOR_RULES_DESCRIPTOR,
                GrassBinaryImageMetadata.nativeMetadataFormatName,
                CHILD_POLICY_EMPTY);
        addAttribute(
                GrassBinaryImageMetadata.COLOR_RULES_DESCRIPTOR,
                GrassBinaryImageMetadata.COLOR_RULES_DESCRIPTOR,
                DATATYPE_STRING,
                false,
                null);

        // root-> CategoriesDescriptor
        addElement(
                GrassBinaryImageMetadata.CATEGORIES_DESCRIPTOR,
                GrassBinaryImageMetadata.nativeMetadataFormatName,
                CHILD_POLICY_EMPTY);
        addAttribute(
                GrassBinaryImageMetadata.CATEGORIES_DESCRIPTOR,
                GrassBinaryImageMetadata.CATEGORIES_DESCRIPTOR,
                DATATYPE_STRING,
                false,
                null);
    }

    /**
     * Returns an instance of the {@link GrassBinaryImageMetadataFormat} class.
     *
     * 

One instance is enough, therefore it is built as a singleton. * * @return an instance of the {@link GrassBinaryImageMetadataFormat} class. */ public static synchronized IIOMetadataFormat getInstance() { if (instance == null) instance = new GrassBinaryImageMetadataFormat(); return instance; } public boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType) { return true; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy