Class ElanConfigBuilder

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

    public class ElanConfigBuilder
    extends java.lang.Object
    implements org.opendaylight.yangtools.concepts.Builder<ElanConfig>
    Class that builds ElanConfigBuilder 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:

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

    This pattern is supported by the immutable nature of ElanConfigBuilder, 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:
    ElanConfigBuilder, Builder
    • Constructor Detail

      • ElanConfigBuilder

        public ElanConfigBuilder()
      • ElanConfigBuilder

        public ElanConfigBuilder​(ElanConfig base)
    • Method Detail

      • getArpPuntTimeout

        public org.opendaylight.yangtools.yang.common.Uint32 getArpPuntTimeout()
      • getControllerInactivityProbe

        public org.opendaylight.yangtools.yang.common.Uint32 getControllerInactivityProbe()
      • getControllerMaxBackoff

        public org.opendaylight.yangtools.yang.common.Uint32 getControllerMaxBackoff()
      • getL2gwLogicalSwitchDelaySecs

        public org.opendaylight.yangtools.yang.common.Uint16 getL2gwLogicalSwitchDelaySecs()
      • getL2gwStaleVlanCleanupDelaySecs

        public org.opendaylight.yangtools.yang.common.Uint16 getL2gwStaleVlanCleanupDelaySecs()
      • getTempSmacLearnTimeout

        public org.opendaylight.yangtools.yang.common.Uint16 getTempSmacLearnTimeout()
      • isAutoConfigTransportZones

        public java.lang.Boolean isAutoConfigTransportZones()
      • isAutoCreateBridge

        public java.lang.Boolean isAutoCreateBridge()
      • isIntBridgeGenMac

        public java.lang.Boolean isIntBridgeGenMac()
      • isOpenstackVniSemanticsEnforced

        public java.lang.Boolean isOpenstackVniSemanticsEnforced()
      • isPuntLldpToController

        public java.lang.Boolean isPuntLldpToController()
      • isUseOfTunnels

        public java.lang.Boolean isUseOfTunnels()
      • augmentation

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

        public ElanConfigBuilder setArpPuntTimeout​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setArpPuntTimeout

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

        public ElanConfigBuilder setControllerInactivityProbe​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setControllerInactivityProbe

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

        public ElanConfigBuilder setControllerMaxBackoff​(org.opendaylight.yangtools.yang.common.Uint32 value)
      • setControllerMaxBackoff

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

        public ElanConfigBuilder setL2gwLogicalSwitchDelaySecs​(org.opendaylight.yangtools.yang.common.Uint16 value)
      • setL2gwLogicalSwitchDelaySecs

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

        public ElanConfigBuilder setL2gwStaleVlanCleanupDelaySecs​(org.opendaylight.yangtools.yang.common.Uint16 value)
      • setL2gwStaleVlanCleanupDelaySecs

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

        public ElanConfigBuilder setTempSmacLearnTimeout​(org.opendaylight.yangtools.yang.common.Uint16 value)
      • setTempSmacLearnTimeout

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

        public ElanConfigBuilder setAutoConfigTransportZones​(java.lang.Boolean value)
      • setAutoCreateBridge

        public ElanConfigBuilder setAutoCreateBridge​(java.lang.Boolean value)
      • setIntBridgeGenMac

        public ElanConfigBuilder setIntBridgeGenMac​(java.lang.Boolean value)
      • setOpenstackVniSemanticsEnforced

        public ElanConfigBuilder setOpenstackVniSemanticsEnforced​(java.lang.Boolean value)
      • setPuntLldpToController

        public ElanConfigBuilder setPuntLldpToController​(java.lang.Boolean value)
      • setUseOfTunnels

        public ElanConfigBuilder setUseOfTunnels​(java.lang.Boolean value)
      • addAugmentation

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

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

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