package org.geoserver.wms;
import java.util.ArrayList;
import org.geoserver.config.GeoServer;
import org.geoserver.config.util.XStreamPersister;
import org.geoserver.config.util.XStreamServiceLoader;
import org.geoserver.platform.GeoServerResourceLoader;
import org.geotools.util.Version;
/**
* Loads and persist the {@link WMSInfo} object to and from xstream
* persistence.
*
* @author Justin Deoliveira, The Open Planning Project
*
*/
public class WMSXStreamLoader extends XStreamServiceLoader<WMSInfo> {
public WMSXStreamLoader(GeoServerResourceLoader resourceLoader) {
super(resourceLoader, "wms");
}
public Class<WMSInfo> getServiceClass() {
return WMSInfo.class;
}
protected WMSInfo createServiceFromScratch(GeoServer gs) {
return new WMSInfoImpl();
}
@Override
protected void initXStreamPersister(XStreamPersister xp, GeoServer gs) {
xp.getXStream().alias( "wms", WMSInfo.class, WMSInfoImpl.class );
}
@Override
protected WMSInfo initialize(WMSInfo service) {
if ( service.getVersions() == null ) {
((WMSInfoImpl)service).setVersions( new ArrayList() );
}
if ( service.getVersions().isEmpty() ) {
service.getVersions().add( new Version( "1.1.1" ) );
}
if(service.getSRS() == null) {
((WMSInfoImpl)service).setSRS( new ArrayList<String>() );
}
return service;
}
}