AbstractGenericWriter: remove xxxCurrent methods 98/14098/3
authorMarek Gradzki <mgradzki@cisco.com>
Thu, 9 Aug 2018 08:07:36 +0000 (10:07 +0200)
committerMarek Gradzki <mgradzki@cisco.com>
Fri, 17 Aug 2018 10:18:19 +0000 (10:18 +0000)
Use xxxCurrentAttributes instead to simplify call graph.

Change-Id: I8201b115354dddd35ca0b63b2c72dfb4eac93646
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java
infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java

index 5121eb7..ff683b8 100644 (file)
@@ -85,30 +85,14 @@ public final class GenericListWriter<D extends DataObject & Identifiable<K>, K e
     }
 
     @Override
-    protected void writeCurrent(final InstanceIdentifier<D> id, final D data, final WriteContext ctx)
-        throws WriteFailedException {
-        super.writeCurrent(getManagedId(id, data), data, ctx);
-    }
-
-    @Override
-    protected void updateCurrent(final InstanceIdentifier<D> id, final D dataBefore, final D dataAfter,
-                                 final WriteContext ctx) throws WriteFailedException {
-        super.updateCurrent(getManagedId(id, dataBefore), dataBefore, dataAfter, ctx);
-    }
-
-    @Override
-    protected void deleteCurrent(final InstanceIdentifier<D> id, final D dataBefore, final WriteContext ctx)
-        throws WriteFailedException {
-        super.deleteCurrent(getManagedId(id, dataBefore), dataBefore, ctx);
-    }
-
-    @Override
-    protected InstanceIdentifier<D> getManagedId(@Nonnull final InstanceIdentifier<? extends DataObject> currentId,
-                                                 @Nonnull final D current) {
+    @SuppressWarnings("unchecked")
+    protected InstanceIdentifier<D> getSpecificId(@Nonnull final InstanceIdentifier<? extends DataObject> currentId,
+                                                  @Nonnull final D current) {
         final InstanceIdentifier<D> id = (InstanceIdentifier<D>) currentId;
         // Make sure the key is present
         if (isWildcarded(id)) {
-            return getSpecificId(id, current);
+            return RWUtils.replaceLastInId(id,
+                new InstanceIdentifier.IdentifiableItem<>(id.getTargetType(), current.getKey()));
         } else {
             return id;
         }
@@ -117,9 +101,4 @@ public final class GenericListWriter<D extends DataObject & Identifiable<K>, K e
     private boolean isWildcarded(final InstanceIdentifier<D> id) {
         return id.firstIdentifierOf(getManagedDataObjectType().getTargetType()).isWildcarded();
     }
-
-    private InstanceIdentifier<D> getSpecificId(final InstanceIdentifier<D> currentId, final D current) {
-        return RWUtils.replaceLastInId(currentId,
-            new InstanceIdentifier.IdentifiableItem<>(currentId.getTargetType(), current.getKey()));
-    }
 }
index ba8f1d9..012b505 100644 (file)
@@ -50,33 +50,6 @@ public abstract class AbstractGenericWriter<D extends DataObject> implements Wri
         this.validator = validator;
     }
 
