Class ImmutablePolicy.Builder

  • Enclosing class:
    ImmutablePolicy

    @NotThreadSafe
    public static final class ImmutablePolicy.Builder
    extends java.lang.Object
    Builds instances of type ImmutablePolicy. Initialize attributes and then invoke the build() method to create an immutable instance.

    Builder is not thread-safe and generally should not be stored in a field or collection, but instead used immediately to create instances.

    • Method Detail

      • from

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder from​(Policy instance)
        Fill a builder with attribute values from the provided Policy instance. Regular attribute values will be replaced with those from the given instance. Absent optional values will not replace present values.
        Parameters:
        instance - The instance from which to copy values
        Returns:
        this builder for use in a chained invocation
      • id

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder id​(java.lang.String id)
        Initializes the optional value id to id.
        Parameters:
        id - The value for id
        Returns:
        this builder for chained invocation
      • id

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder id​(java.util.Optional<java.lang.String> id)
        Initializes the optional value id to id.
        Parameters:
        id - The value for id
        Returns:
        this builder for use in a chained invocation
      • description

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder description​(java.lang.String description)
        Initializes the optional value description to description.
        Parameters:
        description - The value for description
        Returns:
        this builder for chained invocation
      • description

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder description​(java.util.Optional<java.lang.String> description)
        Initializes the optional value description to description.
        Parameters:
        description - The value for description
        Returns:
        this builder for use in a chained invocation
      • name

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder name​(java.lang.String name)
        Initializes the value for the name attribute.
        Parameters:
        name - The value for name
        Returns:
        this builder for use in a chained invocation
      • rules

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder rules​(java.lang.String rules)
        Initializes the optional value rules to rules.
        Parameters:
        rules - The value for rules
        Returns:
        this builder for chained invocation
      • rules

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder rules​(java.util.Optional<java.lang.String> rules)
        Initializes the optional value rules to rules.
        Parameters:
        rules - The value for rules
        Returns:
        this builder for use in a chained invocation
      • datacenters

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder datacenters​(java.util.List<java.lang.String> datacenters)
        Initializes the optional value datacenters to datacenters.
        Parameters:
        datacenters - The value for datacenters
        Returns:
        this builder for chained invocation
      • datacenters

        @CanIgnoreReturnValue
        public final ImmutablePolicy.Builder datacenters​(java.util.Optional<? extends java.util.List<java.lang.String>> datacenters)
        Initializes the optional value datacenters to datacenters.
        Parameters:
        datacenters - The value for datacenters
        Returns:
        this builder for use in a chained invocation
      • build

        public ImmutablePolicy build()
        Builds a new ImmutablePolicy.
        Returns:
        An immutable instance of Policy
        Throws:
        java.lang.IllegalStateException - if any required attributes are missing