001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008 Sun Microsystems, Inc.
015 */
016package org.forgerock.opendj.server.config.server;
017
018
019
020import java.util.SortedSet;
021import org.forgerock.opendj.config.server.ConfigurationChangeListener;
022import org.forgerock.opendj.server.config.meta.PluginCfgDefn.PluginType;
023
024
025
026/**
027 * A server-side interface for querying Attribute Cleanup Plugin
028 * settings.
029 * <p>
030 * A pre-parse plugin which can be used to remove and rename
031 * attributes in ADD and MODIFY requests before being processed.
032 */
033public interface AttributeCleanupPluginCfg extends PluginCfg {
034
035  /**
036   * Gets the configuration class associated with this Attribute Cleanup Plugin.
037   *
038   * @return Returns the configuration class associated with this Attribute Cleanup Plugin.
039   */
040  Class<? extends AttributeCleanupPluginCfg> configurationClass();
041
042
043
044  /**
045   * Register to be notified when this Attribute Cleanup Plugin is changed.
046   *
047   * @param listener
048   *          The Attribute Cleanup Plugin configuration change listener.
049   */
050  void addAttributeCleanupChangeListener(ConfigurationChangeListener<AttributeCleanupPluginCfg> listener);
051
052
053
054  /**
055   * Deregister an existing Attribute Cleanup Plugin configuration change listener.
056   *
057   * @param listener
058   *          The Attribute Cleanup Plugin configuration change listener.
059   */
060  void removeAttributeCleanupChangeListener(ConfigurationChangeListener<AttributeCleanupPluginCfg> listener);
061
062
063
064  /**
065   * Gets the "invoke-for-internal-operations" property.
066   * <p>
067   * Indicates whether the plug-in should be invoked for internal
068   * operations.
069   * <p>
070   * Any plug-in that can be invoked for internal operations must
071   * ensure that it does not create any new internal operatons that can
072   * cause the same plug-in to be re-invoked.
073   *
074   * @return Returns the value of the "invoke-for-internal-operations" property.
075   */
076  boolean isInvokeForInternalOperations();
077
078
079
080  /**
081   * Gets the "java-class" property.
082   * <p>
083   * Specifies the fully-qualified name of the Java class that
084   * provides the plug-in implementation.
085   *
086   * @return Returns the value of the "java-class" property.
087   */
088  String getJavaClass();
089
090
091
092  /**
093   * Gets the "plugin-type" property.
094   * <p>
095   * Specifies the set of plug-in types for the plug-in, which
096   * specifies the times at which the plug-in is invoked.
097   *
098   * @return Returns an unmodifiable set containing the values of the "plugin-type" property.
099   */
100  SortedSet<PluginType> getPluginType();
101
102
103
104  /**
105   * Gets the "remove-inbound-attributes" property.
106   * <p>
107   * A list of attributes which should be removed from incoming add or
108   * modify requests.
109   *
110   * @return Returns an unmodifiable set containing the values of the "remove-inbound-attributes" property.
111   */
112  SortedSet<String> getRemoveInboundAttributes();
113
114
115
116  /**
117   * Gets the "rename-inbound-attributes" property.
118   * <p>
119   * A list of attributes which should be renamed in incoming add or
120   * modify requests.
121   *
122   * @return Returns an unmodifiable set containing the values of the "rename-inbound-attributes" property.
123   */
124  SortedSet<String> getRenameInboundAttributes();
125
126}