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

org.geoserver.config.util.LegacyServiceLoader Maven / Gradle / Ivy

The newest version!
package org.geoserver.config.util;

import java.util.List;
import java.util.Map;

import org.geoserver.catalog.MetadataLinkInfo;
import org.geoserver.config.GeoServer;
import org.geoserver.config.ServiceInfo;
import org.geoserver.config.ServiceLoader;

/**
 * Base class for service loaders loading from the legacy service.xml file.
 * 

* *

* * @author Justin Deoliveira, The Open Planning Project * */ public abstract class LegacyServiceLoader implements ServiceLoader { /** * reader pointing to services.xml */ LegacyServicesReader reader; /** * Sets the legacy services.xml reader. *

* This method is called by the GeoServer startup, it should not be called * by client code. *

*/ public void setReader( LegacyServicesReader reader ) { this.reader = reader; } /** * Loads the service. *

* This method calls through to {@link #load(LegacyServicesReader, GeoServer)} *

*/ public final ServiceInfo load(GeoServer gs) throws Exception { return load( reader, gs ); } /** * Creates the service configuration object. *

* Subclasses implementing this method can use the {@link #readCommon(ServiceInfo, Map, GeoServer)} * method to read those attributes common to all services. *

* * @param reader The services.xml reader. * */ abstract public ServiceInfo load( LegacyServicesReader reader, GeoServer geoServer ) throws Exception; /** * Reads all the common attributes from the service info class. *

* This method is intended to be called by subclasses after creating an * instance of ServiceInfo. Example: *

     *   // read properties
     *   Map props = reader.wfs();
     *   
     *   // create config object
     *   WFSInfo wfs = new WFSInfoImpl();
     *   
     *   //load common properties
     *   load( wfs, reader );
     * 
     *   //load wfs specific properties
     *   wfs.setServiceLevel( map.get( "serviceLevel") );
     *   ...
     * 
*

*/ protected void readCommon( ServiceInfo service, Map properties, GeoServer gs) throws Exception { service.setEnabled( (Boolean) properties.get( "enabled") ); service.setName( (String) properties.get( "name") ); service.setTitle( (String) properties.get( "title") ); service.setAbstract( (String) properties.get( "abstract") ); Map metadataLink = (Map) properties.get("metadataLink"); if ( metadataLink != null ) { MetadataLinkInfo ml = gs.getCatalog().getFactory().createMetadataLink(); ml.setAbout( (String) metadataLink.get( "about" ) ); ml.setMetadataType( (String) metadataLink.get( "metadataType" ) ); ml.setType( (String) metadataLink.get( "type" ) ); service.setMetadataLink( ml ); } List keywords = (List) properties.get( "keywords" ); if ( keywords != null ) { service.getKeywords().addAll( keywords ); } service.setOnlineResource( (String) properties.get( "onlineResource" ) ); service.setFees( (String) properties.get( "fees" ) ); service.setAccessConstraints( (String) properties.get( "accessConstraints" ) ); service.setCiteCompliant((Boolean)properties.get( "citeConformanceHacks")); service.setMaintainer((String)properties.get( "maintainer" ) ); service.setSchemaBaseURL((String)properties.get("SchemaBaseUrl")); } public void save(ServiceInfo service, GeoServer gs) throws Exception { //do nothing, saving implemented elsewhere } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy