Interface Attribute
- All Superinterfaces:
Collection<ByteString>
,Iterable<ByteString>
- All Known Implementing Classes:
AbstractAttribute
,CompactAttribute
,EntryHistoricalAttribute
,LinkedAttribute
Any methods which perform comparisons between attribute values use the equality matching rule associated with the attribute description.
Any methods which accept Object
based attribute values convert the attribute values to instances of
ByteString
using ByteString.valueOfObject(Object)
.
This class is conceptually a mathematical Set<ByteString>
.
However, this is declared to implement Collection<ByteString>
because java's
Set.equals(Object)
requires that all sets should be equal with any other set. This is impossible
for an attribute because it is testing attribute description's equality.
-
Method Summary
Modifier and TypeMethodDescriptiondefault boolean
Adds all of the provided attribute values to this attribute if they are not already present (optional operation).default boolean
add
(ByteString value) Addsvalue
to this attribute if it is not already present (optional operation).default boolean
addAll
(Collection<? extends ByteString> values) Adds all of the attribute values contained invalues
to this attribute if they are not already present (optional operation).default <T> boolean
addAll
(Collection<T> values, Collection<? super T> duplicateValues) Adds all of the attribute values contained invalues
to this attribute if they are not already present (optional operation).default void
clear()
Removes all of the attribute values from this attribute (optional operation).boolean
Returnstrue
if this attribute containsvalue
.boolean
containsAll
(Collection<?> values) Returnstrue
if this attribute contains all of the attribute values contained invalues
.boolean
Returnstrue
ifobject
is an attribute which is equal to this attribute.Returns the first attribute value in this attribute.default String
Returns the first attribute value in this attribute decoded as a UTF-8 string.void
forEachNormalizedValue
(BiConsumer<? super ByteString, ? super ByteString> action) Performs the provided action for each value and its associated normalized value in this attribute.Returns the attribute description of this attribute, which includes its attribute type and any options.default String
Returns the string representation of the attribute description of this attribute, which includes its attribute type and any options.int
hashCode()
Returns the hash code for this attribute.boolean
isEmpty()
Returnstrue
if this attribute contains no attribute values.default boolean
isReal()
Indicates whether this is a real attribute (persisted) rather than a virtual attribute (dynamically computed).boolean
Indicates whether this is a virtual attribute (dynamically computed) rather than a real attribute (persisted).iterator()
Returns an iterator over the attribute values in this attribute.boolean
matchesAnyNormalizedValue
(Predicate<? super ByteString> predicate) Returnstrue
if any values in this attribute match the provided predicate.boolean
matchesAnyNormalizedValue
(Map<ByteString, ByteString> normalizedValues) Returnstrue
if any values in this attribute match at least one of the values in the provided map.parse()
Returns a parser for this attribute which can be used for decoding values as different types of object.default Attribute
Adds all of the provided attribute values to this attribute if they are not already present (optional operation).default Attribute
put
(ByteString value) Addsvalue
to this attribute if it is not already present (optional operation).default boolean
Removesvalue
from this attribute if it is present (optional operation).default boolean
removeAll
(Collection<?> values) Removes all of the attribute values contained invalues
from this attribute if they are present (optional operation).default <T> boolean
removeAll
(Collection<T> values, Collection<? super T> missingValues) Removes all of the attribute values contained invalues
from this attribute if they are present (optional operation).default boolean
retainAll
(Collection<?> values) Retains only the attribute values in this attribute which are contained invalues
(optional operation).default <T> boolean
retainAll
(Collection<T> values, Collection<? super T> missingValues) Retains only the attribute values in this attribute which are contained invalues
(optional operation).int
size()
Returns the number of attribute values in this attribute.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.toString()
Returns a string representation of this attribute.Methods inherited from interface java.util.Collection
parallelStream, removeIf, spliterator, stream, toArray
-
Method Details
-
add
Addsvalue
to this attribute if it is not already present (optional operation). If this attribute already containsvalue
, the call leaves the attribute unchanged and returnsfalse
.- Specified by:
add
in interfaceCollection<ByteString>
- Parameters:
value
- The attribute value to be added to this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalue
wasnull
.
-
put
Addsvalue
to this attribute if it is not already present (optional operation).If this attribute already contains
value
, the call leaves the attribute unchanged. This method is equivalent toadd(ByteString)
except that it is designed for chaining by returning a reference to the updated attribute.- Parameters:
value
- The attribute value to be added to this attribute.- Returns:
- This attribute.
- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalue
wasnull
.
-
add
Adds all of the provided attribute values to this attribute if they are not already present (optional operation).Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.- Parameters:
values
- The attribute values to be added to this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
put
Adds all of the provided attribute values to this attribute if they are not already present (optional operation).Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.This method is equivalent to
add(Object...)
except that it is designed for chaining by returning a reference to the updated attribute.- Parameters:
values
- The attribute values to be added to this attribute.- Returns:
- This attribute.
- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
addAll
Adds all of the attribute values contained invalues
to this attribute if they are not already present (optional operation).An invocation of this method is equivalent to:
attribute.addAll(values, null);
- Specified by:
addAll
in interfaceCollection<ByteString>
- Parameters:
values
- The attribute values to be added to this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
addAll
Adds all of the attribute values contained invalues
to this attribute if they are not already present (optional operation). Any attribute values which are already present will be added toduplicateValues
if specified.Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.- Type Parameters:
T
- The type of the attribute value objects being added.- Parameters:
values
- The attribute values to be added to this attribute.duplicateValues
- A collection into which duplicate values will be added, ornull
if duplicate values should not be saved.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support addition of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
clear
default void clear()Removes all of the attribute values from this attribute (optional operation). This attribute will be empty after this call returns.- Specified by:
clear
in interfaceCollection<ByteString>
- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.
-
contains
Returnstrue
if this attribute containsvalue
.If
value
is not an instance ofByteString
then it will be converted using theByteString.valueOfObject(Object)
method.- Specified by:
contains
in interfaceCollection<ByteString>
- Parameters:
value
- The attribute value whose presence in this attribute is to be tested.- Returns:
true
if this attribute containsvalue
, orfalse
if not.- Throws:
NullPointerException
- Ifvalue
wasnull
.
-
containsAll
Returnstrue
if this attribute contains all of the attribute values contained invalues
.Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.- Specified by:
containsAll
in interfaceCollection<ByteString>
- Parameters:
values
- The attribute values whose presence in this attribute is to be tested.- Returns:
true
if this attribute contains all of the attribute values contained invalues
, orfalse
if not.- Throws:
NullPointerException
- Ifvalues
wasnull
.
-
equals
Returnstrue
ifobject
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.- Specified by:
equals
in interfaceCollection<ByteString>
- Overrides:
equals
in classObject
- Parameters:
object
- The object to be tested for equality with this attribute.- Returns:
true
ifobject
is an attribute which is equal to this attribute, orfalse
if not.
-
firstValue
ByteString firstValue()Returns the first attribute value in this attribute.- Returns:
- The first attribute value in this attribute.
- Throws:
NoSuchElementException
- If this attribute is empty.
-
firstValueAsString
Returns the first attribute value in this attribute decoded as a UTF-8 string.- Returns:
- The first attribute value in this attribute decoded as a UTF-8 string.
- Throws:
NoSuchElementException
- If this attribute is empty.
-
forEachNormalizedValue
Performs the provided action for each value and its associated normalized value in this attribute.- Parameters:
action
- The action to perform which will be passed the normalized value as the first parameter and the user provided value as the second parameter.
-
getAttributeDescription
AttributeDescription getAttributeDescription()Returns the attribute description of this attribute, which includes its attribute type and any options.- Returns:
- The attribute description.
-
getAttributeDescriptionAsString
Returns the string representation of the attribute description of this attribute, which includes its attribute type and any options.- Returns:
- The string representation of the attribute description.
-
hashCode
int hashCode()Returns the hash code for this attribute. It will be calculated as the sum of the hash codes of the attribute description and all of the attribute values.- Specified by:
hashCode
in interfaceCollection<ByteString>
- Overrides:
hashCode
in classObject
- Returns:
- The hash code for this attribute.
-
isEmpty
boolean isEmpty()Returnstrue
if this attribute contains no attribute values.- Specified by:
isEmpty
in interfaceCollection<ByteString>
- Returns:
true
if this attribute contains no attribute values.
-
isReal
default boolean isReal()Indicates whether this is a real attribute (persisted) rather than a virtual attribute (dynamically computed).- Returns:
true
if this is a real attribute.
-
isVirtual
boolean isVirtual()Indicates whether this is a virtual attribute (dynamically computed) rather than a real attribute (persisted).- Returns:
true
if this is a virtual attribute.
-
iterator
Iterator<ByteString> iterator()Returns an iterator over the attribute values in this attribute. The attribute values are returned in no particular order, unless the implementation of this attribute provides such a guarantee.- Specified by:
iterator
in interfaceCollection<ByteString>
- Specified by:
iterator
in interfaceIterable<ByteString>
- Returns:
- An iterator over the attribute values in this attribute.
-
matchesAnyNormalizedValue
Returnstrue
if any values in this attribute match at least one of the values in the provided map. Returnsfalse
if this attribute is empty or if the provided map is empty. The map elements are mappings from normalized values to their corresponding values, where the normalized values must have been normalized according to this attribute's equality matching rule.NOTE: this method returns
true
if the intersection of the normalized values in this attribute and the normalized values of the provided map is not empty.- Parameters:
normalizedValues
- The map whose elements are mappings from normalized values to their corresponding values.- Returns:
true
if any values in this attribute are contained in the provided map.
-
matchesAnyNormalizedValue
Returnstrue
if any values in this attribute match the provided predicate. Returnsfalse
if this attribute is empty.- Parameters:
predicate
- The predicate which will be passed the normalized value as the first parameter and the user provided value as the second parameter.- Returns:
true
if any values in this attribute match the provided predicate.
-
parse
AttributeParser parse()Returns a parser for this attribute which can be used for decoding values as different types of object.- Returns:
- A parser for this attribute.
-
remove
Removesvalue
from this attribute if it is present (optional operation). If this attribute does not containvalue
, the call leaves the attribute unchanged and returnsfalse
.If
value
is not an instance ofByteString
then it will be converted using theByteString.valueOfObject(Object)
method.- Specified by:
remove
in interfaceCollection<ByteString>
- Parameters:
value
- The attribute value to be removed from this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.NullPointerException
- Ifvalue
wasnull
.
-
removeAll
Removes all of the attribute values contained invalues
from this attribute if they are present (optional operation).Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.An invocation of this method is equivalent to:
attribute.removeAll(values, null);
- Specified by:
removeAll
in interfaceCollection<ByteString>
- Parameters:
values
- The attribute values to be removed from this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
removeAll
Removes all of the attribute values contained invalues
from this attribute if they are present (optional operation). Any attribute values which are not already present will be added tomissingValues
if specified.Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.- Type Parameters:
T
- The type of the attribute value objects being removed.- Parameters:
values
- The attribute values to be removed from this attribute.missingValues
- A collection into which missing values will be added, ornull
if missing values should not be saved.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
retainAll
Retains only the attribute values in this attribute which are contained invalues
(optional operation).Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.An invocation of this method is equivalent to:
attribute.retainAll(values, null);
- Specified by:
retainAll
in interfaceCollection<ByteString>
- Parameters:
values
- The attribute values to be retained in this attribute.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
retainAll
Retains only the attribute values in this attribute which are contained invalues
(optional operation). Any attribute values which are not already present will be added tomissingValues
if specified.Any attribute values which are not instances of
ByteString
will be converted using theByteString.valueOfObject(Object)
method.- Type Parameters:
T
- The type of the attribute value objects being retained.- Parameters:
values
- The attribute values to be retained in this attribute.missingValues
- A collection into which missing values will be added, ornull
if missing values should not be saved.- Returns:
true
if this attribute changed as a result of this call.- Throws:
UnsupportedOperationException
- If this attribute does not support removal of attribute values.NullPointerException
- Ifvalues
wasnull
.
-
size
int size()Returns the number of attribute values in this attribute.- Specified by:
size
in interfaceCollection<ByteString>
- Returns:
- The number of attribute values in this attribute.
-
toArray
ByteString[] toArray()Returns an array containing all of the attribute values contained in this 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.
- Specified by:
toArray
in interfaceCollection<ByteString>
- Returns:
- An array containing all of the attribute values contained in this attribute.
-
toArray
<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.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.
- Specified by:
toArray
in interfaceCollection<ByteString>
- Type Parameters:
T
- The type of elements contained inarray
.- Parameters:
array
- An array into which the elements of this attribute should be put.- Returns:
- An array containing all of the attribute values contained in this attribute.
- Throws:
ArrayStoreException
- If the runtime type ofarray
is not a supertype ofByteString
.NullPointerException
- Ifarray
wasnull
.
-
toString
String toString()Returns a string representation of this attribute.
-