/* (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.security.config;
import org.apache.commons.lang.SerializationUtils;
import org.geoserver.platform.GeoServerEnvironment;
import org.geoserver.platform.GeoServerExtensions;
/**
* Base class for named security service configuration objects.
*
* @author christian
*/
public class BaseSecurityNamedServiceConfig implements SecurityNamedServiceConfig {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private String className;
public BaseSecurityNamedServiceConfig() {
}
public BaseSecurityNamedServiceConfig(BaseSecurityNamedServiceConfig other) {
name = other.getName();
className = other.getClassName();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* @return the name of the service
*/
public String getName() {
return name;
}
/**
* sets the name for a service
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the service class name
*/
public String getClassName() {
return className;
}
/**
* The class name of the service to be constructed
* The class must have a constructor with a string
* argument, specifying the name of the service
*
* @param className
*/
public void setClassName(String className) {
this.className = className;
}
/**
* Does nothing, subclasses may override.
*/
@Override
public void initBeforeSave() {
}
@Override
public String toString() {
return "BaseSecurityNamedServiceConfig [name=" + name + ", className="
+ className + ", id=" + id + "]";
}
@Override
public SecurityConfig clone(boolean allowEnvParametrization) {
final GeoServerEnvironment gsEnvironment = GeoServerExtensions.bean(GeoServerEnvironment.class);
BaseSecurityNamedServiceConfig target = (BaseSecurityNamedServiceConfig) SerializationUtils.clone(this);
if (target != null) {
if (allowEnvParametrization && gsEnvironment != null
&& GeoServerEnvironment.ALLOW_ENV_PARAMETRIZATION) {
target.setName((String) gsEnvironment.resolveValue(name));
}
}
return target;
}
}