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>
@Generated("mdsal-binding-generator") 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(org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance> augmentation)
Add an augmentation to this builder's product.<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.Map<ElanSegmentsKey,ElanSegments>
getElanSegments()
org.opendaylight.yangtools.yang.common.Uint32
getElanTag()
java.lang.Boolean
getExternal()
java.util.Map<ExternalTepsKey,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()
Deprecated, for removal: This API element is subject to removal in a future version.ElanInstanceKey
key()
ElanInstanceBuilder
removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType)
Remove an augmentation from this builder's product.ElanInstanceBuilder
setDescription(java.lang.String value)
ElanInstanceBuilder
setElanInstanceName(java.lang.String value)
ElanInstanceBuilder
setElanSegments(java.util.List<ElanSegments> values)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetElanSegments(Map)
instead.ElanInstanceBuilder
setElanSegments(java.util.Map<ElanSegmentsKey,ElanSegments> values)
ElanInstanceBuilder
setElanTag(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetElanTag(Uint32)
instead.ElanInstanceBuilder
setElanTag(org.opendaylight.yangtools.yang.common.Uint32 value)
ElanInstanceBuilder
setExternal(java.lang.Boolean value)
ElanInstanceBuilder
setExternalTeps(java.util.List<ExternalTeps> values)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetExternalTeps(Map)
instead.ElanInstanceBuilder
setExternalTeps(java.util.Map<ExternalTepsKey,ExternalTeps> values)
ElanInstanceBuilder
setMacTimeout(java.lang.Long value)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetMacTimeout(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.UsesetSegmentationId(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.Map<ElanSegmentsKey,ElanSegments> getElanSegments()
-
getElanTag
public org.opendaylight.yangtools.yang.common.Uint32 getElanTag()
-
getExternal
public java.lang.Boolean getExternal()
-
isExternal
@Deprecated(forRemoval=true) public final java.lang.Boolean isExternal()
Deprecated, for removal: This API element is subject to removal in a future version.
-
getExternalTeps
public java.util.Map<ExternalTepsKey,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()
-
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.Map<ElanSegmentsKey,ElanSegments> values)
-
setElanSegments
@Deprecated(forRemoval=true) public ElanInstanceBuilder setElanSegments(java.util.List<ElanSegments> values)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetElanSegments(Map)
instead.Utility migration setter. IMPORTANT NOTE: This method does not completely match previous mechanics, as the list is processed as during this method's execution. Any future modifications of the list are NOT reflected in this builder nor its products.- Parameters:
values
- Legacy List of values- Returns:
- this builder
- Throws:
java.lang.IllegalArgumentException
- if the list contains entries with the same keyjava.lang.NullPointerException
- if the list contains a null entry
-
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.UsesetElanTag(Uint32)
instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setExternal
public ElanInstanceBuilder setExternal(java.lang.Boolean value)
-
setExternalTeps
public ElanInstanceBuilder setExternalTeps(java.util.Map<ExternalTepsKey,ExternalTeps> values)
-
setExternalTeps
@Deprecated(forRemoval=true) public ElanInstanceBuilder setExternalTeps(java.util.List<ExternalTeps> values)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetExternalTeps(Map)
instead.Utility migration setter. IMPORTANT NOTE: This method does not completely match previous mechanics, as the list is processed as during this method's execution. Any future modifications of the list are NOT reflected in this builder nor its products.- Parameters:
values
- Legacy List of values- Returns:
- this builder
- Throws:
java.lang.IllegalArgumentException
- if the list contains entries with the same keyjava.lang.NullPointerException
- if the list contains a null entry
-
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.UsesetMacTimeout(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.UsesetSegmentationId(Uint32)
instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
addAugmentation
public ElanInstanceBuilder addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance> augmentation)
Add an augmentation to this builder's product.- Parameters:
augmentation
- augmentation to be added- Returns:
- this builder
- Throws:
java.lang.NullPointerException
- ifaugmentation
is null
-
removeAugmentation
public ElanInstanceBuilder removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ElanInstance>> augmentationType)
Remove an augmentation from this builder's product. If this builder does not track such an augmentation type, this method does nothing.- Parameters:
augmentationType
- augmentation type to be removed- Returns:
- this builder
-
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>
-
-