public final class EntryHistoricalAttribute extends Object implements Attribute
Attribute
implementations that performs lazy conversion of EntryHistorical
(ds-sync-hist) meta-data to its LDAP attribute representation as well as from its compact
ID2Entry
representation.
This class optimizes for all conversions except for conversions to and from LDAP Attributes since these are rarely
needed in practice - it is rare for a client application to read the ds-sync-hist
attribute or modify it
directly.
Constructor and Description |
---|
EntryHistoricalAttribute(EntryHistorical entryHistorical)
Creates a new ds-sync-hist attribute whose content is based on the provided historical information.
|
EntryHistoricalAttribute(Supplier<EntryHistorical> delayedEntryHistorical)
Creates a new ds-sync-hist attribute whose content will be lazily computed using the provided supplier.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(ByteString value)
Adds
value to this attribute if it is not already present
(optional operation). |
boolean |
add(Object... values)
Adds all of the provided attribute values to this attribute if they are
not already present (optional operation).
|
boolean |
addAll(Collection<? extends ByteString> values)
Adds all of the attribute values contained in
values to this
attribute if they are not already present (optional operation). |
<T> boolean |
addAll(Collection<T> values,
Collection<? super T> duplicateValues)
Adds all of the attribute values contained in
values to this
attribute if they are not already present (optional operation). |
void |
clear()
Removes all of the attribute values from this attribute (optional
operation).
|
boolean |
contains(Object value)
Returns
true if this attribute contains value . |
boolean |
containsAll(Collection<?> values)
Returns
true if this attribute contains all of the attribute values contained in values . |
boolean |
equals(Object object)
Returns
true if object is an attribute which is equal to
this attribute. |
ByteString |
firstValue()
Returns the first attribute value in this attribute.
|
String |
firstValueAsString()
Returns the first attribute value in this attribute decoded as a UTF-8 string.
|
void |
forEach(Consumer<? super ByteString> action) |
AttributeDescription |
getAttributeDescription()
Returns the attribute description of this attribute, which includes its attribute type and any options.
|
String |
getAttributeDescriptionAsString()
Returns the string representation of the attribute description of this
attribute, which includes its attribute type and any options.
|
EntryHistorical |
getEntryHistoricalForRead(Dn dn)
Returns the historical information associated with this attribute, computing it if needed.
|
EntryHistorical |
getEntryHistoricalForUpdate(Dn dn)
Returns the historical information associated with this attribute, computing it if needed.
|
int |
hashCode()
Returns the hash code for this attribute.
|
boolean |
isEmpty()
Returns
true if this attribute contains no attribute values. |
boolean |
isVirtual()
Indicates whether this is a virtual attribute (dynamically computed) rather than a real attribute (persisted).
|
Iterator<ByteString> |
iterator()
Returns an iterator over the attribute values in this attribute.
|
ConditionResult |
matchesApproximateAssertion(Assertion assertion,
ByteSequence rawAssertion)
Indicates whether this attribute matches the specified assertion using the attribute's default approximate
matching rule.
|
ConditionResult |
matchesEqualityAssertion(Assertion assertion,
ByteSequence rawAssertion)
Indicates whether this attribute matches the specified assertion using the attribute's default equality matching
rule.
|
ConditionResult |
matchesGreaterOrEqualAssertion(Assertion assertion,
ByteSequence rawAssertion)
Indicates whether this attribute matches the specified assertion using the attribute's default ordering matching
rule.
|
ConditionResult |
matchesLessOrEqualAssertion(Assertion assertion,
ByteSequence rawAssertion)
Indicates whether this attribute matches the specified assertion using the attribute's default ordering matching
rule.
|
ConditionResult |
matchesSubstringAssertion(Assertion assertion,
ByteSequence rawInitialSubstring,
List<? extends ByteSequence> rawAnySubstrings,
ByteSequence rawFinalSubstring)
Indicates whether this attribute matches the specified assertion using the attribute's default ordering matching
rule.
|
Stream<ByteString> |
parallelStream() |
AttributeParser |
parse()
Returns a parser for this attribute which can be used for decoding values as different types of object.
|
boolean |
remove(Object value)
Removes
value from this attribute if it is present (optional
operation). |
boolean |
removeAll(Collection<?> values)
Removes all of the attribute values contained in
values from this
attribute if they are present (optional operation). |
<T> boolean |
removeAll(Collection<T> values,
Collection<? super T> missingValues)
Removes all of the attribute values contained in
values from this
attribute if they are present (optional operation). |
boolean |
removeIf(Predicate<? super ByteString> filter) |
boolean |
retainAll(Collection<?> values)
Retains only the attribute values in this attribute which are contained in
values (optional operation). |
<T> boolean |
retainAll(Collection<T> values,
Collection<? super T> missingValues)
Retains only the attribute values in this attribute which are contained
in
values (optional operation). |
int |
size()
Returns the number of attribute values in this attribute.
|
Spliterator<ByteString> |
spliterator() |
Stream<ByteString> |
stream() |
ByteString[] |
toArray()
Returns an array containing all of the attribute values contained in this
attribute.
|
<T> T[] |
toArray(T[] array)
Returns an array containing all of the attribute values in this
attribute; the runtime type of the returned array is that of the
specified array.
|
String |
toString()
Returns a string representation of this attribute.
|
public EntryHistoricalAttribute(Supplier<EntryHistorical> delayedEntryHistorical)
delayedEntryHistorical
- The supplier to be invoked in order to compute the attribute's content.public EntryHistoricalAttribute(EntryHistorical entryHistorical)
entryHistorical
- The historical information from which the attribute values will be computed.public EntryHistorical getEntryHistoricalForRead(Dn dn)
dn
- The name of the entry containing this attribute.public EntryHistorical getEntryHistoricalForUpdate(Dn dn)
dn
- The name of the entry containing this attribute.public AttributeDescription getAttributeDescription()
Attribute
getAttributeDescription
in interface Attribute
public String getAttributeDescriptionAsString()
Attribute
getAttributeDescriptionAsString
in interface Attribute
public boolean isVirtual()
Attribute
public boolean isEmpty()
Attribute
true
if this attribute contains no attribute values.isEmpty
in interface Collection<ByteString>
isEmpty
in interface Attribute
true
if this attribute contains no attribute values.public boolean add(ByteString value)
Attribute
value
to this attribute if it is not already present
(optional operation). If this attribute already contains value
,
the call leaves the attribute unchanged and returns false
.add
in interface Collection<ByteString>
add
in interface Attribute
value
- The attribute value to be added to this attribute.true
if this attribute changed as a result of this call.public boolean add(Object... values)
Attribute
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
public boolean addAll(Collection<? extends ByteString> values)
Attribute
values
to this
attribute if they are not already present (optional operation).
An invocation of this method is equivalent to:
attribute.addAll(values, null);
addAll
in interface Collection<ByteString>
addAll
in interface Attribute
values
- The attribute values to be added to this attribute.true
if this attribute changed as a result of this call.public <T> boolean addAll(Collection<T> values, Collection<? super T> duplicateValues)
Attribute
values
to this
attribute if they are not already present (optional operation). Any
attribute values which are already present will be added to
duplicateValues
if specified.
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
addAll
in interface Attribute
T
- The type of the attribute value objects being added.values
- The attribute values to be added to this attribute.duplicateValues
- A collection into which duplicate values will be added,
or null
if duplicate values should not be saved.true
if this attribute changed as a result of this call.public void clear()
Attribute
clear
in interface Collection<ByteString>
clear
in interface Attribute
public boolean contains(Object value)
Attribute
true
if this attribute contains value
.
If value
is not an instance of ByteString
then it will be
converted using the ByteString.valueOfObject(Object)
method.
contains
in interface Collection<ByteString>
contains
in interface Attribute
value
- The attribute value whose presence in this attribute is to be tested.true
if this attribute contains value
, or false
if not.public boolean containsAll(Collection<?> values)
Attribute
true
if this attribute contains all of the attribute values contained in values
.
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
containsAll
in interface Collection<ByteString>
containsAll
in interface Attribute
values
- The attribute values whose presence in this attribute is to be tested.true
if this attribute contains all of the attribute values contained in values
,
or false
if not.public boolean equals(Object object)
Attribute
true
if object
is an attribute which is equal to
this attribute. Two attributes are considered equal if their attribute
descriptions are equal, they both have the same number of attribute
values, and every attribute value contained in the first attribute is
also contained in the second attribute.equals
in interface Collection<ByteString>
equals
in interface Attribute
equals
in class Object
object
- The object to be tested for equality with this attribute.true
if object
is an attribute which is equal to this attribute, or false
if not.public ByteString firstValue()
Attribute
firstValue
in interface Attribute
public String firstValueAsString()
Attribute
firstValueAsString
in interface Attribute
public int hashCode()
Attribute
hashCode
in interface Collection<ByteString>
hashCode
in interface Attribute
hashCode
in class Object
public Iterator<ByteString> iterator()
Attribute
iterator
in interface Iterable<ByteString>
iterator
in interface Collection<ByteString>
iterator
in interface Attribute
public ConditionResult matchesApproximateAssertion(Assertion assertion, ByteSequence rawAssertion)
Attribute
matchesApproximateAssertion
in interface Attribute
assertion
- The attribute value assertion compiled using the attribute's default approximate matching rule.rawAssertion
- The raw assertion value whose syntax is compatible with the attribute's default approximate
matching rule.ConditionResult.FALSE
if the assertion does not match any values in this attribute,
ConditionResult.TRUE
if the assertion matches at least one value in this attribute,
or ConditionResult.UNDEFINED
if the assertion does not match any values in this attribute,
but one or more values could not be compared because they are incompatible with the matching rule.public ConditionResult matchesEqualityAssertion(Assertion assertion, ByteSequence rawAssertion)
Attribute
matchesEqualityAssertion
in interface Attribute
assertion
- The attribute value assertion compiled using the attribute's default equality matching rule.rawAssertion
- The raw assertion value whose syntax is compatible with the attribute's default equality matching rule.ConditionResult.FALSE
if the assertion does not match any values in this attribute,
ConditionResult.TRUE
if the assertion matches at least one value in this attribute,
or ConditionResult.UNDEFINED
if the assertion does not match any values in this attribute,
but one or more values could not be compared because they are incompatible with the matching rule.public ConditionResult matchesGreaterOrEqualAssertion(Assertion assertion, ByteSequence rawAssertion)
Attribute
matchesGreaterOrEqualAssertion
in interface Attribute
assertion
- The attribute value assertion compiled using the attribute's default ordering matching rule.rawAssertion
- The raw assertion value whose syntax is compatible with the attribute's default ordering matching rule.ConditionResult.FALSE
if the assertion does not match any values in this attribute,
ConditionResult.TRUE
if the assertion matches at least one value in this attribute,
or ConditionResult.UNDEFINED
if the assertion does not match any values in this attribute,
but one or more values could not be compared because they are incompatible with the matching rule.public ConditionResult matchesLessOrEqualAssertion(Assertion assertion, ByteSequence rawAssertion)
Attribute
matchesLessOrEqualAssertion
in interface Attribute
assertion
- The attribute value assertion compiled using the attribute's default ordering matching rule.rawAssertion
- The raw assertion value whose syntax is compatible with the attribute's default ordering matching rule.ConditionResult.FALSE
if the assertion does not match any values in this attribute,
ConditionResult.TRUE
if the assertion matches at least one value in this attribute,
or ConditionResult.UNDEFINED
if the assertion does not match any values in this attribute,
but one or more values could not be compared because they are incompatible with the matching rule.public ConditionResult matchesSubstringAssertion(Assertion assertion, ByteSequence rawInitialSubstring, List<? extends ByteSequence> rawAnySubstrings, ByteSequence rawFinalSubstring)
Attribute
matchesSubstringAssertion
in interface Attribute
assertion
- The attribute value assertion compiled using the attribute's default ordering matching rule.rawInitialSubstring
- The assertion's initial sub-string, may be null
if either rawFinalSubstring
or rawAnySubstrings
are specified.rawAnySubstrings
- The assertion's intermediate sub-strings, may be empty if either rawFinalSubstring
or rawAnySubstrings
are specified.rawFinalSubstring
- The final sub-string, may be null
if either rawInitialSubstring
or
rawAnySubstrings
are specified.ConditionResult.FALSE
if the assertion does not match any values in this attribute,
ConditionResult.TRUE
if the assertion matches at least one value in this attribute,
or ConditionResult.UNDEFINED
if the assertion does not match any values in this attribute,
but one or more values could not be compared because they are incompatible with the matching rule.public AttributeParser parse()
Attribute
public boolean remove(Object value)
Attribute
value
from this attribute if it is present (optional
operation). If this attribute does not contain value
, the call
leaves the attribute unchanged and returns false
.
If value
is not an instance of ByteString
then it will be
converted using the ByteString.valueOfObject(Object)
method.
remove
in interface Collection<ByteString>
remove
in interface Attribute
value
- The attribute value to be removed from this attribute.true
if this attribute changed as a result of this call.public boolean removeAll(Collection<?> values)
Attribute
values
from this
attribute if they are present (optional operation).
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
An invocation of this method is equivalent to:
attribute.removeAll(values, null);
removeAll
in interface Collection<ByteString>
removeAll
in interface Attribute
values
- The attribute values to be removed from this attribute.true
if this attribute changed as a result of this call.public <T> boolean removeAll(Collection<T> values, Collection<? super T> missingValues)
Attribute
values
from this
attribute if they are present (optional operation). Any attribute values
which are not already present will be added to missingValues
if specified.
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
removeAll
in interface Attribute
T
- The type of the attribute value objects being removed.values
- The attribute values to be removed from this attribute.missingValues
- A collection into which missing values will be added,
or null
if missing values should not be saved.true
if this attribute changed as a result of this call.public boolean retainAll(Collection<?> values)
Attribute
values
(optional operation).
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
An invocation of this method is equivalent to:
attribute.retainAll(values, null);
retainAll
in interface Collection<ByteString>
retainAll
in interface Attribute
values
- The attribute values to be retained in this attribute.true
if this attribute changed as a result of this call.public <T> boolean retainAll(Collection<T> values, Collection<? super T> missingValues)
Attribute
values
(optional operation). Any attribute values which are
not already present will be added to missingValues
if specified.
Any attribute values which are not instances of ByteString
will
be converted using the ByteString.valueOfObject(Object)
method.
retainAll
in interface Attribute
T
- The type of the attribute value objects being retained.values
- The attribute values to be retained in this attribute.missingValues
- A collection into which missing values will be added,
or null
if missing values should not be saved.true
if this attribute changed as a result of this call.public int size()
Attribute
size
in interface Collection<ByteString>
size
in interface Attribute
public ByteString[] toArray()
Attribute
If this attribute makes any guarantees as to what order its attribute values are returned by its iterator, this method must return the attribute values in the same order.
The returned array will be "safe" in that no references to it are maintained by this attribute. The caller is thus free to modify the returned array.
toArray
in interface Collection<ByteString>
toArray
in interface Attribute
public <T> T[] toArray(T[] array)
Attribute
If the set fits in the specified array, it is returned therein.
Otherwise, a new array is allocated with the runtime type of the
specified array and the size of this attribute. If this attribute fits in
the specified array with room to spare (i.e., the array has more elements
than this attribute), the elements in the array immediately following the
end of the set is set to null
.
If this attribute makes any guarantees as to what order its attribute values are returned by its iterator, this method must return the attribute values in the same order.
toArray
in interface Collection<ByteString>
toArray
in interface Attribute
T
- The type of elements contained in array
.array
- An array into which the elements of this attribute should be put.public String toString()
Attribute
public boolean removeIf(Predicate<? super ByteString> filter)
removeIf
in interface Collection<ByteString>
public Spliterator<ByteString> spliterator()
spliterator
in interface Iterable<ByteString>
spliterator
in interface Collection<ByteString>
public Stream<ByteString> stream()
stream
in interface Collection<ByteString>
public Stream<ByteString> parallelStream()
parallelStream
in interface Collection<ByteString>
public void forEach(Consumer<? super ByteString> action)
forEach
in interface Iterable<ByteString>
Copyright 2010-2018 ForgeRock AS.