Class InterfaceAddressBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.genius.arputil.rev160406.interfaces.InterfaceAddressBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<InterfaceAddress>
,org.opendaylight.yangtools.concepts.CheckedBuilder<InterfaceAddress,java.lang.IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class InterfaceAddressBuilder extends java.lang.Object implements org.opendaylight.yangtools.concepts.Builder<InterfaceAddress>
Class that buildsInterfaceAddressBuilder
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:
InterfaceAddressBuilder createTarget(int fooXyzzy, int barBaz) { return new InterfaceAddressBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of InterfaceAddressBuilder, 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:
InterfaceAddressBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description InterfaceAddressBuilder()
InterfaceAddressBuilder(InterfaceAddress base)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description InterfaceAddressBuilder
addAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>>
E$$augmentation(java.lang.Class<E$$> augmentationType)
InterfaceAddress
build()
java.lang.String
getInterface()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress
getIpAddress()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress
getMacaddress()
InterfaceAddressKey
key()
InterfaceAddressBuilder
removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>> augmentationType)
InterfaceAddressBuilder
setInterface(java.lang.String value)
InterfaceAddressBuilder
setIpAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress value)
InterfaceAddressBuilder
setMacaddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress value)
InterfaceAddressBuilder
withKey(InterfaceAddressKey key)
-
-
-
Constructor Detail
-
InterfaceAddressBuilder
public InterfaceAddressBuilder()
-
InterfaceAddressBuilder
public InterfaceAddressBuilder(InterfaceAddress base)
-
-
Method Detail
-
key
public InterfaceAddressKey key()
-
getInterface
public java.lang.String getInterface()
-
getIpAddress
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress getIpAddress()
-
getMacaddress
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress getMacaddress()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>> E$$ augmentation(java.lang.Class<E$$> augmentationType)
-
withKey
public InterfaceAddressBuilder withKey(InterfaceAddressKey key)
-
setInterface
public InterfaceAddressBuilder setInterface(java.lang.String value)
-
setIpAddress
public InterfaceAddressBuilder setIpAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress value)
-
setMacaddress
public InterfaceAddressBuilder setMacaddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress value)
-
addAugmentation
public InterfaceAddressBuilder addAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress> augmentationValue)
-
removeAugmentation
public InterfaceAddressBuilder removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<InterfaceAddress>> augmentationType)
-
build
public InterfaceAddress build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<InterfaceAddress>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<InterfaceAddress,java.lang.IllegalArgumentException>
-
-