Class 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 builds ConstrainedPathBuilder 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 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
      • getAdminGroup

        public org.opendaylight.yangtools.yang.common.Uint32 getAdminGroup()
      • 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()
      • getSource

        public org.opendaylight.yangtools.yang.common.Uint64 getSource()
      • 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)
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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