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