org.geoserver.security.config.BaseSecurityNamedServiceConfig.java Source code

Java tutorial

Introduction

Here is the source code for org.geoserver.security.config.BaseSecurityNamedServiceConfig.java

Source

/* (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;
    }

}