Class AceBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev160218.access.lists.acl.access.list.entries.AceBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<Ace>
,org.opendaylight.yangtools.concepts.CheckedBuilder<Ace,java.lang.IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
@Generated("mdsal-binding-generator") public class AceBuilder extends java.lang.Object implements org.opendaylight.yangtools.concepts.Builder<Ace>
Class that buildsAceBuilder
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:
AceBuilder createTarget(int fooXyzzy, int barBaz) { return new AceBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of AceBuilder, 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:
AceBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description AceBuilder()
AceBuilder(Ace base)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AceBuilder
addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<Ace> augmentation)
Add an augmentation to this builder's product.<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Ace>>
E$$augmentation(java.lang.Class<E$$> augmentationType)
Ace
build()
AceOperData
getAceOperData()
Actions
getActions()
Matches
getMatches()
java.lang.String
getRuleName()
AceKey
key()
AceBuilder
removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Ace>> augmentationType)
Remove an augmentation from this builder's product.AceBuilder
setAceOperData(AceOperData value)
AceBuilder
setActions(Actions value)
AceBuilder
setMatches(Matches value)
AceBuilder
setRuleName(java.lang.String value)
AceBuilder
withKey(AceKey key)
-
-
-
Constructor Detail
-
AceBuilder
public AceBuilder()
-
AceBuilder
public AceBuilder(Ace base)
-
-
Method Detail
-
key
public AceKey key()
-
getAceOperData
public AceOperData getAceOperData()
-
getActions
public Actions getActions()
-
getMatches
public Matches getMatches()
-
getRuleName
public java.lang.String getRuleName()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Ace>> E$$ augmentation(java.lang.Class<E$$> augmentationType)
-
withKey
public AceBuilder withKey(AceKey key)
-
setAceOperData
public AceBuilder setAceOperData(AceOperData value)
-
setActions
public AceBuilder setActions(Actions value)
-
setMatches
public AceBuilder setMatches(Matches value)
-
setRuleName
public AceBuilder setRuleName(java.lang.String value)
-
addAugmentation
public AceBuilder addAugmentation(org.opendaylight.yangtools.yang.binding.Augmentation<Ace> augmentation)
Add an augmentation to this builder's product.- Parameters:
augmentation
- augmentation to be added- Returns:
- this builder
- Throws:
java.lang.NullPointerException
- ifaugmentation
is null
-
removeAugmentation
public AceBuilder removeAugmentation(java.lang.Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Ace>> 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
-
-