Class AttributeParser


  • public final class AttributeParser
    extends Object
    A fluent API for parsing attributes as different types of object. An attribute parser is obtained from an entry using the method Entry.parseAttribute(java.lang.String).

    Methods throw an IllegalArgumentException when a value cannot be parsed (e.g. because its syntax is invalid). Methods which return a Set always return a modifiable non-null result, even if the attribute is null or empty.

    Examples:

     Entry entry = ...;
    
     Calendar timestamp = entry.parseAttribute("createTimestamp").asCalendar();
     boolean isEnabled = entry.parseAttribute("enabled").asBoolean(false);
    
     Entry group = ...;
     Schema schema = ...;
    
     Set<DN> members = group.parseAttribute("member").usingSchema(schema).asSetOfDN();
     
    See Also:
    Entry.parseAttribute(java.lang.String)
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T,​E extends Exception>
      T
      as​(org.forgerock.util.Function<ByteString,​? extends T,​E> f)
      Returns the first value decoded as a T using the provided Function, or null if the attribute does not contain any values.
      <T,​E extends Exception>
      T
      as​(org.forgerock.util.Function<ByteString,​? extends T,​E> f, T defaultValue)
      Returns the first value decoded as a T using the provided Function, or defaultValue if the attribute does not contain any values.
      Boolean asBoolean()
      Returns the first value decoded as a boolean, or null if the attribute does not contain any values.
      boolean asBoolean​(boolean defaultValue)
      Returns the first value decoded as an Boolean, or defaultValue if the attribute does not contain any values.
      ByteString asByteString()
      Returns the first value, or null if the attribute does not contain any values.
      ByteString asByteString​(ByteString defaultValue)
      Returns the first value, or defaultValue if the attribute does not contain any values.
      GeneralizedTime asGeneralizedTime()
      Returns the first value decoded as a GeneralizedTime using the generalized time syntax, or null if the attribute does not contain any values.
      GeneralizedTime asGeneralizedTime​(GeneralizedTime defaultValue)
      Returns the first value decoded as an GeneralizedTime using the generalized time syntax, or defaultValue if the attribute does not contain any values.
      Integer asInteger()
      Returns the first value decoded as an Integer, or null if the attribute does not contain any values.
      int asInteger​(int defaultValue)
      Returns the first value decoded as an Integer, or defaultValue if the attribute does not contain any values.
      Long asLong()
      Returns the first value decoded as a Long, or null if the attribute does not contain any values.
      long asLong​(long defaultValue)
      Returns the first value decoded as a Long, or defaultValue if the attribute does not contain any values.
      <T,​E extends Exception>
      Set<T>
      asSetOf​(org.forgerock.util.Function<ByteString,​? extends T,​E> f, Collection<? extends T> defaultValues)
      Returns the values decoded as a set of Ts using the provided Function, or defaultValues if the attribute does not contain any values.
      <T,​E extends Exception>
      Set<T>
      asSetOf​(org.forgerock.util.Function<ByteString,​? extends T,​E> f, T... defaultValues)
      Returns the values decoded as a set of Ts using the provided Function, or defaultValues if the attribute does not contain any values.
      Set<Boolean> asSetOfBoolean​(Boolean... defaultValues)
      Returns the values decoded as a set of Booleans, or defaultValues if the attribute does not contain any values.
      Set<Boolean> asSetOfBoolean​(Collection<Boolean> defaultValues)
      Returns the values decoded as a set of Booleans, or defaultValues if the attribute does not contain any values.
      Set<ByteString> asSetOfByteString​(Collection<ByteString> defaultValues)
      Returns the values contained in the attribute, or defaultValues if the attribute does not contain any values.
      Set<ByteString> asSetOfByteString​(ByteString... defaultValues)
      Returns the values contained in the attribute, or defaultValues if the attribute does not contain any values.
      Set<GeneralizedTime> asSetOfGeneralizedTime​(Collection<GeneralizedTime> defaultValues)
      Returns the values decoded as a set of GeneralizedTimes using the generalized time syntax, or defaultValues if the attribute does not contain any values.
      Set<GeneralizedTime> asSetOfGeneralizedTime​(GeneralizedTime... defaultValues)
      Returns the values decoded as a set of GeneralizedTimes using the generalized time syntax, or defaultValues if the attribute does not contain any values.
      Set<Integer> asSetOfInteger​(Integer... defaultValues)
      Returns the values decoded as a set of Integers, or defaultValues if the attribute does not contain any values.
      Set<Integer> asSetOfInteger​(Collection<Integer> defaultValues)
      Returns the values decoded as a set of Integers, or defaultValues if the attribute does not contain any values.
      Set<Long> asSetOfLong​(Long... defaultValues)
      Returns the values decoded as a set of Longs, or defaultValues if the attribute does not contain any values.
      Set<Long> asSetOfLong​(Collection<Long> defaultValues)
      Returns the values decoded as a set of Longs, or defaultValues if the attribute does not contain any values.
      Set<String> asSetOfString​(String... defaultValues)
      Returns the values decoded as a set of Strings, or defaultValues if the attribute does not contain any values.
      Set<String> asSetOfString​(Collection<String> defaultValues)
      Returns the values decoded as a set of Strings, or defaultValues if the attribute does not contain any values.
      String asString()
      Returns the first value decoded as a String, or null if the attribute does not contain any values.
      String asString​(String defaultValue)
      Returns the first value decoded as a String, or defaultValue if the attribute does not contain any values.
      static AttributeParser parseAttribute​(Attribute attribute)
      Returns an attribute parser for the provided attribute.
      AttributeParser requireValue()
      Throws a NoSuchElementException if the attribute referenced by this parser is null or empty.
      AttributeParser usingSchema​(Schema schema)
      Sets the Schema which will be used when parsing schema sensitive values such as DNs and attribute descriptions.
    • Method Detail

      • parseAttribute

        public static AttributeParser parseAttribute​(Attribute attribute)
        Returns an attribute parser for the provided attribute. null attributes are permitted and will be treated as if an empty attribute was provided.
        Parameters:
        attribute - The attribute to be parsed, which may be null.
        Returns:
        The attribute parser.
      • as

        public <T,​E extends Exception> T as​(org.forgerock.util.Function<ByteString,​? extends T,​E> f)
                                           throws E extends Exception
        Returns the first value decoded as a T using the provided Function, or null if the attribute does not contain any values.
        Type Parameters:
        T - The type of the value to be decoded.
        E - The type of exception thrown by the function.
        Parameters:
        f - The function which should be used to decode the value.
        Returns:
        The first value decoded as a T.
        Throws:
        E - If an error occurred when parsing the attribute.
        E extends Exception
      • as

        public <T,​E extends Exception> T as​(org.forgerock.util.Function<ByteString,​? extends T,​E> f,
                                                  T defaultValue)
                                           throws E extends Exception
        Returns the first value decoded as a T using the provided Function, or defaultValue if the attribute does not contain any values.
        Type Parameters:
        T - The type of the value to be decoded.
        E - The type of exception thrown by the function.
        Parameters:
        f - The function which should be used to decode the value.
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as a T.
        Throws:
        E - If an error occurred when parsing the attribute.
        E extends Exception
      • asBoolean

        public Boolean asBoolean()
        Returns the first value decoded as a boolean, or null if the attribute does not contain any values.
        Returns:
        The first value decoded as a boolean.
      • asBoolean

        public boolean asBoolean​(boolean defaultValue)
        Returns the first value decoded as an Boolean, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as an Boolean.
      • asByteString

        public ByteString asByteString()
        Returns the first value, or null if the attribute does not contain any values.
        Returns:
        The first value.
      • asByteString

        public ByteString asByteString​(ByteString defaultValue)
        Returns the first value, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value.
      • asGeneralizedTime

        public GeneralizedTime asGeneralizedTime()
        Returns the first value decoded as a GeneralizedTime using the generalized time syntax, or null if the attribute does not contain any values.
        Returns:
        The first value decoded as a GeneralizedTime.
      • asGeneralizedTime

        public GeneralizedTime asGeneralizedTime​(GeneralizedTime defaultValue)
        Returns the first value decoded as an GeneralizedTime using the generalized time syntax, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as an GeneralizedTime.
      • asInteger

        public Integer asInteger()
        Returns the first value decoded as an Integer, or null if the attribute does not contain any values.
        Returns:
        The first value decoded as an Integer.
      • asInteger

        public int asInteger​(int defaultValue)
        Returns the first value decoded as an Integer, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as an Integer.
      • asLong

        public Long asLong()
        Returns the first value decoded as a Long, or null if the attribute does not contain any values.
        Returns:
        The first value decoded as a Long.
      • asLong

        public long asLong​(long defaultValue)
        Returns the first value decoded as a Long, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as a Long.
      • asSetOf

        public <T,​E extends Exception> Set<T> asSetOf​(org.forgerock.util.Function<ByteString,​? extends T,​E> f,
                                                            Collection<? extends T> defaultValues)
                                                     throws E extends Exception
        Returns the values decoded as a set of Ts using the provided Function, or defaultValues if the attribute does not contain any values.
        Type Parameters:
        T - The type of the values to be decoded.
        E - The type of exception thrown by the function.
        Parameters:
        f - The function which should be used to decode values.
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Ts.
        Throws:
        E - If an error occurred when parsing the attribute.
        E extends Exception
      • asSetOf

        public <T,​E extends Exception> Set<T> asSetOf​(org.forgerock.util.Function<ByteString,​? extends T,​E> f,
                                                            T... defaultValues)
                                                     throws E extends Exception
        Returns the values decoded as a set of Ts using the provided Function, or defaultValues if the attribute does not contain any values.
        Type Parameters:
        T - The type of the values to be decoded.
        E - The type of exception thrown by the function.
        Parameters:
        f - The function which should be used to decode values.
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Ts.
        Throws:
        E - If an error occurred when parsing the attribute.
        E extends Exception
      • asSetOfBoolean

        public Set<Boolean> asSetOfBoolean​(Boolean... defaultValues)
        Returns the values decoded as a set of Booleans, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Booleans.
      • asSetOfBoolean

        public Set<Boolean> asSetOfBoolean​(Collection<Boolean> defaultValues)
        Returns the values decoded as a set of Booleans, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Booleans.
      • asSetOfByteString

        public Set<ByteString> asSetOfByteString​(ByteString... defaultValues)
        Returns the values contained in the attribute, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values contained in the attribute.
      • asSetOfByteString

        public Set<ByteString> asSetOfByteString​(Collection<ByteString> defaultValues)
        Returns the values contained in the attribute, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values contained in the attribute.
      • asSetOfGeneralizedTime

        public Set<GeneralizedTime> asSetOfGeneralizedTime​(Collection<GeneralizedTime> defaultValues)
        Returns the values decoded as a set of GeneralizedTimes using the generalized time syntax, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of GeneralizedTimes.
      • asSetOfGeneralizedTime

        public Set<GeneralizedTime> asSetOfGeneralizedTime​(GeneralizedTime... defaultValues)
        Returns the values decoded as a set of GeneralizedTimes using the generalized time syntax, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of GeneralizedTimes.
      • asSetOfInteger

        public Set<Integer> asSetOfInteger​(Collection<Integer> defaultValues)
        Returns the values decoded as a set of Integers, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Integers.
      • asSetOfInteger

        public Set<Integer> asSetOfInteger​(Integer... defaultValues)
        Returns the values decoded as a set of Integers, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Integers.
      • asSetOfLong

        public Set<Long> asSetOfLong​(Collection<Long> defaultValues)
        Returns the values decoded as a set of Longs, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Longs.
      • asSetOfLong

        public Set<Long> asSetOfLong​(Long... defaultValues)
        Returns the values decoded as a set of Longs, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Longs.
      • asSetOfString

        public Set<String> asSetOfString​(Collection<String> defaultValues)
        Returns the values decoded as a set of Strings, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Strings.
      • asSetOfString

        public Set<String> asSetOfString​(String... defaultValues)
        Returns the values decoded as a set of Strings, or defaultValues if the attribute does not contain any values.
        Parameters:
        defaultValues - The default values to return if the attribute is empty.
        Returns:
        The values decoded as a set of Strings.
      • asString

        public String asString()
        Returns the first value decoded as a String, or null if the attribute does not contain any values.
        Returns:
        The first value decoded as a String.
      • asString

        public String asString​(String defaultValue)
        Returns the first value decoded as a String, or defaultValue if the attribute does not contain any values.
        Parameters:
        defaultValue - The default value to return if the attribute is empty.
        Returns:
        The first value decoded as a String.
      • requireValue

        public AttributeParser requireValue()
                                     throws NoSuchElementException
        Throws a NoSuchElementException if the attribute referenced by this parser is null or empty.
        Returns:
        A reference to this attribute parser.
        Throws:
        NoSuchElementException - If the attribute referenced by this parser is null or empty.
      • usingSchema

        public AttributeParser usingSchema​(Schema schema)
        Sets the Schema which will be used when parsing schema sensitive values such as DNs and attribute descriptions.
        Parameters:
        schema - The Schema which will be used when parsing schema sensitive values.
        Returns:
        This attribute parser.