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>
@Generated("mdsal-binding-generator") 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
-
-
-
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 or has property with incompatible value
-
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.UsesetLinkLocalIdentifier(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.UsesetLinkRemoteIdentifier(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(org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors> augmentation)
Add an augmentation to this builder's product.- Parameters:
augmentation
- augmentation to be added- Returns:
- this builder
- Throws:
NullPointerException
- ifaugmentation
is null
-
removeAugmentation
public LinkDescriptorsBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<LinkDescriptors>> 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 LinkDescriptors build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<LinkDescriptors>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<LinkDescriptors,IllegalArgumentException>
-
-