Package org.geoserver.config.hibernate

Source Code of org.geoserver.config.hibernate.HibServiceTranslator

/*
*/

package org.geoserver.config.hibernate;

import java.util.logging.Logger;

import org.geoserver.config.ServiceInfo;
import org.geoserver.config.impl.ServiceInfoImpl;
import org.geoserver.hibernate.Hibernable;
import org.geoserver.services.hibernate.beans.GMLInfoImplHb;
import org.geoserver.wcs.WCSInfoImpl;
import org.geoserver.wfs.GMLInfo;
import org.geoserver.wfs.WFSInfoImpl;
import org.geoserver.wfs.WFSInfo.Version;
import org.geoserver.wms.WMSInfoImpl;
import org.geotools.util.logging.Logging;

/**
*
* @author ETj <etj at geo-solutions.it>
*/
public class HibServiceTranslator {
    private static final Logger LOGGER = Logging.getLogger(HibServiceTranslator.class);

    private HibGeoServerFactoryImpl factory;

    public HibServiceTranslator(HibGeoServerFactoryImpl factory) {
        this.factory = factory;
    }

    public ServiceInfoImpl translate(ServiceInfo service) {
        if (service instanceof WCSInfoImpl)
            return translateWCS((WCSInfoImpl) service);
        else if (service instanceof WFSInfoImpl)
            return translateWFS((WFSInfoImpl) service);
        else if (service instanceof WMSInfoImpl)
            return translateWMS((WMSInfoImpl) service);
        else if (service instanceof ServiceInfoImpl)
            return translateSI((ServiceInfoImpl) service);
        else if (service instanceof Hibernable) {
            LOGGER.warning("Will not translate a " + service.getClass().getName());
            return (ServiceInfoImpl) service;
        } else {
            LOGGER.warning("Can't translate a " + service.getClass().getName());
            throw new IllegalArgumentException("Can't translate a " + service.getClass().getName());
        }
    }

    private void copySI(ServiceInfoImpl src, ServiceInfoImpl dest) {
        dest.setId(src.getId());
        dest.setGeoServer(src.getGeoServer());
        dest.setEnabled(src.isEnabled());
        dest.setName(src.getName());
        dest.setTitle(src.getTitle());
        dest.setMaintainer(src.getMaintainer());
        dest.setAbstract(src.getAbstract());
        dest.setAccessConstraints(src.getAccessConstraints());
        dest.setFees(src.getFees());
        dest.setMetadataLink(src.getMetadataLink());
        dest.setCiteCompliant(src.isCiteCompliant());
        dest.setOnlineResource(src.getOnlineResource());
        dest.setSchemaBaseURL(src.getSchemaBaseURL());
        dest.setVerbose(src.isVerbose());
        dest.setOutputStrategy(src.getOutputStrategy());
        dest.setMetadata(src.getMetadata());

        for (Object version : src.getVersions())
            dest.getVersions().add(version);
        for (Object o : src.getKeywords())
            dest.getKeywords().add(o);
        for (Object o : src.getExceptionFormats())
            dest.getExceptionFormats().add(o);

        // ETJ TODO
        // for (Map.Entry entry : (Set<Map.Entry>)src.getMetadata().entrySet() )
        // dest.getMetadata().put(entry.getKey(), entry.getValue());
        // for (Map.Entry entry : (Set<Map.Entry>)src.getClientProperties().entrySet() )
        // dest.getClientProperties().put(entry.getKey(), entry.getValue());
    }

    private ServiceInfoImpl translateSI(ServiceInfoImpl serviceInfo) {
        ServiceInfoImpl ret = (ServiceInfoImpl) factory.createService();
        copySI(serviceInfo, ret);
        return ret;
    }

    private ServiceInfoImpl translateWCS(WCSInfoImpl wcs) {
        WCSInfoImpl ret = new WCSInfoImpl();
        copySI(wcs, ret);
        ret.setGMLPrefixing(wcs.isGMLPrefixing());
        return ret;
    }

    private ServiceInfoImpl translateWFS(WFSInfoImpl wfs) {
        WFSInfoImpl ret = new WFSInfoImpl();
        copySI(wfs, ret);
        ret.setFeatureBounding(wfs.isFeatureBounding());
        ret.setMaxFeatures(wfs.getMaxFeatures());
        ret.setServiceLevel(wfs.getServiceLevel());

        for (Version version : wfs.getGML().keySet()) {
            GMLInfo info = wfs.getGML().get(version);
            GMLInfoImplHb infohb = translateGMLInfo(info);
            ret.getGML().put(version, infohb);
        }

        return ret;
    }

    private GMLInfoImplHb translateGMLInfo(GMLInfo info) {
        GMLInfoImplHb ret = new GMLInfoImplHb();
        ret.setSrsNameStyle(info.getSrsNameStyle());
        return ret;
    }

    private ServiceInfoImpl translateWMS(WMSInfoImpl wms) {
        WMSInfoImpl ret = new WMSInfoImpl();
        copySI(wms, ret);

        ret.setMaxRequestMemory(wms.getMaxRequestMemory());
        ret.setWatermark(wms.getWatermark());
        ret.setInterpolation(wms.getInterpolation());
        for (String srs : wms.getSRS()) {
            ret.getSRS().add(srs);
        }
        ret.setMaxBuffer(wms.getMaxBuffer());
        ret.setMaxRenderingTime(wms.getMaxRenderingTime());
        ret.setMaxRenderingErrors(wms.getMaxRenderingErrors());

        return ret;
    }

//    private WatermarkInfoImplHb translate(WatermarkInfo watermark) {
//        if (watermark == null)
//            return null;
//
//        WatermarkInfoImplHb ret = new WatermarkInfoImplHb();
//        // ret.setId(watermark.get);
//        ret.setEnabled(watermark.isEnabled());
//        ret.setPosition(watermark.getPosition());
//        ret.setTransparency(watermark.getTransparency());
//        ret.setURL(watermark.getURL());
//
//        return ret;
//    }

}
TOP

Related Classes of org.geoserver.config.hibernate.HibServiceTranslator

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.