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.client;
017
018
019
020import java.util.Collection;
021import java.util.SortedSet;
022import org.forgerock.opendj.config.ManagedObjectDefinition;
023import org.forgerock.opendj.config.PropertyException;
024import org.forgerock.opendj.server.config.meta.PluginCfgDefn.PluginType;
025import org.forgerock.opendj.server.config.server.AttributeCleanupPluginCfg;
026
027
028
029/**
030 * A client-side interface for reading and modifying Attribute Cleanup
031 * Plugin settings.
032 * <p>
033 * A pre-parse plugin which can be used to remove and rename
034 * attributes in ADD and MODIFY requests before being processed.
035 */
036public interface AttributeCleanupPluginCfgClient extends PluginCfgClient {
037
038  /**
039   * Get the configuration definition associated with this Attribute Cleanup Plugin.
040   *
041   * @return Returns the configuration definition associated with this Attribute Cleanup Plugin.
042   */
043  ManagedObjectDefinition<? extends AttributeCleanupPluginCfgClient, ? extends AttributeCleanupPluginCfg> definition();
044
045
046
047  /**
048   * Gets the "invoke-for-internal-operations" property.
049   * <p>
050   * Indicates whether the plug-in should be invoked for internal
051   * operations.
052   * <p>
053   * Any plug-in that can be invoked for internal operations must
054   * ensure that it does not create any new internal operatons that can
055   * cause the same plug-in to be re-invoked.
056   *
057   * @return Returns the value of the "invoke-for-internal-operations" property.
058   */
059  boolean isInvokeForInternalOperations();
060
061
062
063  /**
064   * Sets the "invoke-for-internal-operations" property.
065   * <p>
066   * Indicates whether the plug-in should be invoked for internal
067   * operations.
068   * <p>
069   * Any plug-in that can be invoked for internal operations must
070   * ensure that it does not create any new internal operatons that can
071   * cause the same plug-in to be re-invoked.
072   *
073   * @param value The value of the "invoke-for-internal-operations" property.
074   * @throws PropertyException
075   *           If the new value is invalid.
076   */
077  void setInvokeForInternalOperations(Boolean value) throws PropertyException;
078
079
080
081  /**
082   * Gets the "java-class" property.
083   * <p>
084   * Specifies the fully-qualified name of the Java class that
085   * provides the plug-in implementation.
086   *
087   * @return Returns the value of the "java-class" property.
088   */
089  String getJavaClass();
090
091
092
093  /**
094   * Sets the "java-class" property.
095   * <p>
096   * Specifies the fully-qualified name of the Java class that
097   * provides the plug-in implementation.
098   *
099   * @param value The value of the "java-class" property.
100   * @throws PropertyException
101   *           If the new value is invalid.
102   */
103  void setJavaClass(String value) throws PropertyException;
104
105
106
107  /**
108   * Gets the "plugin-type" property.
109   * <p>
110   * Specifies the set of plug-in types for the plug-in, which
111   * specifies the times at which the plug-in is invoked.
112   *
113   * @return Returns the values of the "plugin-type" property.
114   */
115  SortedSet<PluginType> getPluginType();
116
117
118
119  /**
120   * Sets the "plugin-type" property.
121   * <p>
122   * Specifies the set of plug-in types for the plug-in, which
123   * specifies the times at which the plug-in is invoked.
124   *
125   * @param values The values of the "plugin-type" property.
126   * @throws PropertyException
127   *           If one or more of the new values are invalid.
128   */
129  void setPluginType(Collection<PluginType> values) throws PropertyException;
130
131
132
133  /**
134   * Gets the "remove-inbound-attributes" property.
135   * <p>
136   * A list of attributes which should be removed from incoming add or
137   * modify requests.
138   *
139   * @return Returns the values of the "remove-inbound-attributes" property.
140   */
141  SortedSet<String> getRemoveInboundAttributes();
142
143
144
145  /**
146   * Sets the "remove-inbound-attributes" property.
147   * <p>
148   * A list of attributes which should be removed from incoming add or
149   * modify requests.
150   *
151   * @param values The values of the "remove-inbound-attributes" property.
152   * @throws PropertyException
153   *           If one or more of the new values are invalid.
154   */
155  void setRemoveInboundAttributes(Collection<String> values) throws PropertyException;
156
157
158
159  /**
160   * Gets the "rename-inbound-attributes" property.
161   * <p>
162   * A list of attributes which should be renamed in incoming add or
163   * modify requests.
164   *
165   * @return Returns the values of the "rename-inbound-attributes" property.
166   */
167  SortedSet<String> getRenameInboundAttributes();
168
169
170
171  /**
172   * Sets the "rename-inbound-attributes" property.
173   * <p>
174   * A list of attributes which should be renamed in incoming add or
175   * modify requests.
176   *
177   * @param values The values of the "rename-inbound-attributes" property.
178   * @throws PropertyException
179   *           If one or more of the new values are invalid.
180   */
181  void setRenameInboundAttributes(Collection<String> values) throws PropertyException;
182
183}