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 org.opends.server.admin.ManagedObjectDefinition;
031import org.opends.server.admin.PropertyException;
032import org.opends.server.admin.std.meta.VirtualAttributeCfgDefn.ConflictBehavior;
033import org.opends.server.admin.std.server.StructuralObjectClassVirtualAttributeCfg;
034import org.opends.server.types.AttributeType;
035
036
037
038/**
039 * A client-side interface for reading and modifying Structural Object
040 * Class Virtual Attribute settings.
041 * <p>
042 * The Structural Object Class Virtual Attribute generates a virtual
043 * attribute that specifies the structural object class with the schema
044 * definitions in effect for the entry. This attribute is defined in
045 * RFC 4512.
046 */
047public interface StructuralObjectClassVirtualAttributeCfgClient extends VirtualAttributeCfgClient {
048
049  /**
050   * Get the configuration definition associated with this Structural Object Class Virtual Attribute.
051   *
052   * @return Returns the configuration definition associated with this Structural Object Class Virtual Attribute.
053   */
054  ManagedObjectDefinition<? extends StructuralObjectClassVirtualAttributeCfgClient, ? extends StructuralObjectClassVirtualAttributeCfg> definition();
055
056
057
058  /**
059   * Gets the "attribute-type" property.
060   * <p>
061   * Specifies the attribute type for the attribute whose values are
062   * to be dynamically assigned by the virtual attribute.
063   *
064   * @return Returns the value of the "attribute-type" property.
065   */
066  AttributeType getAttributeType();
067
068
069
070  /**
071   * Sets the "attribute-type" property.
072   * <p>
073   * Specifies the attribute type for the attribute whose values are
074   * to be dynamically assigned by the virtual attribute.
075   *
076   * @param value The value of the "attribute-type" property.
077   * @throws PropertyException
078   *           If the new value is invalid.
079   */
080  void setAttributeType(AttributeType value) throws PropertyException;
081
082
083
084  /**
085   * Gets the "conflict-behavior" property.
086   * <p>
087   * Specifies the behavior that the server is to exhibit for entries
088   * that already contain one or more real values for the associated
089   * attribute.
090   *
091   * @return Returns the value of the "conflict-behavior" property.
092   */
093  ConflictBehavior getConflictBehavior();
094
095
096
097  /**
098   * Sets the "conflict-behavior" property.
099   * <p>
100   * Specifies the behavior that the server is to exhibit for entries
101   * that already contain one or more real values for the associated
102   * attribute.
103   *
104   * @param value The value of the "conflict-behavior" property.
105   * @throws PropertyException
106   *           If the new value is invalid.
107   */
108  void setConflictBehavior(ConflictBehavior value) throws PropertyException;
109
110
111
112  /**
113   * Gets the "java-class" property.
114   * <p>
115   * Specifies the fully-qualified name of the virtual attribute
116   * provider class that generates the attribute values.
117   *
118   * @return Returns the value of the "java-class" property.
119   */
120  String getJavaClass();
121
122
123
124  /**
125   * Sets the "java-class" property.
126   * <p>
127   * Specifies the fully-qualified name of the virtual attribute
128   * provider class that generates the attribute values.
129   *
130   * @param value The value of the "java-class" property.
131   * @throws PropertyException
132   *           If the new value is invalid.
133   */
134  void setJavaClass(String value) throws PropertyException;
135
136}