Save This Page
Home » openjdk-7 » javax » naming » directory » [javadoc | source]
    1   /*
    2    * Copyright 1999-2004 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   
   27   package javax.naming.directory;
   28   
   29   import java.util.Hashtable;
   30   import java.util.Enumeration;
   31   
   32   import javax.naming.NamingException;
   33   import javax.naming.NamingEnumeration;
   34   
   35   /**
   36     * This interface represents a collection of attributes.
   37     *<p>
   38     * In a directory, named objects can have associated with them
   39     * attributes.  The Attributes interface represents a collection of attributes.
   40     * For example, you can request from the directory the attributes
   41     * associated with an object.  Those attributes are returned in
   42     * an object that implements the Attributes interface.
   43     *<p>
   44     * Attributes in an object that implements the  Attributes interface are
   45     * unordered. The object can have zero or more attributes.
   46     * Attributes is either case-sensitive or case-insensitive (case-ignore).
   47     * This property is determined at the time the Attributes object is
   48     * created. (see BasicAttributes constructor for example).
   49     * In a case-insensitive Attributes, the case of its attribute identifiers
   50     * is ignored when searching for an attribute, or adding attributes.
   51     * In a case-sensitive Attributes, the case is significant.
   52     *<p>
   53     * Note that updates to Attributes (such as adding or removing an attribute)
   54     * do not affect the corresponding representation in the directory.
   55     * Updates to the directory can only be effected
   56     * using operations in the DirContext interface.
   57     *
   58     * @author Rosanna Lee
   59     * @author Scott Seligman
   60     *
   61     * @see DirContext#getAttributes
   62     * @see DirContext#modifyAttributes
   63     * @see DirContext#bind
   64     * @see DirContext#rebind
   65     * @see DirContext#createSubcontext
   66     * @see DirContext#search
   67     * @see BasicAttributes
   68     * @since 1.3
   69     */
   70   
   71   public interface Attributes extends Cloneable, java.io.Serializable {
   72       /**
   73         * Determines whether the attribute set ignores the case of
   74         * attribute identifiers when retrieving or adding attributes.
   75         * @return true if case is ignored; false otherwise.
   76         */
   77       boolean isCaseIgnored();
   78   
   79       /**
   80         * Retrieves the number of attributes in the attribute set.
   81         *
   82         * @return The nonnegative number of attributes in this attribute set.
   83         */
   84       int size();
   85   
   86       /**
   87         * Retrieves the attribute with the given attribute id from the
   88         * attribute set.
   89         *
   90         * @param attrID The non-null id of the attribute to retrieve.
   91         *           If this attribute set ignores the character
   92         *           case of its attribute ids, the case of attrID
   93         *           is ignored.
   94         * @return The attribute identified by attrID; null if not found.
   95         * @see #put
   96         * @see #remove
   97         */
   98       Attribute get(String attrID);
   99   
  100       /**
  101         * Retrieves an enumeration of the attributes in the attribute set.
  102         * The effects of updates to this attribute set on this enumeration
  103         * are undefined.
  104         *
  105         * @return A non-null enumeration of the attributes in this attribute set.
  106         *         Each element of the enumeration is of class <tt>Attribute</tt>.
  107         *         If attribute set has zero attributes, an empty enumeration
  108         *         is returned.
  109         */
  110       NamingEnumeration<? extends Attribute> getAll();
  111   
  112       /**
  113         * Retrieves an enumeration of the ids of the attributes in the
  114         * attribute set.
  115         * The effects of updates to this attribute set on this enumeration
  116         * are undefined.
  117         *
  118         * @return A non-null enumeration of the attributes' ids in
  119         *         this attribute set. Each element of the enumeration is
  120         *         of class String.
  121         *         If attribute set has zero attributes, an empty enumeration
  122         *         is returned.
  123         */
  124       NamingEnumeration<String> getIDs();
  125   
  126       /**
  127         * Adds a new attribute to the attribute set.
  128         *
  129         * @param attrID   non-null The id of the attribute to add.
  130         *           If the attribute set ignores the character
  131         *           case of its attribute ids, the case of attrID
  132         *           is ignored.
  133         * @param val      The possibly null value of the attribute to add.
  134         *                 If null, the attribute does not have any values.
  135         * @return The Attribute with attrID that was previous in this attribute set;
  136         *         null if no such attribute existed.
  137         * @see #remove
  138         */
  139       Attribute put(String attrID, Object val);
  140   
  141       /**
  142         * Adds a new attribute to the attribute set.
  143         *
  144         * @param attr     The non-null attribute to add.
  145         *                 If the attribute set ignores the character
  146         *                 case of its attribute ids, the case of
  147         *                 attr's identifier is ignored.
  148         * @return The Attribute with the same ID as attr that was previous
  149         *         in this attribute set;
  150         *         null if no such attribute existed.
  151         * @see #remove
  152         */
  153       Attribute put(Attribute attr);
  154   
  155       /**
  156         * Removes the attribute with the attribute id 'attrID' from
  157         * the attribute set. If the attribute does not exist, ignore.
  158         *
  159         * @param attrID   The non-null id of the attribute to remove.
  160         *                 If the attribute set ignores the character
  161         *                 case of its attribute ids, the case of
  162         *                 attrID is ignored.
  163         * @return The Attribute with the same ID as attrID that was previous
  164         *         in the attribute set;
  165         *         null if no such attribute existed.
  166         */
  167       Attribute remove(String attrID);
  168   
  169       /**
  170         * Makes a copy of the attribute set.
  171         * The new set contains the same attributes as the original set:
  172         * the attributes are not themselves cloned.
  173         * Changes to the copy will not affect the original and vice versa.
  174         *
  175         * @return A non-null copy of this attribute set.
  176         */
  177       Object clone();
  178   
  179       /**
  180        * Use serialVersionUID from JNDI 1.1.1 for interoperability
  181        */
  182       // static final long serialVersionUID = -7247874645443605347L;
  183   }

Save This Page
Home » openjdk-7 » javax » naming » directory » [javadoc | source]