Class MeteringLabelBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.metering.rev150712.metering.labels.attributes.metering.labels.MeteringLabelBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<MeteringLabel>
,org.opendaylight.yangtools.concepts.CheckedBuilder<MeteringLabel,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
@Generated("mdsal-binding-generator") public class MeteringLabelBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<MeteringLabel>
Class that buildsMeteringLabelBuilder
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:
MeteringLabelBuilder createTarget(int fooXyzzy, int barBaz) { return new MeteringLabelBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of MeteringLabelBuilder, 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:
MeteringLabelBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description MeteringLabelBuilder()
MeteringLabelBuilder(BaseAttributes arg)
MeteringLabelBuilder(IdAttributes arg)
MeteringLabelBuilder(MeteringLabel base)
MeteringLabelBuilder(MeteringLabelAttributes arg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MeteringLabelBuilder
addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<MeteringLabel> augmentation)
Add an augmentation to this builder's product.<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<MeteringLabel>>
E$$augmentation(Class<E$$> augmentationType)
MeteringLabel
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.String
getName()
String
getProjectId()
Long
getRevisionNumber()
Boolean
getShared()
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()
MeteringLabelKey
key()
MeteringLabelBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<MeteringLabel>> augmentationType)
Remove an augmentation from this builder's product.MeteringLabelBuilder
setName(String value)
MeteringLabelBuilder
setProjectId(String value)
MeteringLabelBuilder
setRevisionNumber(Long value)
MeteringLabelBuilder
setShared(Boolean value)
MeteringLabelBuilder
setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
MeteringLabelBuilder
setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
MeteringLabelBuilder
withKey(MeteringLabelKey key)
-
-
-
Constructor Detail
-
MeteringLabelBuilder
public MeteringLabelBuilder()
-
MeteringLabelBuilder
public MeteringLabelBuilder(BaseAttributes arg)
-
MeteringLabelBuilder
public MeteringLabelBuilder(IdAttributes arg)
-
MeteringLabelBuilder
public MeteringLabelBuilder(MeteringLabelAttributes arg)
-
MeteringLabelBuilder
public MeteringLabelBuilder(MeteringLabel 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:- IdAttributes
- BaseAttributes
- MeteringLabelAttributes
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types or has property with incompatible value
-
key
public MeteringLabelKey key()
-
getName
public String getName()
-
getProjectId
public String getProjectId()
-
getRevisionNumber
public Long getRevisionNumber()
-
getShared
public Boolean getShared()
-
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<MeteringLabel>> E$$ augmentation(Class<E$$> augmentationType)
-
withKey
public MeteringLabelBuilder withKey(MeteringLabelKey key)
-
setName
public MeteringLabelBuilder setName(String value)
-
setProjectId
public MeteringLabelBuilder setProjectId(String value)
-
setRevisionNumber
public MeteringLabelBuilder setRevisionNumber(Long value)
-
setShared
public MeteringLabelBuilder setShared(Boolean value)
-
setTenantId
public MeteringLabelBuilder setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
setUuid
public MeteringLabelBuilder setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
addAugmentation
public MeteringLabelBuilder addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<MeteringLabel> 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 MeteringLabelBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<MeteringLabel>> 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 MeteringLabel build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<MeteringLabel>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<MeteringLabel,IllegalArgumentException>
-
-