/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.cluster.configuration;
import java.io.IOException;
/**
*
* class to store and load configuration for {@link ReadOnlyGeoServerLoader}
*
* @author carlo cancellieri - GeoSolutions SAS
*
*/
final public class ReadOnlyConfiguration implements JMSConfigurationExt {
public static final String READ_ONLY_KEY = "readOnly";
public static final String DEFAULT_READ_ONLY_VALUE = ReadOnlyConfigurationStatus.disabled
.toString();
public static enum ReadOnlyConfigurationStatus {
enabled, disabled;
}
@Override
public void initDefaults(JMSConfiguration config) throws IOException {
config.putConfiguration(READ_ONLY_KEY, DEFAULT_READ_ONLY_VALUE);
}
@Override
public boolean override(JMSConfiguration config) throws IOException {
return config.override(READ_ONLY_KEY, DEFAULT_READ_ONLY_VALUE);
}
public static boolean isReadOnly(JMSConfiguration config){
Object statusObj = config
.getConfiguration(ReadOnlyConfiguration.READ_ONLY_KEY);
if (statusObj == null) {
statusObj = ReadOnlyConfiguration.DEFAULT_READ_ONLY_VALUE;
}
return ReadOnlyConfigurationStatus.valueOf(statusObj.toString())
.equals(ReadOnlyConfigurationStatus.enabled);
}
}