a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: ConfigurationInstance.java,v 1.3 2008/06/25 05:47:25 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.plugin.configuration;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Map;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Set;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ConfigurationInstance</code> is the interface that provides the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * operations on service configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic interface ConfigurationInstance {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Initializer.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param componentName Name of the components, e.g. SAML1, SAML2, ID-FF
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param session FM Session object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not initialize the instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void init(String componentName, Object session)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns Configurations.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm the name of organization at which the configuration resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param configName configuration instance name. e.g. "/sp".
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The configName could be null or empty string, which means the default
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration for this components.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Map of key/value pairs, key is the attribute name, value is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a Set of attribute values or null if service configuration doesn't
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * exist.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if an error occurred while getting
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * service configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Map getConfiguration(String realm, String configName)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets Configurations.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm the name of organization at which the configuration resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param configName configuration instance name. e.g. "/sp"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The configName could be null or empty string, which means the default
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration for this components.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param avPairs Map of key/value pairs to be set in the service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration, key is the attribute name, value is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a Set of attribute values.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not set service configuration
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * or service configuration doesn't exist.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setConfiguration(String realm,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String configName, Map avPairs)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException,UnsupportedOperationException ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates Configurations.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm the name of organization at which the configuration resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param configName service configuration name. e.g. "/sp"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The configName could be null or empty string, which means the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * default configuration for this components.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param avPairs Map of key/value pairs to be set in the service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration, key is the attribute name, value is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a Set of attribute values.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not create service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void createConfiguration(String realm,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String configName, Map avPairs)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException, UnsupportedOperationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Deletes Configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm the name of organization at which the configuration resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param configName service configuration name. e.g. "/sp"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The configName could be null or empty string, which means the default
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration for this components.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param attributes A set of attributes to be deleted from the Service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration. If the value is null or empty, deletes all service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not delete service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void deleteConfiguration(String realm,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String configName, Set attributes)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException, UnsupportedOperationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns all service configuration name for this components.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm the name of organization at which the configuration resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Set of service configuration names. Return null if there
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is no service configuration for this component, return empty set
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * if there is only default configuration instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not get all service
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * configuration names.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Set getAllConfigurationNames(String realm)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException, UnsupportedOperationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Registers for changes to the component's configuration. The object will
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * be called when configuration for this component is changed.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the registered id for this listener instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not register the listener.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String addListener(ConfigurationListener listener)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException, UnsupportedOperationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Unregisters the listener from the component for the given
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * listener ID. The ID was issued when the listener was registered.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param listenerID the returned id when the listener was registered.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception ConfigurationException if could not register the listener.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception UnsupportedOperationException if this operation is not
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * supported by the implementation.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void removeListener(String listenerID)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws ConfigurationException, UnsupportedOperationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }