Class AugmentationGroupingResolver<G extends org.opendaylight.yangtools.binding.Grouping,T extends org.opendaylight.yangtools.binding.Augmentable<T>>
java.lang.Object
org.opendaylight.openflowplugin.extension.api.AugmentationGroupingResolver<G,T>
- Type Parameters:
G- Grouping typeT- Augmentable type
- All Implemented Interfaces:
org.opendaylight.yangtools.concepts.Immutable
@Beta
public final class AugmentationGroupingResolver<G extends org.opendaylight.yangtools.binding.Grouping,T extends org.opendaylight.yangtools.binding.Augmentable<T>>
extends Object
implements org.opendaylight.yangtools.concepts.Immutable
Resolver providing a bridge between a grouping and its various instantiations via augment. This is useful for
extracting the grouping's content from a DataObject's augmentations without knowing from which instantiation it
comes from.
Typical use case is, given a base grouping module:
module foo;
grouping foo {
container augmentable {
}
}
and a module independent of it:
module bar;
container bar {
uses foo:foo;
}
and
module baz;
container baz {
uses foo:foo;
}
an external module can perform:
module xyzzy;
import bar { prefix bar; }
import baz { prefix baz; }
grouping something {
// ...
}
augment /bar:bar/bar:augmentable {
uses something;
}
augment /baz:baz/baz:augmentable {
uses something;
}
The augmentations of bar and baz instantiations of grouping foo have an equivalent
augmentation introduced by xyzzy. This equivalence is not expressed is generated code, in that it is
not apparent given bar or baz there is an augmentation which provides something.
This class provides the static knowledge to ask for the contents of something given an instance of
augmentable, without knowing which augmentation introduces it.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classAugmentationGroupingResolver.Builder<G extends org.opendaylight.yangtools.binding.Grouping,T extends org.opendaylight.yangtools.binding.Augmentable<T>> static final classAugmentationGroupingResolver.Factory<T extends org.opendaylight.yangtools.binding.Augmentable<T>> -
Method Summary
Modifier and TypeMethodDescriptionstatic <G extends org.opendaylight.yangtools.binding.Grouping,T extends org.opendaylight.yangtools.binding.Augmentable<T>>
@NonNull AugmentationGroupingResolver.Builder<G, T> static <T extends org.opendaylight.yangtools.binding.Augmentable<T>>
@NonNull AugmentationGroupingResolver.Factory<T> factory(Class<T> augmentableClass, Set<Class<? extends org.opendaylight.yangtools.binding.Augmentation<T>>> augmentationClasses) findExtension(T data)
-
Method Details
-
findExtension
-
builder
public static <G extends org.opendaylight.yangtools.binding.Grouping,T extends org.opendaylight.yangtools.binding.Augmentable<T>> @NonNull AugmentationGroupingResolver.Builder<G,T> builder(Class<G> groupingClass) -
factory
public static <T extends org.opendaylight.yangtools.binding.Augmentable<T>> @NonNull AugmentationGroupingResolver.Factory<T> factory(Class<T> augmentableClass, Set<Class<? extends org.opendaylight.yangtools.binding.Augmentation<T>>> augmentationClasses)
-