Package org.geotools.gce.imagemosaic.catalogbuilder

Source Code of org.geotools.gce.imagemosaic.catalogbuilder.MosaicBeanBuilder

/*
*    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.gce.imagemosaic.catalogbuilder;

import java.awt.image.ColorModel;
import java.awt.image.IndexColorModel;
import java.awt.image.SampleModel;
import java.util.Arrays;

import org.geotools.gce.imagemosaic.MosaicConfigurationBean;
import org.geotools.gce.imagemosaic.catalog.CatalogConfigurationBean;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

/**
* Simple builder which builds the configuration bean of a mosaic configuration.
*
* @author Daniele Romagnoli, GeoSolutions SAS
*
*/
public class MosaicBeanBuilder {

    private MosaicConfigurationBean bean;
   
    /**
     * Default constructor
     */
    public MosaicBeanBuilder() {

    }

    /**
     * <code>true</code> if we need to expand to RGB(A) the single tiles in case they use a different {@link IndexColorModel}.
     */
    private boolean expandToRGB;

    /**
     * <code>true</code> if we need to look for PAM auxiliary metadata xml files.
     */
    private boolean checkAuxiliaryMetadata;

    /** OverviewLevel levels */
    private double[][] levels;

    /** name for the mosaic. */
    private String name;

    /** number of levels */
    private int levelsNum;

    /** time attribute name. <code>null</code> if absent. */
    private String timeAttribute;

    /** elevation attribute name. <code>null</code> if absent. */
    private String elevationAttribute;

    /** additional domain attributes names. <code>null</code> if absent. */
    private String additionalDomainAttributes;

    private String auxiliaryFilePath;
   
    /**
     * mosaic's dummy sample model useful to store dataType and number of bands. All the other fields shouldn't be queried since they are meaningless
     * for the whole mosaic (width, height, ...)
     */
    private SampleModel sampleModel;
   
    private ColorModel colorModel;
   
    private byte[][] palette = null;
   
    private CoordinateReferenceSystem crs = null;

//    /** Imposed envelope for this mosaic. If not present we need to compute from catalogue. */
//    private ReferencedEnvelope envelope;

    private CatalogConfigurationBean catalogConfigurationBean;

//    public ReferencedEnvelope getEnvelope() {
//        return envelope;
//    }
//
//    public void setEnvelope(ReferencedEnvelope envelope) {
//        this.envelope = envelope;
//    }

    public SampleModel getSampleModel() {
        return sampleModel;
    }

    public void setSampleModel(SampleModel sampleModel) {
        this.sampleModel = sampleModel;
        bean = null;
    }

    public ColorModel getColorModel() {
        return colorModel;
    }

    public void setColorModel(ColorModel colorModel) {
        this.colorModel = colorModel;
        bean = null;
    }

    public byte[][] getPalette() {
        return palette;
    }

    public void setPalette(byte[][] palette) {
        this.palette = palette;
        bean = null;
    }

    public String getElevationAttribute() {
        return elevationAttribute;
    }

    public void setElevationAttribute(final String elevationAttribute) {
        this.elevationAttribute = elevationAttribute;
        bean = null;
    }

    public String getTimeAttribute() {
        return timeAttribute;
    }

    public void setTimeAttribute(final String timeAttribute) {
        this.timeAttribute = timeAttribute;
        bean = null;
    }

    public String getAdditionalDomainAttributes() {
        return additionalDomainAttributes;
    }

    public void setAdditionalDomainAttributes(String additionalDomainAttributes) {
        this.additionalDomainAttributes = additionalDomainAttributes;
        bean = null;
    }

    public boolean isExpandToRGB() {
        return expandToRGB;
    }

    public void setExpandToRGB(final boolean expandToRGB) {
        this.expandToRGB = expandToRGB;
        bean = null;
    }

    public boolean isCheckAuxiliaryMetadata() {
        return checkAuxiliaryMetadata;
    }

    public void setCheckAuxiliaryMetadata(boolean checkAuxiliaryMetadata) {
        this.checkAuxiliaryMetadata = checkAuxiliaryMetadata;
    }

    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
        bean = null;
    }

    public int getLevelsNum() {
        return levelsNum;
    }

    public void setLevelsNum(final int levelsNum) {
        this.levelsNum = levelsNum;
        bean = null;
    }

    public double[][] getLevels() {
        return levels.clone();
    }

    public void setLevels(final double[][] levels) {
        this.levels = levels.clone();
        bean = null;
    }

    public CoordinateReferenceSystem getCrs() {
        return crs;
    }

    public void setCrs(CoordinateReferenceSystem crs) {
        this.crs = crs;
        bean = null;
    }

    public CatalogConfigurationBean getCatalogConfigurationBean() {
        return catalogConfigurationBean;
    }

    public void setCatalogConfigurationBean(CatalogConfigurationBean catalogConfigurationBean) {
        this.catalogConfigurationBean = catalogConfigurationBean;
        bean = null;
    }

    public String getAuxiliaryFilePath() {
        return auxiliaryFilePath;
    }

    public void setAuxiliaryFilePath(String auxiliaryFilePath) {
        this.auxiliaryFilePath = auxiliaryFilePath;
        bean = null;
    }

    @Override
    public String toString() {
        return "MosaicConfigurationBean [expandToRGB=" + expandToRGB + ", levels="
                + Arrays.toString(levels) + ", name=" + name + ", levelsNum=" + levelsNum
                + ", timeAttribute=" + timeAttribute + ", elevationAttribute=" + elevationAttribute
                + ",sampleModel=" + sampleModel + "]";
    }
   
    public MosaicConfigurationBean getMosaicConfigurationBean() {
        if (bean == null) {
            bean = new MosaicConfigurationBean();
            bean.setSampleModel(sampleModel);
            bean.setColorModel(colorModel);
            bean.setPalette(palette);
            bean.setCrs(crs);
            bean.setCatalogConfigurationBean(catalogConfigurationBean);
            bean.setTimeAttribute(timeAttribute);
            bean.setElevationAttribute(elevationAttribute);
            bean.setAdditionalDomainAttributes(additionalDomainAttributes);
            bean.setExpandToRGB(expandToRGB);
            bean.setLevels(levels);
            bean.setLevelsNum(levelsNum);
            bean.setName(name);
            bean.setAuxiliaryFilePath(auxiliaryFilePath);
            bean.setCheckAuxiliaryMetadata(checkAuxiliaryMetadata);
        }
        return bean;
    }
}
TOP

Related Classes of org.geotools.gce.imagemosaic.catalogbuilder.MosaicBeanBuilder

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.