Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.naming/share/classes/javax/naming/directory/Attributes.java
41159 views
1
/*
2
* Copyright (c) 1999, 2004, Oracle and/or its affiliates. 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. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* 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 {@code Attribute}.
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
}
184
185