-    protected void writeCurrent(final InstanceIdentifier<D> id, final D data, final WriteContext ctx)
-        throws WriteFailedException {
-        LOG.debug("{}: Writing current: {} data: {}", this, id, data);
-        writeCurrentAttributes(id, data, ctx);
-        LOG.debug("{}: Current node written successfully", this);
-    }
-
-    protected void updateCurrent(final InstanceIdentifier<D> id, final D dataBefore, final D dataAfter,
-                                 final WriteContext ctx) throws WriteFailedException {
-        LOG.debug("{}: Updating current: {} dataBefore: {}, datAfter: {}", this, id, dataBefore, dataAfter);
-
-        if (dataBefore.equals(dataAfter)) {
-            LOG.debug("{}: Skipping current(no update): {}", this, id);
-            // No change, ignore
-            return;
-        }
-        updateCurrentAttributes(id, dataBefore, dataAfter, ctx);
-        LOG.debug("{}: Current node updated successfully", this);
-    }
-
-    protected void deleteCurrent(final InstanceIdentifier<D> id, final D dataBefore, final WriteContext ctx)
-        throws WriteFailedException {
-        LOG.debug("{}: Deleting current: {} dataBefore: {}", this, id, dataBefore);
-        deleteCurrentAttributes(id, dataBefore, ctx);
-    }
-
-    @SuppressWarnings("unchecked")
     @Override
     public void processModification(@Nonnull final InstanceIdentifier<? extends DataObject> id,
                                     @Nullable final DataObject dataBefore,
@@ -89,12 +62,23 @@ public abstract class AbstractGenericWriter<D extends DataObject> implements Wri
                 id, getManagedDataObjectType(), this);
 
         if (isWrite(dataBefore, dataAfter)) {
-            writeCurrent((InstanceIdentifier<D>) id, castToManaged(dataAfter), ctx);
+            LOG.debug("{}: Writing {} data: {}", this, id, dataAfter);
+            final D after = castToManaged(dataAfter);
+            writeCurrentAttributes(getSpecificId(id, after), after, ctx);
         } else if (isDelete(dataBefore, dataAfter)) {
-            deleteCurrent((InstanceIdentifier<D>) id, castToManaged(dataBefore), ctx);
+            LOG.debug("{}: Deleting {} data: {}", this, id, dataBefore);
+            final D before = castToManaged(dataBefore);
+            deleteCurrentAttributes(getSpecificId(id, before), before, ctx);
         } else {
+            LOG.debug("{}: Updating {} dataBefore: {}, datAfter: {}", this, id, dataBefore, dataAfter);
             checkArgument(dataBefore != null && dataAfter != null, "No data to process");
-            updateCurrent((InstanceIdentifier<D>) id, castToManaged(dataBefore), castToManaged(dataAfter), ctx);
+            if (dataBefore.equals(dataAfter)) {
+                LOG.debug("{}: Skipping modification (no update): {}", this, id);
+                // No change, ignore
+                return;
+            }
+            final D before = castToManaged(dataBefore);
+            updateCurrentAttributes(getSpecificId(id, before), before, castToManaged(dataAfter), ctx);
         }
     }
 
@@ -113,10 +97,10 @@ public abstract class AbstractGenericWriter<D extends DataObject> implements Wri
 
         if (isWrite(dataBefore, dataAfter)) {
             final D after = castToManaged(dataAfter);
-            validator.validateWrite(getManagedId(id, after), after, ctx);
+            validator.validateWrite(getSpecificId(id, after), after, ctx);
         } else if (isDelete(dataBefore, dataAfter)) {
             final D before = castToManaged(dataBefore);
-            validator.validateDelete(getManagedId(id, before), before, ctx);
+            validator.validateDelete(getSpecificId(id, before), before, ctx);
         } else {
             checkArgument(dataBefore != null && dataAfter != null, "No data to process");
             if (dataBefore.equals(dataAfter)) {
@@ -125,12 +109,13 @@ public abstract class AbstractGenericWriter<D extends DataObject> implements Wri
                 return;
             }
             final D before = castToManaged(dataBefore);
-            validator.validateUpdate(getManagedId(id, before), before, castToManaged(dataAfter), ctx);
+            validator.validateUpdate(getSpecificId(id, before), before, castToManaged(dataAfter), ctx);
         }
     }
 
-    protected InstanceIdentifier<D> getManagedId(@Nonnull final InstanceIdentifier<? extends DataObject> currentId,
-                                                 @Nonnull final D current) {
+    @SuppressWarnings("unchecked")
+    protected InstanceIdentifier<D> getSpecificId(@Nonnull final InstanceIdentifier<? extends DataObject> currentId,
+                                                  @Nonnull final D current) {
         return (InstanceIdentifier<D>) currentId;
     }