Class SubjectBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927._switch.certificate.SubjectBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<Subject>
,org.opendaylight.yangtools.concepts.CheckedBuilder<Subject,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class SubjectBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<Subject>
Class that buildsSubjectBuilder
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:
SubjectBuilder createTarget(int fooXyzzy, int barBaz) { return new SubjectBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of SubjectBuilder, 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:
SubjectBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description SubjectBuilder()
SubjectBuilder(Subject base)
SubjectBuilder(X500Principal arg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SubjectBuilder
addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<Subject> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>>
E$$augmentation(Class<E$$> augmentationType)
Subject
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.String
getCommonName()
String
getCountry()
String
getLocality()
String
getOrganization()
String
getOrganizationUnit()
String
getState()
SubjectBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>> augmentationType)
SubjectBuilder
setCommonName(String value)
SubjectBuilder
setCountry(String value)
SubjectBuilder
setLocality(String value)
SubjectBuilder
setOrganization(String value)
SubjectBuilder
setOrganizationUnit(String value)
SubjectBuilder
setState(String value)
-
-
-
Constructor Detail
-
SubjectBuilder
public SubjectBuilder()
-
SubjectBuilder
public SubjectBuilder(X500Principal arg)
-
SubjectBuilder
public SubjectBuilder(Subject 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.openflow.system.rev130927.X500Principal
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types
-
getCommonName
public String getCommonName()
-
getCountry
public String getCountry()
-
getLocality
public String getLocality()
-
getOrganization
public String getOrganization()
-
getOrganizationUnit
public String getOrganizationUnit()
-
getState
public String getState()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>> E$$ augmentation(Class<E$$> augmentationType)
-
setCommonName
public SubjectBuilder setCommonName(String value)
-
setCountry
public SubjectBuilder setCountry(String value)
-
setLocality
public SubjectBuilder setLocality(String value)
-
setOrganization
public SubjectBuilder setOrganization(String value)
-
setOrganizationUnit
public SubjectBuilder setOrganizationUnit(String value)
-
setState
public SubjectBuilder setState(String value)
-
addAugmentation
public SubjectBuilder addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<Subject> augmentationValue)
-
removeAugmentation
public SubjectBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<Subject>> augmentationType)
-
build
public Subject build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<Subject>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<Subject,IllegalArgumentException>
-
-