Class PortsBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc._case.multipart.reply.port.desc.PortsBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<Ports>
,org.opendaylight.yangtools.concepts.CheckedBuilder<Ports,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
@Generated("mdsal-binding-generator") public class PortsBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<Ports>
Class that buildsPorts
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:
Ports createPorts(int fooXyzzy, int barBaz) { return new PortsBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of Ports, 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 opportunities, 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:
Ports
,Builder
-
-
Constructor Summary
Constructors Constructor Description PortsBuilder()
PortsBuilder(Ports base)
PortsBuilder(PortGrouping arg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PortsBuilder
addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<Ports> augmentation)
Add an augmentation to this builder's product.<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Ports>>
E$$augmentation(Class<E$$> augmentationType)
Ports
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.PortFeatures
getAdvertisedFeatures()
PortFeaturesV10
getAdvertisedFeaturesV10()
PortConfig
getConfig()
PortConfigV10
getConfigV10()
PortFeatures
getCurrentFeatures()
PortFeaturesV10
getCurrentFeaturesV10()
org.opendaylight.yangtools.yang.common.Uint32
getCurrSpeed()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress
getHwAddr()
org.opendaylight.yangtools.yang.common.Uint32
getMaxSpeed()
String
getName()
PortFeatures
getPeerFeatures()
PortFeaturesV10
getPeerFeaturesV10()
org.opendaylight.yangtools.yang.common.Uint32
getPortNo()
PortState
getState()
PortStateV10
getStateV10()
PortFeatures
getSupportedFeatures()
PortFeaturesV10
getSupportedFeaturesV10()
PortsBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Ports>> augmentationType)
Remove an augmentation from this builder's product.PortsBuilder
setAdvertisedFeatures(PortFeatures value)
PortsBuilder
setAdvertisedFeaturesV10(PortFeaturesV10 value)
PortsBuilder
setConfig(PortConfig value)
PortsBuilder
setConfigV10(PortConfigV10 value)
PortsBuilder
setCurrentFeatures(PortFeatures value)
PortsBuilder
setCurrentFeaturesV10(PortFeaturesV10 value)
PortsBuilder
setCurrSpeed(org.opendaylight.yangtools.yang.common.Uint32 value)
PortsBuilder
setHwAddr(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress value)
PortsBuilder
setMaxSpeed(org.opendaylight.yangtools.yang.common.Uint32 value)
PortsBuilder
setName(String value)
PortsBuilder
setPeerFeatures(PortFeatures value)
PortsBuilder
setPeerFeaturesV10(PortFeaturesV10 value)
PortsBuilder
setPortNo(org.opendaylight.yangtools.yang.common.Uint32 value)
PortsBuilder
setState(PortState value)
PortsBuilder
setStateV10(PortStateV10 value)
PortsBuilder
setSupportedFeatures(PortFeatures value)
PortsBuilder
setSupportedFeaturesV10(PortFeaturesV10 value)
-
-
-
Constructor Detail
-
PortsBuilder
public PortsBuilder()
-
PortsBuilder
public PortsBuilder(PortGrouping arg)
-
PortsBuilder
public PortsBuilder(Ports 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:- PortGrouping
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types or has property with incompatible value
-
getAdvertisedFeatures
public PortFeatures getAdvertisedFeatures()
-
getAdvertisedFeaturesV10
public PortFeaturesV10 getAdvertisedFeaturesV10()
-
getConfig
public PortConfig getConfig()
-
getConfigV10
public PortConfigV10 getConfigV10()
-
getCurrSpeed
public org.opendaylight.yangtools.yang.common.Uint32 getCurrSpeed()
-
getCurrentFeatures
public PortFeatures getCurrentFeatures()
-
getCurrentFeaturesV10
public PortFeaturesV10 getCurrentFeaturesV10()
-
getHwAddr
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress getHwAddr()
-
getMaxSpeed
public org.opendaylight.yangtools.yang.common.Uint32 getMaxSpeed()
-
getName
public String getName()
-
getPeerFeatures
public PortFeatures getPeerFeatures()
-
getPeerFeaturesV10
public PortFeaturesV10 getPeerFeaturesV10()
-
getPortNo
public org.opendaylight.yangtools.yang.common.Uint32 getPortNo()
-
getState
public PortState getState()
-
getStateV10
public PortStateV10 getStateV10()
-
getSupportedFeatures
public PortFeatures getSupportedFeatures()
-
getSupportedFeaturesV10
public PortFeaturesV10 getSupportedFeaturesV10()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Ports>> E$$ augmentation(Class<E$$> augmentationType)
-
setAdvertisedFeatures
public PortsBuilder setAdvertisedFeatures(PortFeatures value)
-
setAdvertisedFeaturesV10
public PortsBuilder setAdvertisedFeaturesV10(PortFeaturesV10 value)
-
setConfig
public PortsBuilder setConfig(PortConfig value)
-
setConfigV10
public PortsBuilder setConfigV10(PortConfigV10 value)
-
setCurrSpeed
public PortsBuilder setCurrSpeed(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setCurrentFeatures
public PortsBuilder setCurrentFeatures(PortFeatures value)
-
setCurrentFeaturesV10
public PortsBuilder setCurrentFeaturesV10(PortFeaturesV10 value)
-
setHwAddr
public PortsBuilder setHwAddr(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress value)
-
setMaxSpeed
public PortsBuilder setMaxSpeed(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setName
public PortsBuilder setName(String value)
-
setPeerFeatures
public PortsBuilder setPeerFeatures(PortFeatures value)
-
setPeerFeaturesV10
public PortsBuilder setPeerFeaturesV10(PortFeaturesV10 value)
-
setPortNo
public PortsBuilder setPortNo(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setState
public PortsBuilder setState(PortState value)
-
setStateV10
public PortsBuilder setStateV10(PortStateV10 value)
-
setSupportedFeatures
public PortsBuilder setSupportedFeatures(PortFeatures value)
-
setSupportedFeaturesV10
public PortsBuilder setSupportedFeaturesV10(PortFeaturesV10 value)
-
addAugmentation
public PortsBuilder addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<Ports> 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 PortsBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Ports>> 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 Ports build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<Ports>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<Ports,IllegalArgumentException>
-
-