Add ImmutableMetadataNormalizedAnydata.ofOptional() 33/82333/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 30 May 2019 10:09:06 +0000 (12:09 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 30 May 2019 10:11:36 +0000 (12:11 +0200)
The only user of ImmutableMetadataNormalizedAnydata is using it
only optionally, based on metadata presence. This indicates a static
factory method is usable more than the plain constructor.

Change-Id: I0379fd89acfcf6d12264da9cbb041da772449988
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/ImmutableMetadataNormalizedAnydata.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/AbstractNormalizableAnydata.java

index 00d5a73fbcd67ae263002448f3eee1e38a920f5e..b6f4aa3443bfa2b6ea563566b62c84ed83513a57 100644 (file)
@@ -11,6 +11,7 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import java.io.IOException;
+import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.rfc7952.data.api.MetadataNormalizedAnydata;
 import org.opendaylight.yangtools.rfc7952.data.api.NormalizedMetadata;
@@ -32,6 +33,14 @@ public final class ImmutableMetadataNormalizedAnydata extends ImmutableNormalize
         this.metadata = requireNonNull(metadata);
     }
 
+    public static ImmutableNormalizedAnydata ofOptional(final SchemaContext schemaContext,
+            final DataSchemaNode contextNode, final NormalizedNode<?, ?> data,
+            final Optional<NormalizedMetadata> metadata) {
+        return metadata.isPresent()
+                ? new ImmutableMetadataNormalizedAnydata(schemaContext, contextNode, data, metadata.get())
+                        : new ImmutableNormalizedAnydata(schemaContext, contextNode, data);
+    }
+
     @Override
     public NormalizedMetadata getMetadata() {
         return metadata;
index 504a2ef3271b843c6dbd905649d2317b9499b8fb..e3967d0411072553956c246b494542bc339a5ea0 100644 (file)
@@ -11,14 +11,10 @@ import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.IOException;
-import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.rfc7952.data.api.NormalizedMetadata;
 import org.opendaylight.yangtools.rfc7952.data.util.ImmutableMetadataNormalizedAnydata;
 import org.opendaylight.yangtools.yang.data.api.schema.AnydataNormalizationException;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizableAnydata;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedAnydata;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -32,8 +28,8 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 @NonNullByDefault
 public abstract class AbstractNormalizableAnydata implements NormalizableAnydata {
     @Override
-    public final NormalizedAnydata normalizeTo(final SchemaContext schemaContext, final DataSchemaNode contextNode)
-            throws AnydataNormalizationException {
+    public final ImmutableNormalizedAnydata normalizeTo(final SchemaContext schemaContext,
+            final DataSchemaNode contextNode) throws AnydataNormalizationException {
         final NormalizedNodeMetadataResult result = new NormalizedNodeMetadataResult();
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
         try {
@@ -42,11 +38,8 @@ public abstract class AbstractNormalizableAnydata implements NormalizableAnydata
             throw new AnydataNormalizationException("Failed to normalize anydata", e);
         }
 
-        final NormalizedNode<?, ?> data = result.getResult();
-        final Optional<NormalizedMetadata> optMeta = result.getMetadata();
-        return optMeta.isPresent()
-                ? new ImmutableMetadataNormalizedAnydata(schemaContext, contextNode, data, optMeta.get())
-                        : new ImmutableNormalizedAnydata(schemaContext, contextNode, result.getResult());
+        return ImmutableMetadataNormalizedAnydata.ofOptional(schemaContext, contextNode, result.getResult(),
+            result.getMetadata());
     }
 
     @Override