Package org.geoserver.wms.eo.web

Source Code of org.geoserver.wms.eo.web.OutlineSourceModel

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wms.eo.web;

import java.util.ArrayList;
import java.util.List;

import org.apache.wicket.model.IModel;
import org.geoserver.catalog.CoverageInfo;
import org.geoserver.catalog.CoverageStoreInfo;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.catalog.PublishedInfo;
import org.geotools.gce.imagemosaic.ImageMosaicFormat;

/**
* A model that returns the layer group entries backed by an image mosaic, suitable for creating
* a vector outline layer
*
* @author Andrea Aime - GeoSolutions
*/
public class OutlineSourceModel implements IModel<List<? extends EoLayerGroupEntry>> {
    private static final long serialVersionUID = -5194537044901789111L;

    static final String IMAGE_MOSAIC_FORMAT_NAME = new ImageMosaicFormat().getName();

    private List<EoLayerGroupEntry> items;

    public OutlineSourceModel(List<EoLayerGroupEntry> items) {
        this.items = items;
    }

    @Override
    public void detach() {
        // nothing to do I believe?

    }

    @Override
    public List<? extends EoLayerGroupEntry> getObject() {
        List<EoLayerGroupEntry> result = new ArrayList<EoLayerGroupEntry>();

        // search for entries backed by a image mosaic
        for (EoLayerGroupEntry entry : items) {
            PublishedInfo pi = entry.getLayer();
            if (pi instanceof LayerInfo) {
                LayerInfo li = (LayerInfo) pi;
                if (li.getResource() instanceof CoverageInfo) {
                    CoverageStoreInfo store = (CoverageStoreInfo) li.getResource().getStore();
                    if (IMAGE_MOSAIC_FORMAT_NAME.equals(store.getType())) {
                        result.add(entry);
                    }
                }
            }
        }

        return result;
    }

    @Override
    public void setObject(List<? extends EoLayerGroupEntry> object) {
        throw new UnsupportedOperationException(
                "The list of image mosaic entries cannot be modified");
    }

}
TOP

Related Classes of org.geoserver.wms.eo.web.OutlineSourceModel

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.