Convert SchemaExportContext to Java record 60/107460/5
authorlubos-cicut <lubos.cicut@pantheon.tech>
Mon, 21 Aug 2023 10:55:40 +0000 (12:55 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Wed, 23 Aug 2023 07:39:26 +0000 (07:39 +0000)
SchemaExportContext Class converted into Java Record. Usage
of methods simplified.

JIRA: NETCONF-1136
Change-Id: Ia2f4ee168ca5e94bb883bbb4075886a91646fad9
Signed-off-by: lubos-cicut <lubos.cicut@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YangSchemaExportBodyWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YinSchemaExportBodyWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/api/SchemaExportContext.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfSchemaServiceTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/ParserIdentifierTest.java

index 1563793055f370070e30155a479b368bc85844b1..4738def08dbcd59ab51808fb97a4a381de2acea3 100644 (file)
@@ -32,12 +32,12 @@ public class YangSchemaExportBodyWriter extends AbstractSchemaExportBodyWriter {
     public void writeTo(final SchemaExportContext context, final Class<?> type, final Type genericType,
             final Annotation[] annotations, final MediaType mediaType,
             final MultivaluedMap<String, Object> httpHeaders, final OutputStream entityStream) throws IOException {
-        final Module module = context.getModule();
+        final Module module = context.module();
         final SourceIdentifier sourceId = new SourceIdentifier(module.getName(),
                 module.getQNameModule().getRevision().map(Revision::toString).orElse(null));
         final YangTextSchemaSource yangTextSchemaSource;
         try {
-            yangTextSchemaSource = context.getSourceProvider().getSource(sourceId).get();
+            yangTextSchemaSource = context.sourceProvider().getSource(sourceId).get();
         } catch (InterruptedException | ExecutionException e) {
             throw new WebApplicationException("Unable to retrieve source from SourceProvider.", e);
         }
index c9c320db87d94fc8983cf95736091ca1f3e49c12..e34ca244ebe5d3c8d0fb3eaa04a10b3e16bbf473 100644 (file)
@@ -28,7 +28,7 @@ public class YinSchemaExportBodyWriter extends AbstractSchemaExportBodyWriter {
             final Annotation[] annotations, final MediaType mediaType,
             final MultivaluedMap<String, Object> httpHeaders, final OutputStream entityStream) throws IOException {
         try {
-            YinExportUtils.writeModuleAsYinText(context.getModule().asEffectiveStatement(), entityStream);
+            YinExportUtils.writeModuleAsYinText(context.module().asEffectiveStatement(), entityStream);
         } catch (final XMLStreamException e) {
             throw new IOException("Failed to export module", e);
         }
index 5a9a288f53691e10e2eacb7ab964e52425824d01..a5f752f31242819651660e6b3e31c6539f7ec881 100644 (file)
@@ -7,31 +7,24 @@
  */
 package org.opendaylight.restconf.nb.rfc8040.rests.services.api;
 
+import static java.util.Objects.requireNonNull;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.mdsal.dom.api.DOMYangTextSourceProvider;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.Module;
 
-public final class SchemaExportContext {
-    private final EffectiveModelContext schemaContext;
-    private final Module module;
-    private final DOMYangTextSourceProvider sourceProvider;
-
-    public SchemaExportContext(final EffectiveModelContext schemaContext, final Module module,
-                               final DOMYangTextSourceProvider sourceProvider) {
-        this.schemaContext = schemaContext;
-        this.module = module;
-        this.sourceProvider = sourceProvider;
-    }
-
-    public EffectiveModelContext getSchemaContext() {
-        return schemaContext;
-    }
-
-    public Module getModule() {
-        return module;
-    }
+/**
+ * Holder of schema export context.
+ */
+public record SchemaExportContext(
+    @NonNull EffectiveModelContext schemaContext,
+    @Nullable Module module,
+    @NonNull DOMYangTextSourceProvider sourceProvider) {
 
-    public DOMYangTextSourceProvider getSourceProvider() {
-        return sourceProvider;
+    public SchemaExportContext {
+        requireNonNull(schemaContext);
+        requireNonNull(sourceProvider);
     }
 }
index a5e256ec7be443798982062a563214e2cd67eddd..252d9c471f739462f904b221132c14e07b84e7a3 100644 (file)
@@ -112,7 +112,7 @@ public class RestconfSchemaServiceTest {
         // verify
         assertNotNull("Export context should not be null", exportContext);
 
-        final Module module = exportContext.getModule();
+        final Module module = exportContext.module();
         assertNotNull("Existing module should be found", module);
 
         assertEquals("Not expected module name", "module1", module.getName());
@@ -134,7 +134,7 @@ public class RestconfSchemaServiceTest {
 
         // verify
         assertNotNull("Export context should not be null", exportContext);
-        assertNull("Not-existing module should not be found", exportContext.getModule());
+        assertNull("Not-existing module should not be found", exportContext.module());
     }
 
     /**
@@ -152,7 +152,7 @@ public class RestconfSchemaServiceTest {
         // verify
         assertNotNull("Export context should not be null", exportContext);
 
-        final Module module = exportContext.getModule();
+        final Module module = exportContext.module();
         assertNotNull("Existing module should be found", module);
 
         assertEquals("Not expected module name", "module1-behind-mount-point", module.getName());
@@ -174,7 +174,7 @@ public class RestconfSchemaServiceTest {
 
         // verify
         assertNotNull("Export context should not be null", exportContext);
-        assertNull("Not-existing module should not be found", exportContext.getModule());
+        assertNull("Not-existing module should not be found", exportContext.module());
     }
 
     /**
index fb9c727347c34101fa1887c5ee523a90b3221822..72fd2161d335a8932cd255967370fd3b8c7fd037 100644 (file)
@@ -393,7 +393,7 @@ public class ParserIdentifierTest {
 
         assertNotNull("Export context should be parsed", exportContext);
 
-        final Module module = exportContext.getModule();
+        final Module module = exportContext.module();
         assertNotNull("Export context should contains test module", module);
 
         assertEquals("Returned not expected module name", TEST_MODULE_NAME, module.getName());
@@ -414,7 +414,7 @@ public class ParserIdentifierTest {
                 null, sourceProvider);
 
         assertNotNull("Export context should be parsed", exportContext);
-        assertNull("Not-existing module should be null", exportContext.getModule());
+        assertNull("Not-existing module should be null", exportContext.module());
     }
 
     /**
@@ -443,7 +443,7 @@ public class ParserIdentifierTest {
                 MOUNT_POINT_IDENT + "/" + TEST_MODULE_NAME + "/" + TEST_MODULE_REVISION,
                 mountPointService, sourceProvider);
 
-        final Module module = exportContext.getModule();
+        final Module module = exportContext.module();
         assertNotNull("Export context should contains test module", module);
 
         assertEquals("Returned not expected module name",
@@ -466,7 +466,7 @@ public class ParserIdentifierTest {
                 mountPointService, sourceProvider);
 
         assertNotNull("Export context should be parsed", exportContext);
-        assertNull("Not-existing module should be null", exportContext.getModule());
+        assertNull("Not-existing module should be null", exportContext.module());
     }
 
     /**