Class BandwidthLimitRulesBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.qos.rev160613.qos.attributes.qos.policies.qos.policy.BandwidthLimitRulesBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<BandwidthLimitRules>
,org.opendaylight.yangtools.concepts.CheckedBuilder<BandwidthLimitRules,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class BandwidthLimitRulesBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<BandwidthLimitRules>
Class that buildsBandwidthLimitRulesBuilder
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:
BandwidthLimitRulesBuilder createTarget(int fooXyzzy, int barBaz) { return new BandwidthLimitRulesBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of BandwidthLimitRulesBuilder, 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:
BandwidthLimitRulesBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description BandwidthLimitRulesBuilder()
BandwidthLimitRulesBuilder(IdAttributes arg)
BandwidthLimitRulesBuilder(BandwidthlimitRuleAttributes arg)
BandwidthLimitRulesBuilder(BandwidthLimitRules base)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description BandwidthLimitRulesBuilder
addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>>
E$$augmentation(Class<E$$> augmentationType)
BandwidthLimitRules
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.Class<? extends DirectionBase>
getDirection()
org.opendaylight.yangtools.yang.common.Uint64
getMaxBurstKbps()
org.opendaylight.yangtools.yang.common.Uint64
getMaxKbps()
String
getProjectId()
Long
getRevisionNumber()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
getTenantId()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
getUuid()
BandwidthLimitRulesKey
key()
BandwidthLimitRulesBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> augmentationType)
BandwidthLimitRulesBuilder
setDirection(Class<? extends DirectionBase> value)
BandwidthLimitRulesBuilder
setMaxBurstKbps(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMaxBurstKbps(Uint64)} instead.BandwidthLimitRulesBuilder
setMaxBurstKbps(org.opendaylight.yangtools.yang.common.Uint64 value)
BandwidthLimitRulesBuilder
setMaxKbps(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMaxKbps(Uint64)} instead.BandwidthLimitRulesBuilder
setMaxKbps(org.opendaylight.yangtools.yang.common.Uint64 value)
BandwidthLimitRulesBuilder
setProjectId(String value)
BandwidthLimitRulesBuilder
setRevisionNumber(Long value)
BandwidthLimitRulesBuilder
setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
BandwidthLimitRulesBuilder
setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
BandwidthLimitRulesBuilder
withKey(BandwidthLimitRulesKey key)
-
-
-
Constructor Detail
-
BandwidthLimitRulesBuilder
public BandwidthLimitRulesBuilder()
-
BandwidthLimitRulesBuilder
public BandwidthLimitRulesBuilder(IdAttributes arg)
-
BandwidthLimitRulesBuilder
public BandwidthLimitRulesBuilder(BandwidthlimitRuleAttributes arg)
-
BandwidthLimitRulesBuilder
public BandwidthLimitRulesBuilder(BandwidthLimitRules 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.neutron.qos.rev160613.BandwidthlimitRuleAttributes
- org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.attrs.rev150712.IdAttributes
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types
-
key
public BandwidthLimitRulesKey key()
-
getDirection
public Class<? extends DirectionBase> getDirection()
-
getMaxBurstKbps
public org.opendaylight.yangtools.yang.common.Uint64 getMaxBurstKbps()
-
getMaxKbps
public org.opendaylight.yangtools.yang.common.Uint64 getMaxKbps()
-
getProjectId
public String getProjectId()
-
getRevisionNumber
public Long getRevisionNumber()
-
getTenantId
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid getTenantId()
-
getUuid
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid getUuid()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> E$$ augmentation(Class<E$$> augmentationType)
-
withKey
public BandwidthLimitRulesBuilder withKey(BandwidthLimitRulesKey key)
-
setDirection
public BandwidthLimitRulesBuilder setDirection(Class<? extends DirectionBase> value)
-
setMaxBurstKbps
public BandwidthLimitRulesBuilder setMaxBurstKbps(org.opendaylight.yangtools.yang.common.Uint64 value)
-
setMaxBurstKbps
@Deprecated(forRemoval=true) public BandwidthLimitRulesBuilder setMaxBurstKbps(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMaxBurstKbps(Uint64)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setMaxKbps
public BandwidthLimitRulesBuilder setMaxKbps(org.opendaylight.yangtools.yang.common.Uint64 value)
-
setMaxKbps
@Deprecated(forRemoval=true) public BandwidthLimitRulesBuilder setMaxKbps(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMaxKbps(Uint64)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setProjectId
public BandwidthLimitRulesBuilder setProjectId(String value)
-
setRevisionNumber
public BandwidthLimitRulesBuilder setRevisionNumber(Long value)
-
setTenantId
public BandwidthLimitRulesBuilder setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
setUuid
public BandwidthLimitRulesBuilder setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
addAugmentation
public BandwidthLimitRulesBuilder addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules> augmentationValue)
-
removeAugmentation
public BandwidthLimitRulesBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> augmentationType)
-
build
public BandwidthLimitRules build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<BandwidthLimitRules>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<BandwidthLimitRules,IllegalArgumentException>
-
-