summaryrefslogtreecommitdiffstats
path: root/infra
diff options
context:
space:
mode:
Diffstat (limited to 'infra')
-rw-r--r--infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java31
-rw-r--r--infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java55
2 files changed, 25 insertions, 61 deletions
diff --git a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java
index 5121eb793..ff683b810 100644
--- a/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java
+++ b/infra/translate-impl/src/main/java/io/fd/honeycomb/translate/impl/write/GenericListWriter.java
@@ -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()));
- }
}
diff --git a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java
index ba8f1d992..012b5050f 100644
--- a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java
+++ b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/AbstractGenericWriter.java
@@ -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;
}