Class SecurityRuleBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.rules.attributes.security.rules.SecurityRuleBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<SecurityRule>
,org.opendaylight.yangtools.concepts.CheckedBuilder<SecurityRule,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
@Generated("mdsal-binding-generator") public class SecurityRuleBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<SecurityRule>
Class that buildsSecurityRuleBuilder
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:
SecurityRuleBuilder createTarget(int fooXyzzy, int barBaz) { return new SecurityRuleBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of SecurityRuleBuilder, 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:
SecurityRuleBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description SecurityRuleBuilder()
SecurityRuleBuilder(IdAttributes arg)
SecurityRuleBuilder(SecurityRule base)
SecurityRuleBuilder(SecurityRuleAttributes arg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SecurityRuleBuilder
addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<SecurityRule> augmentation)
Add an augmentation to this builder's product.<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<SecurityRule>>
E$$augmentation(Class<E$$> augmentationType)
SecurityRule
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.Class<? extends DirectionBase>
getDirection()
Class<? extends EthertypeBase>
getEthertype()
org.opendaylight.yangtools.yang.common.Uint16
getPortRangeMax()
org.opendaylight.yangtools.yang.common.Uint16
getPortRangeMin()
String
getProjectId()
SecurityRuleAttributes.Protocol
getProtocol()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
getRemoteGroupId()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix
getRemoteIpPrefix()
Long
getRevisionNumber()
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid
getSecurityGroupId()
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()
SecurityRuleKey
key()
SecurityRuleBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<SecurityRule>> augmentationType)
Remove an augmentation from this builder's product.SecurityRuleBuilder
setDirection(Class<? extends DirectionBase> value)
SecurityRuleBuilder
setEthertype(Class<? extends EthertypeBase> value)
SecurityRuleBuilder
setPortRangeMax(org.opendaylight.yangtools.yang.common.Uint16 value)
SecurityRuleBuilder
setPortRangeMin(org.opendaylight.yangtools.yang.common.Uint16 value)
SecurityRuleBuilder
setProjectId(String value)
SecurityRuleBuilder
setProtocol(SecurityRuleAttributes.Protocol value)
SecurityRuleBuilder
setRemoteGroupId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
SecurityRuleBuilder
setRemoteIpPrefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix value)
SecurityRuleBuilder
setRevisionNumber(Long value)
SecurityRuleBuilder
setSecurityGroupId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
SecurityRuleBuilder
setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
SecurityRuleBuilder
setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
SecurityRuleBuilder
withKey(SecurityRuleKey key)
-
-
-
Constructor Detail
-
SecurityRuleBuilder
public SecurityRuleBuilder()
-
SecurityRuleBuilder
public SecurityRuleBuilder(IdAttributes arg)
-
SecurityRuleBuilder
public SecurityRuleBuilder(SecurityRuleAttributes arg)
-
SecurityRuleBuilder
public SecurityRuleBuilder(SecurityRule 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
- SecurityRuleAttributes
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types or has property with incompatible value
-
key
public SecurityRuleKey key()
-
getDirection
public Class<? extends DirectionBase> getDirection()
-
getEthertype
public Class<? extends EthertypeBase> getEthertype()
-
getPortRangeMax
public org.opendaylight.yangtools.yang.common.Uint16 getPortRangeMax()
-
getPortRangeMin
public org.opendaylight.yangtools.yang.common.Uint16 getPortRangeMin()
-
getProjectId
public String getProjectId()
-
getProtocol
public SecurityRuleAttributes.Protocol getProtocol()
-
getRemoteGroupId
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid getRemoteGroupId()
-
getRemoteIpPrefix
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix getRemoteIpPrefix()
-
getRevisionNumber
public Long getRevisionNumber()
-
getSecurityGroupId
public org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid getSecurityGroupId()
-
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<SecurityRule>> E$$ augmentation(Class<E$$> augmentationType)
-
withKey
public SecurityRuleBuilder withKey(SecurityRuleKey key)
-
setDirection
public SecurityRuleBuilder setDirection(Class<? extends DirectionBase> value)
-
setEthertype
public SecurityRuleBuilder setEthertype(Class<? extends EthertypeBase> value)
-
setPortRangeMax
public SecurityRuleBuilder setPortRangeMax(org.opendaylight.yangtools.yang.common.Uint16 value)
-
setPortRangeMin
public SecurityRuleBuilder setPortRangeMin(org.opendaylight.yangtools.yang.common.Uint16 value)
-
setProjectId
public SecurityRuleBuilder setProjectId(String value)
-
setProtocol
public SecurityRuleBuilder setProtocol(SecurityRuleAttributes.Protocol value)
-
setRemoteGroupId
public SecurityRuleBuilder setRemoteGroupId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
setRemoteIpPrefix
public SecurityRuleBuilder setRemoteIpPrefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix value)
-
setRevisionNumber
public SecurityRuleBuilder setRevisionNumber(Long value)
-
setSecurityGroupId
public SecurityRuleBuilder setSecurityGroupId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
setTenantId
public SecurityRuleBuilder setTenantId(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
setUuid
public SecurityRuleBuilder setUuid(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid value)
-
addAugmentation
public SecurityRuleBuilder addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<SecurityRule> 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 SecurityRuleBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<SecurityRule>> 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 SecurityRule build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<SecurityRule>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<SecurityRule,IllegalArgumentException>
-
-