Class LinkDescriptorsBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.object.type.link._case.LinkDescriptorsBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<LinkDescriptors>
,org.opendaylight.yangtools.concepts.CheckedBuilder<LinkDescriptors,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class LinkDescriptorsBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<LinkDescriptors>
Class that buildsLinkDescriptorsBuilder
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:
LinkDescriptorsBuilder createTarget(int fooXyzzy, int barBaz) { return new LinkDescriptorsBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of LinkDescriptorsBuilder, 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:
LinkDescriptorsBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description LinkDescriptorsBuilder()
LinkDescriptorsBuilder(LinkIdentifier arg)
LinkDescriptorsBuilder(LinkLrIdentifiers arg)
LinkDescriptorsBuilder(LinkDescriptors base)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description LinkDescriptorsBuilder
addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>>
E$$augmentation(Class<E$$> augmentationType)
LinkDescriptors
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.Ipv4InterfaceIdentifier
getIpv4InterfaceAddress()
Ipv4InterfaceIdentifier
getIpv4NeighborAddress()
Ipv6InterfaceIdentifier
getIpv6InterfaceAddress()
Ipv6InterfaceIdentifier
getIpv6NeighborAddress()
org.opendaylight.yangtools.yang.common.Uint32
getLinkLocalIdentifier()
org.opendaylight.yangtools.yang.common.Uint32
getLinkRemoteIdentifier()
TopologyIdentifier
getMultiTopologyId()
LinkDescriptorsBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> augmentationType)
LinkDescriptorsBuilder
setIpv4InterfaceAddress(Ipv4InterfaceIdentifier value)
LinkDescriptorsBuilder
setIpv4NeighborAddress(Ipv4InterfaceIdentifier value)
LinkDescriptorsBuilder
setIpv6InterfaceAddress(Ipv6InterfaceIdentifier value)
LinkDescriptorsBuilder
setIpv6NeighborAddress(Ipv6InterfaceIdentifier value)
LinkDescriptorsBuilder
setLinkLocalIdentifier(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setLinkLocalIdentifier(Uint32)} instead.LinkDescriptorsBuilder
setLinkLocalIdentifier(org.opendaylight.yangtools.yang.common.Uint32 value)
LinkDescriptorsBuilder
setLinkRemoteIdentifier(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setLinkRemoteIdentifier(Uint32)} instead.LinkDescriptorsBuilder
setLinkRemoteIdentifier(org.opendaylight.yangtools.yang.common.Uint32 value)
LinkDescriptorsBuilder
setMultiTopologyId(TopologyIdentifier value)
-
-
-
Constructor Detail
-
LinkDescriptorsBuilder
public LinkDescriptorsBuilder()
-
LinkDescriptorsBuilder
public LinkDescriptorsBuilder(LinkIdentifier arg)
-
LinkDescriptorsBuilder
public LinkDescriptorsBuilder(LinkLrIdentifiers arg)
-
LinkDescriptorsBuilder
public LinkDescriptorsBuilder(LinkDescriptors base)
-
-
Method Detail
-
fieldsFrom
public void fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument. Valid argument is instance of one of following types:- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkIdentifier
- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkLrIdentifiers
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types
-
getIpv4InterfaceAddress
public Ipv4InterfaceIdentifier getIpv4InterfaceAddress()
-
getIpv4NeighborAddress
public Ipv4InterfaceIdentifier getIpv4NeighborAddress()
-
getIpv6InterfaceAddress
public Ipv6InterfaceIdentifier getIpv6InterfaceAddress()
-
getIpv6NeighborAddress
public Ipv6InterfaceIdentifier getIpv6NeighborAddress()
-
getLinkLocalIdentifier
public org.opendaylight.yangtools.yang.common.Uint32 getLinkLocalIdentifier()
-
getLinkRemoteIdentifier
public org.opendaylight.yangtools.yang.common.Uint32 getLinkRemoteIdentifier()
-
getMultiTopologyId
public TopologyIdentifier getMultiTopologyId()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> E$$ augmentation(Class<E$$> augmentationType)
-
setIpv4InterfaceAddress
public LinkDescriptorsBuilder setIpv4InterfaceAddress(Ipv4InterfaceIdentifier value)
-
setIpv4NeighborAddress
public LinkDescriptorsBuilder setIpv4NeighborAddress(Ipv4InterfaceIdentifier value)
-
setIpv6InterfaceAddress
public LinkDescriptorsBuilder setIpv6InterfaceAddress(Ipv6InterfaceIdentifier value)
-
setIpv6NeighborAddress
public LinkDescriptorsBuilder setIpv6NeighborAddress(Ipv6InterfaceIdentifier value)
-
setLinkLocalIdentifier
public LinkDescriptorsBuilder setLinkLocalIdentifier(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setLinkLocalIdentifier
@Deprecated(forRemoval=true) public LinkDescriptorsBuilder setLinkLocalIdentifier(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setLinkLocalIdentifier(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setLinkRemoteIdentifier
public LinkDescriptorsBuilder setLinkRemoteIdentifier(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setLinkRemoteIdentifier
@Deprecated(forRemoval=true) public LinkDescriptorsBuilder setLinkRemoteIdentifier(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setLinkRemoteIdentifier(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setMultiTopologyId
public LinkDescriptorsBuilder setMultiTopologyId(TopologyIdentifier value)
-
addAugmentation
public LinkDescriptorsBuilder addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors> augmentationValue)
-
removeAugmentation
public LinkDescriptorsBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> augmentationType)
-
build
public LinkDescriptors build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<LinkDescriptors>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<LinkDescriptors,IllegalArgumentException>
-
-