Convert PatchStatusContext to Java record 59/107459/4
authorlubos-cicut <lubos.cicut@pantheon.tech>
Tue, 22 Aug 2023 11:26:15 +0000 (13:26 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Tue, 22 Aug 2023 13:58:11 +0000 (13:58 +0000)
PatchStatusContext Class converted into Java Record. Usage
of methods simplified.

JIRA: NETCONF-1135
Change-Id: I9e6de67b0c4c31617a708470ce566d7519a48051
Signed-off-by: lubos-cicut <lubos.cicut@pantheon.tech>
restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/patch/PatchStatusContext.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/JsonPatchStatusBodyWriter.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/XmlPatchStatusBodyWriter.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImplTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/AbstractRestconfStrategyTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/MdsalRestconfStrategyTest.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/transactions/NetconfRestconfStrategyTest.java

index 95360f3cfec17482125bb6099add409813d144da..2506cd15e9c700e446f23175cbd48a129dce1c78 100644 (file)
@@ -8,37 +8,24 @@
 
 package org.opendaylight.restconf.common.patch;
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.List;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.restconf.common.errors.RestconfError;
 
-public class PatchStatusContext {
-
-    private final String patchId;
-    private final List<PatchStatusEntity> editCollection;
-    private boolean ok;
-    private List<RestconfError> globalErrors;
-
-    public PatchStatusContext(final String patchId, final List<PatchStatusEntity> editCollection,
-                              final boolean ok, final List<RestconfError> globalErrors) {
-        this.patchId = patchId;
-        this.editCollection = editCollection;
-        this.ok = ok;
-        this.globalErrors = globalErrors;
-    }
-
-    public String getPatchId() {
-        return patchId;
-    }
-
-    public List<PatchStatusEntity> getEditCollection() {
-        return editCollection;
-    }
-
-    public boolean isOk() {
-        return ok;
-    }
-
-    public List<RestconfError> getGlobalErrors() {
-        return globalErrors;
+/**
+ * Holder of patch status context.
+ */
+public record PatchStatusContext(
+    @NonNull String patchId,
+    @NonNull List<PatchStatusEntity> editCollection,
+    boolean ok,
+    @Nullable List<RestconfError> globalErrors) {
+
+    public PatchStatusContext {
+        requireNonNull(patchId);
+        requireNonNull(editCollection);
     }
 }
index d4bb1c0eaffcaa406155f81b7a6db13f862be037..76d9750a6e78b26b3dd9842ae54a07c39a05358d 100644 (file)
@@ -37,19 +37,19 @@ public class JsonPatchStatusBodyWriter extends AbstractPatchStatusBodyWriter {
         final JsonWriter jsonWriter = createJsonWriter(entityStream);
         jsonWriter.beginObject().name("ietf-yang-patch:yang-patch-status");
         jsonWriter.beginObject();
-        jsonWriter.name("patch-id").value(patchStatusContext.getPatchId());
-        if (patchStatusContext.isOk()) {
+        jsonWriter.name("patch-id").value(patchStatusContext.patchId());
+        if (patchStatusContext.ok()) {
             reportSuccess(jsonWriter);
         } else {
-            if (patchStatusContext.getGlobalErrors() != null) {
-                reportErrors(patchStatusContext.getGlobalErrors(), jsonWriter);
+            if (patchStatusContext.globalErrors() != null) {
+                reportErrors(patchStatusContext.globalErrors(), jsonWriter);
             }
 
             jsonWriter.name("edit-status");
             jsonWriter.beginObject();
             jsonWriter.name("edit");
             jsonWriter.beginArray();
-            for (final PatchStatusEntity patchStatusEntity : patchStatusContext.getEditCollection()) {
+            for (final PatchStatusEntity patchStatusEntity : patchStatusContext.editCollection()) {
                 jsonWriter.beginObject();
                 jsonWriter.name("edit-id").value(patchStatusEntity.getEditId());
                 if (patchStatusEntity.getEditErrors() != null) {
index 768041dfdf6f4a944d46a3ecd779e6b078432b94..0c460f1c7dfc0972e0965fde856f2da9e304548b 100644 (file)
@@ -55,17 +55,17 @@ public class XmlPatchStatusBodyWriter extends AbstractPatchStatusBodyWriter {
             throws XMLStreamException {
         writer.writeStartElement("", "yang-patch-status", XML_NAMESPACE);
         writer.writeStartElement("patch-id");
-        writer.writeCharacters(context.getPatchId());
+        writer.writeCharacters(context.patchId());
         writer.writeEndElement();
 
-        if (context.isOk()) {
+        if (context.ok()) {
             writer.writeEmptyElement("ok");
         } else {
-            if (context.getGlobalErrors() != null) {
-                reportErrors(context.getGlobalErrors(), writer);
+            if (context.globalErrors() != null) {
+                reportErrors(context.globalErrors(), writer);
             }
             writer.writeStartElement("edit-status");
-            for (final PatchStatusEntity patchStatusEntity : context.getEditCollection()) {
+            for (final PatchStatusEntity patchStatusEntity : context.editCollection()) {
                 writer.writeStartElement("edit");
                 writer.writeStartElement("edit-id");
                 writer.writeCharacters(patchStatusEntity.getEditId());
index e1cb3743151b593b313b52ef42c1b2ca4664c6be..e0bf7f843a6c600396199558ce3aad001fdf58a7 100644 (file)
@@ -426,9 +426,9 @@ public class RestconfDataServiceImplTest extends AbstractJukeboxTest {
         doReturn(immediateTrueFluentFuture())
                 .when(readWrite).exists(LogicalDatastoreType.CONFIGURATION, GAP_IID);
         final PatchStatusContext status = dataService.patchData(patch);
-        assertTrue(status.isOk());
-        assertEquals(3, status.getEditCollection().size());
-        assertEquals("replace data", status.getEditCollection().get(1).getEditId());
+        assertTrue(status.ok());
+        assertEquals(3, status.editCollection().size());
+        assertEquals("replace data", status.editCollection().get(1).getEditId());
     }
 
     @Test
@@ -446,9 +446,9 @@ public class RestconfDataServiceImplTest extends AbstractJukeboxTest {
         doReturn(immediateTrueFluentFuture()).when(readWrite).exists(LogicalDatastoreType.CONFIGURATION, GAP_IID);
 
         final PatchStatusContext status = dataService.patchData(patch);
-        assertTrue(status.isOk());
-        assertEquals(3, status.getEditCollection().size());
-        assertNull(status.getGlobalErrors());
+        assertTrue(status.ok());
+        assertEquals(3, status.editCollection().size());
+        assertNull(status.globalErrors());
     }
 
     @Test
@@ -467,13 +467,13 @@ public class RestconfDataServiceImplTest extends AbstractJukeboxTest {
         doReturn(true).when(readWrite).cancel();
         final PatchStatusContext status = dataService.patchData(patch);
 
-        assertFalse(status.isOk());
-        assertEquals(3, status.getEditCollection().size());
-        assertTrue(status.getEditCollection().get(0).isOk());
-        assertTrue(status.getEditCollection().get(1).isOk());
-        assertFalse(status.getEditCollection().get(2).isOk());
-        assertFalse(status.getEditCollection().get(2).getEditErrors().isEmpty());
-        final String errorMessage = status.getEditCollection().get(2).getEditErrors().get(0).getErrorMessage();
+        assertFalse(status.ok());
+        assertEquals(3, status.editCollection().size());
+        assertTrue(status.editCollection().get(0).isOk());
+        assertTrue(status.editCollection().get(1).isOk());
+        assertFalse(status.editCollection().get(2).isOk());
+        assertFalse(status.editCollection().get(2).getEditErrors().isEmpty());
+        final String errorMessage = status.editCollection().get(2).getEditErrors().get(0).getErrorMessage();
         assertEquals("Data does not exist", errorMessage);
     }
 
index fcc56479e9d362c17fec35439634db93136a11c6..4e72b2532fe3797a2bdbceedca78003f7dca1d2c 100644 (file)
@@ -343,7 +343,7 @@ abstract class AbstractRestconfStrategyTest extends AbstractJukeboxTest {
             InstanceIdentifierContext.ofLocalPath(JUKEBOX_SCHEMA, GAP_IID),
             List.of(new PatchEntity("edit", Operation.Delete, CREATE_AND_DELETE_TARGET)), "patchD"),
             deleteNonexistentDataTestStrategy(), JUKEBOX_SCHEMA);
-        assertFalse(patchStatusContext.isOk());
+        assertFalse(patchStatusContext.ok());
     }
 
     abstract @NonNull RestconfStrategy deleteNonexistentDataTestStrategy();
@@ -481,13 +481,13 @@ abstract class AbstractRestconfStrategyTest extends AbstractJukeboxTest {
 
     private static void patch(final PatchContext patchContext, final RestconfStrategy strategy, final boolean failed) {
         final var patchStatusContext = PatchDataTransactionUtil.patchData(patchContext, strategy, JUKEBOX_SCHEMA);
-        for (var entity : patchStatusContext.getEditCollection()) {
+        for (var entity : patchStatusContext.editCollection()) {
             if (failed) {
                 assertTrue("Edit " + entity.getEditId() + " failed", entity.isOk());
             } else {
                 assertTrue(entity.isOk());
             }
         }
-        assertTrue(patchStatusContext.isOk());
+        assertTrue(patchStatusContext.ok());
     }
 }
index dcc3da00e7936ef68bdf89922bc4ea1d582a0a14..d65154b9ee3d66f46cbf2436d0ab11f6b2061e9c 100644 (file)
@@ -206,7 +206,7 @@ public final class MdsalRestconfStrategyTest extends AbstractRestconfStrategyTes
 
     @Override
     void assertTestDeleteNonexistentData(final PatchStatusContext status) {
-        final var editCollection = status.getEditCollection();
+        final var editCollection = status.editCollection();
         assertEquals(1, editCollection.size());
         final var editErrors = editCollection.get(0).getEditErrors();
         assertEquals(1, editErrors.size());
index 6d981182d62c00b2a7fe3732865b7bf00cf523c8..5e9f2f5908ca51f194d2011a9cb61607d1d1eb90 100644 (file)
@@ -240,7 +240,7 @@ public final class NetconfRestconfStrategyTest extends AbstractRestconfStrategyT
 
     @Override
     void assertTestDeleteNonexistentData(final PatchStatusContext status) {
-        final var globalErrors = status.getGlobalErrors();
+        final var globalErrors = status.globalErrors();
         assertEquals(1, globalErrors.size());
         final var globalError = globalErrors.get(0);
         assertEquals(ErrorType.PROTOCOL, globalError.getErrorType());