/* (c) 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.gwc.wmts;
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;
public class WMTSXStreamLoader extends XStreamServiceLoader<WMTSInfo> {
public WMTSXStreamLoader(GeoServerResourceLoader resourceLoader) {
super(resourceLoader, "wmts");
}
public Class<WMTSInfo> getServiceClass() {
return WMTSInfo.class;
}
protected WMTSInfo createServiceFromScratch(GeoServer gs) {
WMTSInfoImpl wmts = new WMTSInfoImpl();
wmts.setName("WMTS");
return wmts;
}
@Override
public void initXStreamPersister(XStreamPersister xp, GeoServer gs) {
super.initXStreamPersister(xp, gs);
xp.getXStream().alias("wmts", WMTSInfo.class, WMTSInfoImpl.class);
}
@Override
protected WMTSInfo initialize(WMTSInfo service) {
service = super.initialize(service);
if (service.getMaintainer() == null) {
service.setMaintainer("http://geoserver.org/com");
}
if (service.getOnlineResource() == null) {
service.setOnlineResource("http://geoserver.org");
}
if (service.getTitle() == null) {
service.setTitle("GeoServer Web Map Tile Service");
}
if (service.getAbstract() == null) {
service.setAbstract("A compliant implementation of WMTS service.");
}
if (service.getFees() == null) {
service.setFees("NONE");
}
if (service.getAccessConstraints() == null) {
service.setAccessConstraints("NONE");
}
if (service.getVersions() == null || service.getVersions().isEmpty()) {
service.getVersions().add(new Version("1.0.0"));
}
return service;
}
}