001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
010 * or http://forgerock.org/license/CDDLv1.0.html.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file and include the License file at legal-notices/CDDLv1_0.txt.
016 * If applicable, add the following below this CDDL HEADER, with the
017 * fields enclosed by brackets "[]" replaced with your own identifying
018 * information:
019 *      Portions Copyright [yyyy] [name of copyright owner]
020 *
021 * CDDL HEADER END
022 *
023 *
024 *      Copyright 2008 Sun Microsystems, Inc.
025 */
026package org.opends.server.admin.std.client;
027
028
029
030import java.util.Collection;
031import java.util.SortedSet;
032import org.opends.server.admin.ConfigurationClient;
033import org.opends.server.admin.ManagedObjectDefinition;
034import org.opends.server.admin.PropertyException;
035import org.opends.server.admin.std.server.ExternalChangelogDomainCfg;
036
037
038
039/**
040 * A client-side interface for reading and modifying External
041 * Changelog Domain settings.
042 * <p>
043 * The External Changelog Domain provides configuration of the
044 * external changelog for the replication domain.
045 */
046public interface ExternalChangelogDomainCfgClient extends ConfigurationClient {
047
048  /**
049   * Get the configuration definition associated with this External Changelog Domain.
050   *
051   * @return Returns the configuration definition associated with this External Changelog Domain.
052   */
053  ManagedObjectDefinition<? extends ExternalChangelogDomainCfgClient, ? extends ExternalChangelogDomainCfg> definition();
054
055
056
057  /**
058   * Gets the "ecl-include" property.
059   * <p>
060   * Specifies a list of attributes which should be published with
061   * every change log entry, regardless of whether or not the attribute
062   * itself has changed.
063   * <p>
064   * The list of attributes may include wild cards such as "*" and "+"
065   * as well as object class references prefixed with an ampersand, for
066   * example "@person". The included attributes will be published using
067   * the "includedAttributes" operational attribute as a single LDIF
068   * value rather like the "changes" attribute. For modify and modifyDN
069   * operations the included attributes will be taken from the entry
070   * before any changes were applied.
071   *
072   * @return Returns the values of the "ecl-include" property.
073   */
074  SortedSet<String> getECLInclude();
075
076
077
078  /**
079   * Sets the "ecl-include" property.
080   * <p>
081   * Specifies a list of attributes which should be published with
082   * every change log entry, regardless of whether or not the attribute
083   * itself has changed.
084   * <p>
085   * The list of attributes may include wild cards such as "*" and "+"
086   * as well as object class references prefixed with an ampersand, for
087   * example "@person". The included attributes will be published using
088   * the "includedAttributes" operational attribute as a single LDIF
089   * value rather like the "changes" attribute. For modify and modifyDN
090   * operations the included attributes will be taken from the entry
091   * before any changes were applied.
092   *
093   * @param values The values of the "ecl-include" property.
094   * @throws PropertyException
095   *           If one or more of the new values are invalid.
096   */
097  void setECLInclude(Collection<String> values) throws PropertyException;
098
099
100
101  /**
102   * Gets the "ecl-include-for-deletes" property.
103   * <p>
104   * Specifies a list of attributes which should be published with
105   * every delete operation change log entry, in addition to those
106   * specified by the "ecl-include" property.
107   * <p>
108   * This property provides a means for applications to archive
109   * entries after they have been deleted. See the description of the
110   * "ecl-include" property for further information about how the
111   * included attributes are published.
112   *
113   * @return Returns the values of the "ecl-include-for-deletes" property.
114   */
115  SortedSet<String> getECLIncludeForDeletes();
116
117
118
119  /**
120   * Sets the "ecl-include-for-deletes" property.
121   * <p>
122   * Specifies a list of attributes which should be published with
123   * every delete operation change log entry, in addition to those
124   * specified by the "ecl-include" property.
125   * <p>
126   * This property provides a means for applications to archive
127   * entries after they have been deleted. See the description of the
128   * "ecl-include" property for further information about how the
129   * included attributes are published.
130   *
131   * @param values The values of the "ecl-include-for-deletes" property.
132   * @throws PropertyException
133   *           If one or more of the new values are invalid.
134   */
135  void setECLIncludeForDeletes(Collection<String> values) throws PropertyException;
136
137
138
139  /**
140   * Gets the "enabled" property.
141   * <p>
142   * Indicates whether the External Changelog Domain is enabled. To
143   * enable computing the change numbers, set the Replication Server's
144   * "ds-cfg-compute-change-number" property to true.
145   *
146   * @return Returns the value of the "enabled" property.
147   */
148  Boolean isEnabled();
149
150
151
152  /**
153   * Sets the "enabled" property.
154   * <p>
155   * Indicates whether the External Changelog Domain is enabled. To
156   * enable computing the change numbers, set the Replication Server's
157   * "ds-cfg-compute-change-number" property to true.
158   *
159   * @param value The value of the "enabled" property.
160   * @throws PropertyException
161   *           If the new value is invalid.
162   */
163  void setEnabled(boolean value) throws PropertyException;
164
165}