Package org.geotools.coverage.io.impl

Source Code of org.geotools.coverage.io.impl.DefaultCoverageAccess

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 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.coverage.io.impl;

import java.io.IOException;
import java.io.Serializable;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.geotools.coverage.io.CoverageAccess;
import org.geotools.coverage.io.CoverageSource;
import org.geotools.coverage.io.CoverageStore;
import org.geotools.coverage.io.Driver;
import org.geotools.coverage.io.metadata.MetadataNode;
import org.geotools.data.Parameter;
import org.geotools.data.ServiceInfo;
import org.geotools.factory.Hints;
import org.geotools.util.NullProgressListener;
import org.opengis.feature.type.Name;
import org.opengis.util.ProgressListener;

/**
* Default implementation of {@link CoverageAccess}.
*
* @author Simone Giannecchini, GeoSolutions SAS
*
* @source $URL$
*/
public class DefaultCoverageAccess implements CoverageAccess {

    /**
     * Driver used to create this CoverageAccess.
     */
    protected final Driver driver;
   
    protected final EnumSet<AccessType> allowedAccessTypes;
  
    protected final Map<String, Parameter< ? >> accessParameters=new HashMap<String, Parameter<?>>();

    protected final Map<String, Serializable> connectionParameters=new HashMap<String, Serializable>();
   
    protected List<Name> names = null;

    public DefaultCoverageAccess(
            Driver driver,EnumSet<AccessType> allowedAccessTypes,
            Map<String, Parameter<?>> accessParams,
            Map<String, Serializable> connectionParameters) {
        this.driver = driver;
        this.allowedAccessTypes = allowedAccessTypes.clone();
        this.accessParameters.putAll(accessParams);
        if (connectionParameters != null) {
            this.connectionParameters.putAll(connectionParameters);
        }
    }
   
    @Override
    public CoverageSource access(Name name, Map<String, Serializable> params,
            AccessType accessType, Hints hints, ProgressListener listener) throws IOException {
        throw new UnsupportedOperationException("Operation not implemented");
    }
   
    @Override
    public boolean canCreate(Name name, Map<String, Serializable> params, Hints hints,
            ProgressListener listener) throws IOException {
        return false;
    }

    public boolean canDelete(Name name, Map<String, Serializable> params, Hints hints)
            throws IOException {
        return false;
    }

    @Override
    public CoverageStore create(Name name, Map<String, Serializable> params, Hints hints,
            ProgressListener listener) throws IOException {
        throw new UnsupportedOperationException("Operation not implemented");
    }

    @Override
    public boolean delete(Name name, Map<String, Serializable> params, Hints hints)
            throws IOException {
        return false;
    }

    @Override
    public Map<String, Parameter<?>> getAccessParameterInfo(AccessType accessType) {
        return Collections.unmodifiableMap(accessParameters);
    }

    @Override
    public Map<String, Serializable> getConnectParameters() {
        return Collections.unmodifiableMap(connectionParameters);
    }

    @Override
    public int getCoveragesNumber(ProgressListener listener) {
        if (listener == null)
            listener = new NullProgressListener();
        listener.started();
        try {
            return names.size();
        } finally {
            listener.complete();
        }

    }

    @Override
    public ServiceInfo getInfo(ProgressListener listener) {
        throw new UnsupportedOperationException("Operation not implemented");
    }

    @Override
    public List<Name> getNames(ProgressListener listener) {
        if (listener == null){
            listener = new NullProgressListener();
        }
        listener.started();
        try {
            return Collections.unmodifiableList(names);
        } finally {
            listener.complete();
        }
    }

    @Override
    public MetadataNode getStorageMetadata(String metadataDomain) {
        throw new UnsupportedOperationException("Operation not implemented");
    }

    @Override
    public Set<String> getStorageMetadataDomains() {
        return Collections.emptySet();
    }

    @Override
    public Set<AccessType> getSupportedAccessTypes() {
        return allowedAccessTypes;
    }

    @Override
    public boolean isCreateSupported() {
        return false;
    }

    @Override
    public boolean isDeleteSupported() {
        return false;
    }

    @Override
    public Driver getDriver() {
        return driver;
    }

    @Override
    public void dispose() {
    }

}
TOP

Related Classes of org.geotools.coverage.io.impl.DefaultCoverageAccess

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.