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)
Deprecated, for removal: This API element is subject to removal in a future version.Use eitheraddAugmentation(Augmentation)
orremoveAugmentation(Class)
instead.BandwidthLimitRulesBuilder
addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules> augmentation)
Add an augmentation to this builder's product.<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)
Remove an augmentation from this builder's product.BandwidthLimitRulesBuilder
setDirection(Class<? extends DirectionBase> value)
BandwidthLimitRulesBuilder
setMaxBurstKbps(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.UsesetMaxBurstKbps(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.UsesetMaxKbps(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.UsesetMaxBurstKbps(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.UsesetMaxKbps(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(org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules> augmentation)
Add an augmentation to this builder's product.- Parameters:
augmentation
- augmentation to be added- Returns:
- this builder
- Throws:
NullPointerException
- ifaugmentation
is null
-
addAugmentation
@Deprecated(forRemoval=true) public BandwidthLimitRulesBuilder addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules> augmentationValue)
Deprecated, for removal: This API element is subject to removal in a future version.Use eitheraddAugmentation(Augmentation)
orremoveAugmentation(Class)
instead.Add or remove an augmentation to this builder's product.- Parameters:
augmentationType
- augmentation type to be added or removedaugmentationValue
- augmentation value, null if the augmentation type should be removed- Returns:
- this builder
-
removeAugmentation
public BandwidthLimitRulesBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<BandwidthLimitRules>> 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 BandwidthLimitRules build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<BandwidthLimitRules>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<BandwidthLimitRules,IllegalArgumentException>
-
-