From 6e89b1df70a8ff1e8b217329ca0f203d7fa9ec56 Mon Sep 17 00:00:00 2001 From: Daniel D'Avella Date: Fri, 2 Feb 2024 12:27:41 -0500 Subject: [PATCH] Add diffSide field to CodeTFChange --- .../java/io/codemodder/codetf/CodeTFChange.java | 13 ++++++++++++- .../java/io/codemodder/codetf/CodeTFDiffSide.java | 6 ++++++ .../io/codemodder/codetf/DeserializeReportTest.java | 2 ++ src/test/resources/basic.codetf.json | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/codemodder/codetf/CodeTFDiffSide.java diff --git a/src/main/java/io/codemodder/codetf/CodeTFChange.java b/src/main/java/io/codemodder/codetf/CodeTFChange.java index af87fe3..39b9eaa 100644 --- a/src/main/java/io/codemodder/codetf/CodeTFChange.java +++ b/src/main/java/io/codemodder/codetf/CodeTFChange.java @@ -13,6 +13,7 @@ public final class CodeTFChange { private final int lineNumber; private final String description; + private final CodeTFDiffSide diffSide; private final Map properties; @@ -25,6 +26,7 @@ public CodeTFChange( @JsonProperty("lineNumber") final int lineNumber, @JsonProperty("properties") final Map properties, @JsonProperty("description") final String description, + @JsonProperty("diffSide") final String diffSide, @JsonProperty("packageActions") final List packageActions, @JsonProperty("parameters") final List parameters) { @@ -36,6 +38,7 @@ public CodeTFChange( this.properties = CodeTFValidator.toImmutableCopyOrEmptyOnNull(properties); this.packageActions = CodeTFValidator.toImmutableCopyOrEmptyOnNull(packageActions); this.description = CodeTFValidator.optionalString(description); + this.diffSide = CodeTFDiffSide.valueOf(CodeTFValidator.requireNonBlank(diffSide).toUpperCase()); this.parameters = parameters; } @@ -51,6 +54,10 @@ public int getLineNumber() { return lineNumber; } + public CodeTFDiffSide getDiffSide() { + return diffSide; + } + public List getPackageActions() { return packageActions; } @@ -67,7 +74,8 @@ public boolean equals(final Object o) { return lineNumber == that.lineNumber && Objects.equals(description, that.description) && Objects.equals(properties, that.properties) - && Objects.equals(parameters, that.parameters); + && Objects.equals(parameters, that.parameters) + && Objects.equals(diffSide, that.diffSide); } @Override @@ -83,6 +91,8 @@ public String toString() { + ", description='" + description + '\'' + + ", diffSide=" + + diffSide + ", properties=" + properties + ", parameters=" @@ -128,6 +138,7 @@ public CodeTFChange build() { originalChange.getLineNumber(), updatedProperties != null ? updatedProperties : originalChange.getProperties(), updatedDescription != null ? updatedDescription : originalChange.getDescription(), + originalChange.getDiffSide().name(), originalChange.getPackageActions(), originalChange.getParameters()); } diff --git a/src/main/java/io/codemodder/codetf/CodeTFDiffSide.java b/src/main/java/io/codemodder/codetf/CodeTFDiffSide.java new file mode 100644 index 0000000..ab45171 --- /dev/null +++ b/src/main/java/io/codemodder/codetf/CodeTFDiffSide.java @@ -0,0 +1,6 @@ +package io.codemodder.codetf; + +public enum CodeTFDiffSide { + LEFT, + RIGHT, +} diff --git a/src/test/java/io/codemodder/codetf/DeserializeReportTest.java b/src/test/java/io/codemodder/codetf/DeserializeReportTest.java index ec464f0..b5d486b 100644 --- a/src/test/java/io/codemodder/codetf/DeserializeReportTest.java +++ b/src/test/java/io/codemodder/codetf/DeserializeReportTest.java @@ -55,6 +55,7 @@ void it_deserializes_basic_report() throws IOException { assertThat( changeset.get(0).getPath(), equalTo("src/main/java/org/acme/MyDeserializerAction.java")); assertThat(changeset.get(0).getDiff(), equalTo("... udiff text...")); + assertThat(changeset.get(0).getChanges().get(0).getDiffSide(), equalTo(CodeTFDiffSide.RIGHT)); assertThat(changeset.get(1).getPath(), equalTo("pom.xml")); assertThat(changeset.get(1).getDiff(), equalTo("... pom udiff text...")); @@ -63,6 +64,7 @@ void it_deserializes_basic_report() throws IOException { assertThat( changeset.get(1).getChanges().get(0).getDescription(), equalTo("Added java-security-toolkit for MyDeserializationAction.java")); + assertThat(changeset.get(1).getChanges().get(0).getDiffSide(), equalTo(CodeTFDiffSide.LEFT)); assertThat(report.hasCodeChanges(), equalTo(true)); } diff --git a/src/test/resources/basic.codetf.json b/src/test/resources/basic.codetf.json index 797e911..f68da4d 100644 --- a/src/test/resources/basic.codetf.json +++ b/src/test/resources/basic.codetf.json @@ -37,6 +37,7 @@ { "lineNumber" : "153", "description" : "Added a call to ObjectInputStream#setObjectFilter() to prevent known malicious gadgets..", + "diffSide" : "right", "properties" : { }, "packageActions" : [ { @@ -54,6 +55,7 @@ "changes" : [ { "lineNumber" : "155", + "diffSide" : "left", "description" : "Added java-security-toolkit for MyDeserializationAction.java" } ]