Class ConstrainedPathBuilder
- java.lang.Object
-
- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev200120.ConstrainedPathBuilder
-
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Builder<ConstrainedPath>
,org.opendaylight.yangtools.concepts.CheckedBuilder<ConstrainedPath,IllegalArgumentException>
,org.opendaylight.yangtools.concepts.Mutable
,org.opendaylight.yangtools.concepts.MutationBehaviour<org.opendaylight.yangtools.concepts.Mutable>
public class ConstrainedPathBuilder extends Object implements org.opendaylight.yangtools.concepts.Builder<ConstrainedPath>
Class that buildsConstrainedPathBuilder
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:
ConstrainedPathBuilder createTarget(int fooXyzzy, int barBaz) { return new ConstrainedPathBuilderBuilder() .setFoo(new FooBuilder().setXyzzy(fooXyzzy).build()) .setBar(new BarBuilder().setBaz(barBaz).build()) .build(); }
This pattern is supported by the immutable nature of ConstrainedPathBuilder, 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:
ConstrainedPathBuilder
,Builder
-
-
Constructor Summary
Constructors Constructor Description ConstrainedPathBuilder()
ConstrainedPathBuilder(ConstrainedPath base)
ConstrainedPathBuilder(PathConstraints arg)
ConstrainedPathBuilder(PathDescriptions arg)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ConstrainedPathBuilder
addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath> augmentationValue)
<E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>>
E$$augmentation(Class<E$$> augmentationType)
ConstrainedPath
build()
void
fieldsFrom(org.opendaylight.yangtools.yang.binding.DataObject arg)
Set fields from given grouping argument.PathConstraints.AddressFamily
getAddressFamily()
org.opendaylight.yangtools.yang.common.Uint32
getAdminGroup()
DecimalBandwidth
getBandwidth()
org.opendaylight.yangtools.yang.common.Uint8
getClassType()
Delay
getDelay()
org.opendaylight.yangtools.yang.common.Uint64
getDestination()
Delay
getJitter()
Loss
getLoss()
org.opendaylight.yangtools.yang.common.Uint32
getMetric()
List<PathDescription>
getPathDescription()
org.opendaylight.yangtools.yang.common.Uint64
getSource()
ComputationStatus
getStatus()
org.opendaylight.yangtools.yang.common.Uint32
getTeMetric()
ConstrainedPathBuilder
removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>> augmentationType)
ConstrainedPathBuilder
setAddressFamily(PathConstraints.AddressFamily value)
ConstrainedPathBuilder
setAdminGroup(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setAdminGroup(Uint32)} instead.ConstrainedPathBuilder
setAdminGroup(org.opendaylight.yangtools.yang.common.Uint32 value)
ConstrainedPathBuilder
setBandwidth(DecimalBandwidth value)
ConstrainedPathBuilder
setClassType(Short value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setClassType(Uint8)} instead.ConstrainedPathBuilder
setClassType(org.opendaylight.yangtools.yang.common.Uint8 value)
ConstrainedPathBuilder
setDelay(Delay value)
ConstrainedPathBuilder
setDestination(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setDestination(Uint64)} instead.ConstrainedPathBuilder
setDestination(org.opendaylight.yangtools.yang.common.Uint64 value)
ConstrainedPathBuilder
setJitter(Delay value)
ConstrainedPathBuilder
setLoss(Loss value)
ConstrainedPathBuilder
setMetric(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMetric(Uint32)} instead.ConstrainedPathBuilder
setMetric(org.opendaylight.yangtools.yang.common.Uint32 value)
ConstrainedPathBuilder
setPathDescription(List<PathDescription> values)
ConstrainedPathBuilder
setSource(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setSource(Uint64)} instead.ConstrainedPathBuilder
setSource(org.opendaylight.yangtools.yang.common.Uint64 value)
ConstrainedPathBuilder
setStatus(ComputationStatus value)
ConstrainedPathBuilder
setTeMetric(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setTeMetric(Uint32)} instead.ConstrainedPathBuilder
setTeMetric(org.opendaylight.yangtools.yang.common.Uint32 value)
-
-
-
Constructor Detail
-
ConstrainedPathBuilder
public ConstrainedPathBuilder()
-
ConstrainedPathBuilder
public ConstrainedPathBuilder(PathConstraints arg)
-
ConstrainedPathBuilder
public ConstrainedPathBuilder(PathDescriptions arg)
-
ConstrainedPathBuilder
public ConstrainedPathBuilder(ConstrainedPath 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.params.xml.ns.yang.path.computation.rev200120.PathConstraints
- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.path.computation.rev200120.PathDescriptions
- Parameters:
arg
- grouping object- Throws:
IllegalArgumentException
- if given argument is none of valid types
-
getAddressFamily
public PathConstraints.AddressFamily getAddressFamily()
-
getAdminGroup
public org.opendaylight.yangtools.yang.common.Uint32 getAdminGroup()
-
getBandwidth
public DecimalBandwidth getBandwidth()
-
getClassType
public org.opendaylight.yangtools.yang.common.Uint8 getClassType()
-
getDelay
public Delay getDelay()
-
getDestination
public org.opendaylight.yangtools.yang.common.Uint64 getDestination()
-
getJitter
public Delay getJitter()
-
getLoss
public Loss getLoss()
-
getMetric
public org.opendaylight.yangtools.yang.common.Uint32 getMetric()
-
getPathDescription
public List<PathDescription> getPathDescription()
-
getSource
public org.opendaylight.yangtools.yang.common.Uint64 getSource()
-
getStatus
public ComputationStatus getStatus()
-
getTeMetric
public org.opendaylight.yangtools.yang.common.Uint32 getTeMetric()
-
augmentation
public <E$$ extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>> E$$ augmentation(Class<E$$> augmentationType)
-
setAddressFamily
public ConstrainedPathBuilder setAddressFamily(PathConstraints.AddressFamily value)
-
setAdminGroup
public ConstrainedPathBuilder setAdminGroup(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setAdminGroup
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setAdminGroup(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setAdminGroup(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setBandwidth
public ConstrainedPathBuilder setBandwidth(DecimalBandwidth value)
-
setClassType
public ConstrainedPathBuilder setClassType(org.opendaylight.yangtools.yang.common.Uint8 value)
-
setClassType
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setClassType(Short value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setClassType(Uint8)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setDelay
public ConstrainedPathBuilder setDelay(Delay value)
-
setDestination
public ConstrainedPathBuilder setDestination(org.opendaylight.yangtools.yang.common.Uint64 value)
-
setDestination
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setDestination(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setDestination(Uint64)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setJitter
public ConstrainedPathBuilder setJitter(Delay value)
-
setLoss
public ConstrainedPathBuilder setLoss(Loss value)
-
setMetric
public ConstrainedPathBuilder setMetric(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setMetric
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setMetric(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setMetric(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setPathDescription
public ConstrainedPathBuilder setPathDescription(List<PathDescription> values)
-
setSource
public ConstrainedPathBuilder setSource(org.opendaylight.yangtools.yang.common.Uint64 value)
-
setSource
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setSource(BigInteger value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setSource(Uint64)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
setStatus
public ConstrainedPathBuilder setStatus(ComputationStatus value)
-
setTeMetric
public ConstrainedPathBuilder setTeMetric(org.opendaylight.yangtools.yang.common.Uint32 value)
-
setTeMetric
@Deprecated(forRemoval=true) public ConstrainedPathBuilder setTeMetric(Long value)
Deprecated, for removal: This API element is subject to removal in a future version.Use {#link setTeMetric(Uint32)} instead.Utility migration setter.- Parameters:
value
- field value in legacy type- Returns:
- this builder
-
addAugmentation
public ConstrainedPathBuilder addAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>> augmentationType, org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath> augmentationValue)
-
removeAugmentation
public ConstrainedPathBuilder removeAugmentation(Class<? extends org.opendaylight.yangtools.yang.binding.Augmentation<ConstrainedPath>> augmentationType)
-
build
public ConstrainedPath build()
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.Builder<ConstrainedPath>
- Specified by:
build
in interfaceorg.opendaylight.yangtools.concepts.CheckedBuilder<ConstrainedPath,IllegalArgumentException>
-
-