Class ElanInstanceBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstanceBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<ElanInstance>
,org.opendaylight.yangtools.concepts.CheckedBuilder<ElanInstance,java.lang.IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class ElanInstanceBuilder extends java.lang.Object implements org.opendaylight.yangtools.concepts.Builder<ElanInstance>
Class that buildsElanInstanceBuilder
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:
ElanInstanceBuilder createTarget(int fooXyzzy, int barBaz) { return new ElanInstanceBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of ElanInstanceBuilder, 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:
ElanInstanceBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description ElanInstanceBuilder()
ElanInstanceBuilder(ElanInstance base)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ElanInstanceBuilder
addAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>>
E$$augmentation(java.lang.Class<E$$> augmentationType)
ElanInstance
build()
java.lang.String
getDescription()
java.lang.String
getElanInstanceName()
java.util.List<ElanSegments>
getElanSegments()
org.opendaylight.yangtools.yang.common.Uint32
getElanTag()
java.util.List<ExternalTeps>
getExternalTeps()
org.opendaylight.yangtools.yang.common.Uint32
getMacTimeout()
java.lang.String
getPhysicalNetworkName()
org.opendaylight.yangtools.yang.common.Uint32
getSegmentationId()
java.lang.Class<? extends SegmentTypeBase>
getSegmentType()
java.lang.Boolean
isExternal()
ElanInstanceKey
key()
ElanInstanceBuilder
removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType)
ElanInstanceBuilder
setDescription(java.lang.String value)
ElanInstanceBuilder
setElanInstanceName(java.lang.String value)
ElanInstanceBuilder
setElanSegments(java.util.List<ElanSegments> values)
ElanInstanceBuilder
setElanTag(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setElanTag(Uint32)} instead.ElanInstanceBuilder
setElanTag(org.opendaylight.yangtools.yang.common.Uint32 value)
ElanInstanceBuilder
setExternal(java.lang.Boolean value)
ElanInstanceBuilder
setExternalTeps(java.util.List<ExternalTeps> values)
ElanInstanceBuilder
setMacTimeout(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMacTimeout(Uint32)} instead.ElanInstanceBuilder
setMacTimeout(org.opendaylight.yangtools.yang.common.Uint32 value)
ElanInstanceBuilder
setPhysicalNetworkName(java.lang.String value)
ElanInstanceBuilder
setSegmentationId(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setSegmentationId(Uint32)} instead.ElanInstanceBuilder
setSegmentationId(org.opendaylight.yangtools.yang.common.Uint32 value)
ElanInstanceBuilder
setSegmentType(java.lang.Class<? extends SegmentTypeBase> value)
ElanInstanceBuilder
withKey(ElanInstanceKey key)
-
-
-
Constructor Detail
-
ElanInstanceBuilder
public ElanInstanceBuilder()
-
ElanInstanceBuilder
public ElanInstanceBuilder(ElanInstance base)
-
-
Method Detail
-
key
public ElanInstanceKey key()
-
getDescription
public java.lang.String getDescription()
-
getElanInstanceName
public java.lang.String getElanInstanceName()
-
getElanSegments
public java.util.List<ElanSegments> getElanSegments()
-
getElanTag
public org.opendaylight.yangtools.yang.common.Uint32 getElanTag()
-
getExternalTeps
public java.util.List<ExternalTeps> getExternalTeps()
-
getMacTimeout
public org.opendaylight.yangtools.yang.common.Uint32 getMacTimeout()
-
getPhysicalNetworkName
public java.lang.String getPhysicalNetworkName()
-
getSegmentType
public java.lang.Class<? extends SegmentTypeBase> getSegmentType()
-
getSegmentationId
public org.opendaylight.yangtools.yang.common.Uint32 getSegmentationId()
-
isExternal
public java.lang.Boolean isExternal()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> E$$ augmentation(java.lang.Class<E$$> augmentationType)
-
withKey
public ElanInstanceBuilder withKey(ElanInstanceKey key)
-
setDescription
public ElanInstanceBuilder setDescription(java.lang.String value)
-
setElanInstanceName
public ElanInstanceBuilder setElanInstanceName(java.lang.String value)
-
setElanSegments
public ElanInstanceBuilder setElanSegments(java.util.List<ElanSegments> values)
-
setElanTag
public ElanInstanceBuilder setElanTag(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setElanTag
@Deprecated(forRemoval=true) public ElanInstanceBuilder setElanTag(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setElanTag(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setExternalTeps
public ElanInstanceBuilder setExternalTeps(java.util.List<ExternalTeps> values)
-
setMacTimeout
public ElanInstanceBuilder setMacTimeout(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setMacTimeout
@Deprecated(forRemoval=true) public ElanInstanceBuilder setMacTimeout(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMacTimeout(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setPhysicalNetworkName
public ElanInstanceBuilder setPhysicalNetworkName(java.lang.String value)
-
setSegmentType
public ElanInstanceBuilder setSegmentType(java.lang.Class<? extends SegmentTypeBase> value)
-
setSegmentationId
public ElanInstanceBuilder setSegmentationId(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setSegmentationId
@Deprecated(forRemoval=true) public ElanInstanceBuilder setSegmentationId(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setSegmentationId(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setExternal
public ElanInstanceBuilder setExternal(java.lang.Boolean value)
-
addAugmentation
public ElanInstanceBuilder addAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance> augmentationValue)
-
removeAugmentation
public ElanInstanceBuilder removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType)
-
build
public ElanInstance build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<ElanInstance>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<ElanInstance,java.lang.IllegalArgumentException>
-
-