Class AttributeInfoBuilder


  • public final class AttributeInfoBuilder
    extends Object
    Simplifies the process of building 'AttributeInfo' objects. This class is responsible for providing a default implementation of AttributeInfo. AttributeInfoBuilder bld = new AttributeInfoBuilder("email"); bld.setRequired(true); AttributeInfo info = bld.build();
    Since:
    1.0
    Author:
    Will Droste
    • Constructor Detail

      • AttributeInfoBuilder

        public AttributeInfoBuilder()
        Creates an builder with all the defaults set. The name must be set before the 'build' method is called otherwise an IllegalStateException is thrown.
         Name: <not set>
         Readable: true
         Writeable: true
         Required: false
         Type: string
         MultiValue: false
         
      • AttributeInfoBuilder

        public AttributeInfoBuilder​(String name)
        Creates an builder with all the defaults set. The name must be set before the 'build' method is called otherwise an IllegalStateException is thrown.
         Name: <not set>
         Readable: true
         Writeable: true
         Required: false
         Type: string
         MultiValue: false
         
      • AttributeInfoBuilder

        public AttributeInfoBuilder​(String name,
                                    Class<?> type)
        Creates an builder with all the defaults set. The name must be set before the 'build' method is called otherwise an IllegalStateException is thrown.
         Name: <not set>
         Readable: true
         Writeable: true
         Required: false
         Type: string
         MultiValue: false
         
    • Method Detail

      • setSubtype

        public AttributeInfoBuilder setSubtype​(String subtype)
        Optional subtype of the attribute. This defines a subformat or provides more specific definition what the attribute contains. E.g. it may define that the attribute contains case-insensitive string, URL, LDAP distinguished name and so on. The subtype may contain one of the pre-defined subtypes (a value form the Subtype enumeration). The subtype may also contain an URI that specifies a custom subtype that the connector recognizes and it is not defined in the pre-defined subtype enumeration. See AttributeInfo#Subtypes for the list of pre-defined subtypes.
        Parameters:
        subtype - subtype for an Attribute's value.
      • setReadable

        public AttributeInfoBuilder setReadable​(boolean value)
        Determines if the attribute is readable.
      • setCreateable

        public AttributeInfoBuilder setCreateable​(boolean value)
        Determines if the attribute is writable.
      • setRequired

        public AttributeInfoBuilder setRequired​(boolean value)
        Determines if this attribute is required.
      • setMultiValued

        public AttributeInfoBuilder setMultiValued​(boolean value)
        Determines if this attribute supports multivalue.
      • setUpdateable

        public AttributeInfoBuilder setUpdateable​(boolean value)
        Determines if this attribute writable during update.
      • setFlags

        public AttributeInfoBuilder setFlags​(Set<AttributeInfo.Flags> flags)
        Sets all of the flags for this builder.
        Parameters:
        flags - The set of attribute info flags. Null means clear all flags.

        NOTE: EnumSet.noneOf(AttributeInfo.Flags.class) results in an attribute with the default behavior:

        • updateable
        • creatable
        • returned by default
        • readable
        • single-valued
        • optional
      • build

        public static AttributeInfo build​(String name,
                                          Class<?> type,
                                          Set<AttributeInfo.Flags> flags)
        Convenience method to create an AttributeInfo. Equivalent to new AttributeInfoBuilder(name,type).setFlags(flags).build()
        Parameters:
        name - The name of the attribute
        type - The type of the attribute
        flags - The flags for the attribute. Null means clear all flags
        Returns:
        The attribute info
      • build

        public static AttributeInfo build​(String name,
                                          Class<?> type)
        Convenience method to create an AttributeInfo. Equivalent to AttributeInfoBuilder.build(name,type,null)
        Parameters:
        name - The name of the attribute
        type - The type of the attribute
        Returns:
        The attribute info
      • build

        public static AttributeInfo build​(String name)
        Convenience method to create an AttributeInfo. Equivalent to AttributeInfoBuilder.build(name, String.class)
        Parameters:
        name - The name of the attribute
        Returns:
        The attribute info
      • define

        public static AttributeInfoBuilder define​(String name)
        Convenience method to create a new AttributeInfoBuilder. Equivalent to: new AttributeInfoBuilder(name, String.class)
        Parameters:
        name - The name of the attribute
        Returns:
        The attribute info builder with predefined name and type value.
        Since:
        1.4
      • define

        public static AttributeInfoBuilder define​(String name,
                                                  Class<?> type)
        Convenience method to create a new AttributeInfoBuilder. Equivalent to: new AttributeInfoBuilder(name, type)
        Parameters:
        name - The name of the attribute
        type - The type of the attribute
        Returns:
        The attribute info builder with predefined name and type value.
        Since:
        1.4