Class PrefixListBuilder

  • All Implemented Interfaces:
    org.opendaylight.yangtools.concepts.Builder<PrefixList>, org.opendaylight.yangtools.concepts.CheckedBuilder<PrefixList,​java.lang.IllegalArgumentException>, org.opendaylight.yangtools.concepts.Mutable, org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>

    public class PrefixListBuilder
    extends java.lang.Object
    implements org.opendaylight.yangtools.concepts.Builder<PrefixList>
    Class that builds PrefixListBuilder instances. Overall design of the class is that of a fluent interface, where method chaining is used.

    In general, this class is supposed to be used like this template:

       
         PrefixListBuilder createTarget(int fooXyzzy, int barBaz) {
             return new PrefixListBuilderBuilder()
                 .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build())
                 .setBar(new BarBuilder().setBaz(barBaz).build())
                 .build();
         }
       
     

    This pattern is supported by the immutable nature of PrefixListBuilder, as instances can be freely passed around without worrying about synchronization issues.

    As a side note: method chaining results in:

    • very efficient Java bytecode, as the method invocation result, in this case the Builder reference, is on the stack, so further method invocations just need to fill method arguments for the next method invocation, which is terminated by build(), which is then returned from the method
    • better understanding by humans, as the scope of mutable state (the builder) is kept to a minimum and is very localized
    • better optimization oportunities, as the object scope is minimized in terms of invocation (rather than method) stack, making escape analysis a lot easier. Given enough compiler (JIT/AOT) prowess, the cost of th builder object can be completely eliminated
    See Also:
    PrefixListBuilder, Builder
    • Constructor Detail

      • PrefixListBuilder

        public PrefixListBuilder()
      • PrefixListBuilder

        public PrefixListBuilder​(PrefixList base)
    • Method Detail

      • getFlags

        public org.opendaylight.yangtools.yang.common.Uint8 getFlags()
      • getOptionLength

        public org.opendaylight.yangtools.yang.common.Uint8 getOptionLength()
      • getOptionType

        public org.opendaylight.yangtools.yang.common.Uint8 getOptionType()
      • getPreferredLifetime

        public org.opendaylight.yangtools.yang.common.Uint32 getPreferredLifetime()
      • getPrefix

        public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix getPrefix()
      • getPrefixLength

        public org.opendaylight.yangtools.yang.common.Uint8 getPrefixLength()
      • getReserved

        public org.opendaylight.yangtools.yang.common.Uint32 getReserved()
      • getValidLifetime

        public org.opendaylight.yangtools.yang.common.Uint32 getValidLifetime()
      • augmentation

        public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<PrefixList>> E$$ augmentation​(java.lang.Class<E$$> augmentationType)
      • setFlags

        public PrefixListBuilder setFlags​(org.opendaylight.yangtools.yang.common.Uint8 value)
      • setFlags

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setFlags​(java.lang.Short value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setFlags(Uint8)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setOptionLength

        public PrefixListBuilder setOptionLength​(org.opendaylight.yangtools.yang.common.Uint8 value)
      • setOptionLength

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setOptionLength​(java.lang.Short value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setOptionLength(Uint8)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setOptionType

        public PrefixListBuilder setOptionType​(org.opendaylight.yangtools.yang.common.Uint8 value)
      • setOptionType

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setOptionType​(java.lang.Short value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setOptionType(Uint8)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setPreferredLifetime

        public PrefixListBuilder setPreferredLifetime​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setPreferredLifetime

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setPreferredLifetime​(java.lang.Long value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setPreferredLifetime(Uint32)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setPrefix

        public PrefixListBuilder setPrefix​(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix value)
      • setPrefixLength

        public PrefixListBuilder setPrefixLength​(org.opendaylight.yangtools.yang.common.Uint8 value)
      • setPrefixLength

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setPrefixLength​(java.lang.Short value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setPrefixLength(Uint8)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setReserved

        public PrefixListBuilder setReserved​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setReserved

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setReserved​(java.lang.Long value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setReserved(Uint32)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • setValidLifetime

        public PrefixListBuilder setValidLifetime​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setValidLifetime

        @Deprecated(forRemoval=true)
        public PrefixListBuilder setValidLifetime​(java.lang.Long value)
        Deprecated, for removal: This API element is subject to removal in a future version.
        Use {#link setValidLifetime(Uint32)} instead.
        Utility migration setter.
        Parameters:
        value - field value in legacy type
        Returns:
        this builder
      • addAugmentation

        public PrefixListBuilder addAugmentation​(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<PrefixList>> augmentationType,
                                                 org.opendaylight.yangtools.yang.binding.Augmentation<PrefixList> augmentationValue)
      • removeAugmentation

        public PrefixListBuilder removeAugmentation​(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<PrefixList>> augmentationType)
      • build

        public PrefixList build()
        Specified by:
        build in interface org.opendaylight.yangtools.concepts.Builder<PrefixList>
        Specified by:
        build in interface org.opendaylight.yangtools.concepts.CheckedBuilder<PrefixList,​java.lang.IllegalArgumentException>