Cleanup AbstractBindingRuntimeContext.getAvailableAugmentationTypes()
[mdsal.git] / binding / mdsal-binding-runtime-api / src / main / java / org / opendaylight / mdsal / binding / runtime / api / AbstractBindingRuntimeContext.java
index 876cdd42a79f09cfeca7f7a9cd712556140a441a..0cf67bc68fed7eefeb8134cf249d7651b799defa 100644 (file)
@@ -284,25 +284,18 @@ public abstract class AbstractBindingRuntimeContext implements BindingRuntimeCon
     public final ImmutableMap<AugmentationIdentifier, Type> getAvailableAugmentationTypes(
             final DataNodeContainer container) {
         if (container instanceof AugmentationTarget) {
-            final Map<AugmentationIdentifier, Type> identifierToType = new HashMap<>();
-            final BindingRuntimeTypes types = getTypes();
-            for (final AugmentationSchemaNode augment : ((AugmentationTarget) container).getAvailableAugmentations()) {
-                // Augmentation must have child nodes if is to be used with Binding classes
-                AugmentationSchemaNode augOrig = augment;
-                while (augOrig.getOriginalDefinition().isPresent()) {
-                    augOrig = augOrig.getOriginalDefinition().get();
-                }
-
-                if (!augment.getChildNodes().isEmpty()) {
-                    final Optional<Type> augType = types.findType(augOrig);
-                    if (augType.isPresent()) {
-                        identifierToType.put(getAugmentationIdentifier(augment), augType.get());
-                    }
+            final var augmentations = ((AugmentationTarget) container).getAvailableAugmentations();
+            if (!augmentations.isEmpty()) {
+                final var identifierToType = new HashMap<AugmentationIdentifier, Type>();
+                final var types = getTypes();
+                for (var augment : augmentations) {
+                    types.findOriginalAugmentationType(augment).ifPresent(augType -> {
+                        identifierToType.put(getAugmentationIdentifier(augment), augType);
+                    });
                 }
+                return ImmutableMap.copyOf(identifierToType);
             }
-            return ImmutableMap.copyOf(identifierToType);
         }
-
         return ImmutableMap.of();
     }