Class ImmutableEntry
- java.lang.Object
-
- org.apache.directory.api.ldap.model.entry.ImmutableEntry
-
- All Implemented Interfaces:
Externalizable,Serializable,Cloneable,Iterable<Attribute>,Entry
public class ImmutableEntry extends Object implements Entry
A default implementation of a ServerEntry which should suite most use cases. This class is final, it should not be extended.- Author:
- Apache Directory Project
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ImmutableEntry(Entry entry)Creates a new instance of DefaultEntry.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Entryadd(String upId, byte[]... values)Add some binary values to the current Entry.Entryadd(String upId, String... values)Add some String values to the current Entry.Entryadd(String upId, Value... values)Add some Values to the current Entry.Entryadd(String upId, AttributeType attributeType, byte[]... values)Add an attribute (represented by its AttributeType and some binary values) into an entry.Entryadd(String upId, AttributeType attributeType, String... values)Add an attribute (represented by its AttributeType and some String values) into an entry.Entryadd(String upId, AttributeType attributeType, Value... values)Add an attribute (represented by its AttributeType and some values) into an entry.Entryadd(Attribute... attributes)Add some Attributes to the current Entry.Entryadd(AttributeType attributeType, byte[]... values)Add an attribute (represented by its AttributeType and some binary values) into an entry.Entryadd(AttributeType attributeType, String... values)Add an attribute (represented by its AttributeType and some String values) into an entry.Entryadd(AttributeType attributeType, Value... values)Add an attribute (represented by its AttributeType and some values) into an entry.voidclear()Remove all the attributes for this entry.Entryclone()Clone an entry.booleancontains(String upId, byte[]... values)Checks if an entry contains an attribute with some binary values.booleancontains(String upId, String... values)Checks if an entry contains an attribute with some String values.booleancontains(String upId, Value... values)Checks if an entry contains an attribute with some values.booleancontains(Attribute... attributes)Checks if an entry contains a list of attributes.booleancontains(AttributeType attributeType, byte[]... values)Checks if an entry contains an attribute with some given binary values.booleancontains(AttributeType attributeType, String... values)Checks if an entry contains an attribute with some given String values.booleancontains(AttributeType attributeType, Value... values)Checks if an entry contains an attribute with some given binary values.booleancontainsAttribute(String... attributes)Checks if an entry contains some specific attributes.booleancontainsAttribute(AttributeType attributeType)Checks if an entry contains a specific AttributeType.voiddeserialize(ObjectInput in)Deserialize an entry.booleanequals(Object o)Attributeget(String alias)Returns the attribute with the specified alias.Attributeget(AttributeType attributeType)Returns the attribute associated with an AttributeTypeCollection<Attribute>getAttributes()Gets all the attributesDngetDn()Get this entry's Dn.inthashCode()Get the hash code of this ClientEntry.booleanhasObjectClass(String... objectClasses)Tells if an entry as some specific ObjectClasses valuesbooleanhasObjectClass(Attribute... objectClasses)Tells if an entry has some specific ObjectClasses AttributesbooleanisSchemaAware()Tells if the Entry is schema awareIterator<Attribute>iterator()Returns an enumeration containing the zero or more attributes in the collection.Attributeput(String upId, byte[]... values)Put an attribute (represented by its ID and some binary values) into an entry.Attributeput(String upId, String... values)Put an attribute (represented by its ID and some String values) into an entry.Attributeput(String upId, Value... values)Put an attribute (represented by its ID and some values) into an entry.Attributeput(String upId, AttributeType attributeType, byte[]... values)Places a new attribute with the supplied AttributeType and some binary values into the attribute collection.Attributeput(String upId, AttributeType attributeType, String... values)Places a new attribute with the supplied AttributeType and some String values into the attribute collection.Attributeput(String upId, AttributeType attributeType, Value... values)Places a new attribute with the supplied AttributeType and some values into the attribute collection.List<Attribute>put(Attribute... attributes)Places attributes in the attribute collection.Attributeput(AttributeType attributeType, byte[]... values)Places a new attribute with the supplied AttributeType and binary values into the attribute collection.Attributeput(AttributeType attributeType, String... values)Places a new attribute with the supplied AttributeType and String values into the attribute collection.Attributeput(AttributeType attributeType, Value... values)Places a new attribute with the supplied AttributeType and some values into the attribute collection.voidreadExternal(ObjectInput in)booleanremove(String upId, byte[]... values)Removes the specified binary values from an attribute.booleanremove(String upId, String... values)Removes the specified String values from an attribute.booleanremove(String upId, Value... values)Removes the specified values from an attribute.List<Attribute>remove(Attribute... attributes)Removes the specified attributes.booleanremove(AttributeType attributeType, byte[]... values)Removes the specified binary values from an attribute.booleanremove(AttributeType attributeType, String... values)Removes the specified String values from an attribute.booleanremove(AttributeType attributeType, Value... values)Removes the specified values from an attribute.voidremoveAttributes(String... attributes)Removes the attribute with the specified alias.voidremoveAttributes(AttributeType... attributes)Removes the attribute with the specified AttributeTypes.voidserialize(ObjectOutput out)Serialize an Entry.voidsetDn(String dn)Set this entry's Dn.voidsetDn(Dn dn)Set this entry's Dn.EntryshallowClone()Shallow Clone the current entry.intsize()Returns the number of attributes.StringtoString()StringtoString(String tabs)A pretty-pinter for EntriesvoidwriteExternal(ObjectOutput out)This is the place where we serialize entries, and all theirs elements.-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
ImmutableEntry
public ImmutableEntry(Entry entry)
Creates a new instance of DefaultEntry.This entry must be initialized before being used !
- Parameters:
entry- The encapsulated entry
-
-
Method Detail
-
add
public Entry add(AttributeType attributeType, byte[]... values) throws LdapException
Add an attribute (represented by its AttributeType and some binary values) into an entry.
If we already have an attribute with the same values, the duplicated values are not added (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
attributeType- The attribute Type.values- The list of binary values to inject. It can be empty.- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(AttributeType attributeType, String... values) throws LdapException
Add an attribute (represented by its AttributeType and some String values) into an entry.
If we already have an attribute with the same values, the duplicated values are not added (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
attributeType- The attribute Typevalues- The list of binary values to inject. It can be empty- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(AttributeType attributeType, Value... values) throws LdapException
Add an attribute (represented by its AttributeType and some values) into an entry.
If we already have an attribute with the same values, the duplicated values are not added (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
attributeType- The attribute Typevalues- The list of binary values to inject. It can be empty- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(String upId, AttributeType attributeType, byte[]... values) throws LdapException
Add an attribute (represented by its AttributeType and some binary values) into an entry. Set the User Provider ID at the same time
If we already have an attribute with the same values, the duplicated values are not added (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID for the added AttributeTypeattributeType- The attribute Type.values- The list of binary values to add. It can be empty.- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(String upId, AttributeType attributeType, Value... values) throws LdapException
Add an attribute (represented by its AttributeType and some values) into an entry. Set the User Provider ID at the same time
If we already have an attribute with the same values, nothing is done (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID for the added AttributeTypeattributeType- The attribute Type.values- The list of values to add. It can be empty.- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(String upId, AttributeType attributeType, String... values) throws LdapException
Add an attribute (represented by its AttributeType and some String values) into an entry. Set the User Provider ID at the same time
If we already have an attribute with the same values, the duplicated values are not added (duplicated values are not allowed)
If the value cannot be added, or if the AttributeType is null or invalid, a LdapException is thrown.
- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID for the added AttributeTypeattributeType- The attribute Type.values- The list of String values to add. It can be empty.- Returns:
- the modified entry
- Throws:
LdapException- If the attribute does not exist
-
add
public Entry add(Attribute... attributes) throws LdapException
Add some Attributes to the current Entry.- Specified by:
addin interfaceEntry- Parameters:
attributes- The attributes to add- Returns:
- the modified entry
- Throws:
LdapException- If we can't add any of the attributes
-
add
public Entry add(String upId, byte[]... values) throws LdapException
Add some binary values to the current Entry.- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID of the attribute we want to add some values tovalues- The list of binary values to add- Returns:
- the modified entry
- Throws:
LdapException- If we can't add any of the values
-
add
public Entry add(String upId, String... values) throws LdapException
Add some String values to the current Entry.- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID of the attribute we want to add some values tovalues- The list of String values to add- Returns:
- the modified entry
- Throws:
LdapException- If we can't add any of the values
-
add
public Entry add(String upId, Value... values) throws LdapException
Add some Values to the current Entry.- Specified by:
addin interfaceEntry- Parameters:
upId- The user provided ID of the attribute we want to add some values tovalues- The list of Values to add- Returns:
- the modified entry
- Throws:
LdapException- If we can't add any of the values
-
clone
public Entry clone()
Clone an entry. All the element are duplicated, so a modification on the original object won't affect the cloned object, as a modification on the cloned object has no impact on the original object
-
shallowClone
public Entry shallowClone()
Shallow Clone the current entry. We don't deep clone the attributes- Specified by:
shallowClonein interfaceEntry- Returns:
- a shallow copy of this entry
-
contains
public boolean contains(Attribute... attributes)
Checks if an entry contains a list of attributes.
If the list is null or empty, this method will return
trueif the entry has no attribute,falseotherwise.
-
containsAttribute
public boolean containsAttribute(String... attributes)
Checks if an entry contains some specific attributes.- Specified by:
containsAttributein interfaceEntry- Parameters:
attributes- The Attributes to look for.- Returns:
trueif the attributes are all found within the entry.
-
containsAttribute
public boolean containsAttribute(AttributeType attributeType)
Checks if an entry contains a specific AttributeType.- Specified by:
containsAttributein interfaceEntry- Parameters:
attributeType- The AttributeType to look for.- Returns:
trueif the attribute is found within the entry.
-
contains
public boolean contains(AttributeType attributeType, byte[]... values)
Checks if an entry contains an attribute with some given binary values.
-
contains
public boolean contains(AttributeType attributeType, String... values)
Checks if an entry contains an attribute with some given String values.
-
contains
public boolean contains(AttributeType attributeType, Value... values)
Checks if an entry contains an attribute with some given binary values.
-
contains
public boolean contains(String upId, byte[]... values)
Checks if an entry contains an attribute with some binary values.
-
contains
public boolean contains(String upId, String... values)
Checks if an entry contains an attribute with some String values.
-
contains
public boolean contains(String upId, Value... values)
Checks if an entry contains an attribute with some values.
-
get
public Attribute get(String alias)
Returns the attribute with the specified alias. The return value is
nullif no match is found.An Attribute with an id different from the supplied alias may be returned: for example a call with 'cn' may in some implementations return an Attribute whose getId() field returns 'commonName'.
-
get
public Attribute get(AttributeType attributeType)
Returns the attribute associated with an AttributeType
-
getAttributes
public Collection<Attribute> getAttributes()
Gets all the attributes- Specified by:
getAttributesin interfaceEntry- Returns:
- The combined set of all the attributes.
-
put
public Attribute put(String upId, byte[]... values)
Put an attribute (represented by its ID and some binary values) into an entry.
If the attribute already exists, the previous attribute will be replaced and returned.
-
put
public Attribute put(String upId, String... values)
Put an attribute (represented by its ID and some String values) into an entry.
If the attribute already exists, the previous attribute will be replaced and returned.
-
put
public Attribute put(String upId, Value... values)
Put an attribute (represented by its ID and some values) into an entry.
If the attribute already exists, the previous attribute will be replaced and returned.
-
put
public List<Attribute> put(Attribute... attributes) throws LdapException
Places attributes in the attribute collection.
If there is already an attribute with the same ID as any of the new attributes, the old ones are removed from the collection and are returned by this method. If there was no attribute with the same ID the return value is
null.- Specified by:
putin interfaceEntry- Parameters:
attributes- the attributes to be put- Returns:
- the old attributes with the same OID, if exist; otherwise
null - Throws:
LdapException- if the operation fails
-
put
public Attribute put(AttributeType attributeType, byte[]... values) throws LdapException
Places a new attribute with the supplied AttributeType and binary values into the attribute collection.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
attributeType- the type of the new attribute to be putvalues- the binary values of the new attribute to be put- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures
-
put
public Attribute put(AttributeType attributeType, String... values) throws LdapException
Places a new attribute with the supplied AttributeType and String values into the attribute collection.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
attributeType- the type of the new attribute to be putvalues- the String values of the new attribute to be put- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures
-
put
public Attribute put(AttributeType attributeType, Value... values) throws LdapException
Places a new attribute with the supplied AttributeType and some values into the attribute collection.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
attributeType- the type of the new attribute to be putvalues- the values of the new attribute to be put- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures
-
put
public Attribute put(String upId, AttributeType attributeType, byte[]... values) throws LdapException
Places a new attribute with the supplied AttributeType and some binary values into the attribute collection.
The given User provided ID will be used for this new AttributeEntry.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
upId- The User Provided ID to be stored into the AttributeEntryattributeType- The attributeType to usevalues- The values to store- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures.
-
put
public Attribute put(String upId, AttributeType attributeType, String... values) throws LdapException
Places a new attribute with the supplied AttributeType and some String values into the attribute collection.
The given User provided ID will be used for this new AttributeEntry.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
upId- The User Provided ID to be stored into the AttributeEntryattributeType- the type of the new attribute to be putvalues- the String values of the new attribute to be put- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures.
-
put
public Attribute put(String upId, AttributeType attributeType, Value... values) throws LdapException
Places a new attribute with the supplied AttributeType and some values into the attribute collection.
The given User provided ID will be used for this new AttributeEntry.
If there is already an attribute with the same AttributeType, the old one is removed from the collection and is returned by this method.
This method provides a mechanism to put an attribute with a
nullvalue: the value may benull.- Specified by:
putin interfaceEntry- Parameters:
upId- The User Provided ID to be stored into the AttributeEntryattributeType- the type of the new attribute to be putvalues- the values of the new attribute to be put- Returns:
- the old attribute with the same identifier, if exists; otherwise
null - Throws:
LdapException- if there are failures.
-
remove
public List<Attribute> remove(Attribute... attributes) throws LdapException
Removes the specified attributes. The removed attributes are returned by this method. If there were no attribute the return value isnull.- Specified by:
removein interfaceEntry- Parameters:
attributes- the attributes to be removed- Returns:
- the removed attribute, if exists; otherwise
null - Throws:
LdapException- If the removal failed
-
remove
public boolean remove(AttributeType attributeType, byte[]... values) throws LdapException
Removes the specified binary values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
attributeType- The attribute typevalues- the values to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- If the removal failed
-
remove
public boolean remove(AttributeType attributeType, String... values) throws LdapException
Removes the specified String values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
attributeType- The attribute typevalues- the values to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- If the removal failed
-
remove
public boolean remove(AttributeType attributeType, Value... values) throws LdapException
Removes the specified values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
attributeType- The attribute typevalues- the values to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- If the removal failed
-
removeAttributes
public void removeAttributes(AttributeType... attributes)
Removes the attribute with the specified AttributeTypes.
The removed attribute are returned by this method.
If there is no attribute with the specified AttributeTypes, the return value is
null.- Specified by:
removeAttributesin interfaceEntry- Parameters:
attributes- the AttributeTypes to be removed
-
removeAttributes
public void removeAttributes(String... attributes)
Removes the attribute with the specified alias.
The removed attribute are returned by this method.
If there is no attribute with the specified alias, the return value is
null.- Specified by:
removeAttributesin interfaceEntry- Parameters:
attributes- an aliased name of the attribute to be removed
-
remove
public boolean remove(String upId, byte[]... values) throws LdapException
Removes the specified binary values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
upId- The attribute IDvalues- the values to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- If the removal failed
-
remove
public boolean remove(String upId, String... values) throws LdapException
Removes the specified String values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
upId- The attribute IDvalues- the attributes to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- If the provided values are invalid
-
remove
public boolean remove(String upId, Value... values) throws LdapException
Removes the specified values from an attribute.
If at least one value is removed, this method returns
true.If there is no more value after having removed the values, the attribute will be removed too.
If the attribute does not exist, nothing is done and the method returns
false- Specified by:
removein interfaceEntry- Parameters:
upId- The attribute IDvalues- the attributes to be removed- Returns:
trueif at least a value is removed,falseif not all the values have been removed or if the attribute does not exist.- Throws:
LdapException- if the attribute does not exists
-
getDn
public Dn getDn()
Get this entry's Dn.
-
setDn
public void setDn(Dn dn)
Set this entry's Dn.
-
setDn
public void setDn(String dn) throws LdapInvalidDnException
Set this entry's Dn.- Specified by:
setDnin interfaceEntry- Parameters:
dn- The String Dn associated with this entry- Throws:
LdapInvalidDnException- if the provided Dn is invalid
-
clear
public void clear()
Remove all the attributes for this entry. The Dn is not reset
-
iterator
public Iterator<Attribute> iterator()
Returns an enumeration containing the zero or more attributes in the collection. The behavior of the enumeration is not specified if the attribute collection is changed.
-
size
public int size()
Returns the number of attributes.
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
This is the place where we serialize entries, and all theirs elements.
The structure used to store the entry is the following :- [Dn] : If it's null, stores an empty Dn
- [attributes number] : the number of attributes.
- [attribute]* : each attribute, if we have some
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
serialize
public void serialize(ObjectOutput out) throws IOException
Serialize an Entry. The structure is the following : [a byte] : if the Dn is empty 0 will be written else 1 [Rdn] : The entry's Rdn. [numberAttr] : the bumber of attributes. Can be 0 [attribute's oid]* : The attribute's OID to get back the attributeType on deserialization [Attribute]* The attribute- Parameters:
out- the buffer in which the data will be serialized- Throws:
IOException- if the serialization failed
-
deserialize
public void deserialize(ObjectInput in) throws IOException, ClassNotFoundException
Deserialize an entry.- Parameters:
in- The buffer containing the serialized serverEntry- Throws:
IOException- if there was a problem when deserializingClassNotFoundException- if we can't deserialize an expected object
-
hashCode
public int hashCode()
Get the hash code of this ClientEntry. The Attributes will be sorted before the comparison can be done.- Overrides:
hashCodein classObject- Returns:
- the instance's hash code
- See Also:
Object.hashCode()
-
hasObjectClass
public boolean hasObjectClass(String... objectClasses)
Tells if an entry as some specific ObjectClasses values- Specified by:
hasObjectClassin interfaceEntry- Parameters:
objectClasses- The ObjectClasses we want to check- Returns:
trueif all the ObjectClasses value are present in the ObjectClass attribute
-
hasObjectClass
public boolean hasObjectClass(Attribute... objectClasses)
Tells if an entry has some specific ObjectClasses Attributes- Specified by:
hasObjectClassin interfaceEntry- Parameters:
objectClasses- The ObjectClasses we want to check- Returns:
trueif the ObjectClasses Attribute are present in the ObjectClass attribute
-
isSchemaAware
public boolean isSchemaAware()
Tells if the Entry is schema aware- Specified by:
isSchemaAwarein interfaceEntry- Returns:
- true if the Entry is schema aware
-
equals
public boolean equals(Object o)
- Overrides:
equalsin classObject- See Also:
Object.equals(Object)
-
toString
public String toString()
- Overrides:
toStringin classObject- See Also:
Object.toString()
-
-