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.BackendCfgDefn.WritabilityMode;
025import org.forgerock.opendj.server.config.server.BackupBackendCfg;
026
027
028
029/**
030 * A client-side interface for reading and modifying Backup Backend
031 * settings.
032 * <p>
033 * The Backup Backend provides read-only access to the set of backups
034 * that are available for OpenDJ.
035 */
036public interface BackupBackendCfgClient extends BackendCfgClient {
037
038  /**
039   * Get the configuration definition associated with this Backup Backend.
040   *
041   * @return Returns the configuration definition associated with this Backup Backend.
042   */
043  ManagedObjectDefinition<? extends BackupBackendCfgClient, ? extends BackupBackendCfg> definition();
044
045
046
047  /**
048   * Gets the "backup-directory" property.
049   * <p>
050   * Specifies the path to a backup directory containing one or more
051   * backups for a particular backend.
052   * <p>
053   * This is a multivalued property. Each value may specify a
054   * different backup directory if desired (one for each backend for
055   * which backups are taken). Values may be either absolute paths or
056   * paths that are relative to the base of the OpenDJ directory server
057   * installation.
058   *
059   * @return Returns the values of the "backup-directory" property.
060   */
061  SortedSet<String> getBackupDirectory();
062
063
064
065  /**
066   * Sets the "backup-directory" property.
067   * <p>
068   * Specifies the path to a backup directory containing one or more
069   * backups for a particular backend.
070   * <p>
071   * This is a multivalued property. Each value may specify a
072   * different backup directory if desired (one for each backend for
073   * which backups are taken). Values may be either absolute paths or
074   * paths that are relative to the base of the OpenDJ directory server
075   * installation.
076   *
077   * @param values The values of the "backup-directory" property.
078   * @throws PropertyException
079   *           If one or more of the new values are invalid.
080   */
081  void setBackupDirectory(Collection<String> values) throws PropertyException;
082
083
084
085  /**
086   * Gets the "java-class" property.
087   * <p>
088   * Specifies the fully-qualified name of the Java class that
089   * provides the backend implementation.
090   *
091   * @return Returns the value of the "java-class" property.
092   */
093  String getJavaClass();
094
095
096
097  /**
098   * Sets the "java-class" property.
099   * <p>
100   * Specifies the fully-qualified name of the Java class that
101   * provides the backend implementation.
102   *
103   * @param value The value of the "java-class" property.
104   * @throws PropertyException
105   *           If the new value is invalid.
106   */
107  void setJavaClass(String value) throws PropertyException;
108
109
110
111  /**
112   * Gets the "writability-mode" property.
113   * <p>
114   * Specifies the behavior that the backend should use when
115   * processing write operations.
116   *
117   * @return Returns the value of the "writability-mode" property.
118   */
119  WritabilityMode getWritabilityMode();
120
121
122
123  /**
124   * Sets the "writability-mode" property.
125   * <p>
126   * Specifies the behavior that the backend should use when
127   * processing write operations.
128   *
129   * @param value The value of the "writability-mode" property.
130   * @throws PropertyException
131   *           If the new value is invalid.
132   */
133  void setWritabilityMode(WritabilityMode value) throws PropertyException;
134
135}