Skip to content

Commit 55b3963

Browse files
authored
Merge pull request #30 from RUB-NDS/prettyXml2
Pretty xml
2 parents f80a129 + d7b6277 commit 55b3963

36 files changed

+512
-17
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>de.rub.nds</groupId>
55
<artifactId>ModifiableVariable</artifactId>
6-
<version>2.2</version>
6+
<version>2.3</version>
77
<packaging>jar</packaging>
88

99
<name>ModifiableVariable</name>

src/main/java/de/rub/nds/modifiablevariable/VariableModification.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ public E modify(E input) {
107107

108108
protected abstract E modifyImplementationHook(E input);
109109

110+
public abstract VariableModification<E> getModifiedCopy();
111+
110112
/**
111113
* Debugging modified variables. Getting stack trace can be time consuming,
112114
* thus we use isDebugEnabled() function

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerAddModification.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "summand", "modificationFilter", "postModification" })
1819
public class BigIntegerAddModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_ADD_LENGTH = 8;
22+
2023
private BigInteger summand;
2124

2225
public BigIntegerAddModification() {
@@ -39,4 +42,9 @@ public BigInteger getSummand() {
3942
public void setSummand(BigInteger summand) {
4043
this.summand = summand;
4144
}
45+
46+
@Override
47+
public VariableModification<BigInteger> getModifiedCopy() {
48+
return new BigIntegerAddModification(summand.add(new BigInteger(MAX_ADD_LENGTH, new Random())));
49+
}
4250
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerExplicitValueModification.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "explicitValue", "modificationFilter", "postModification" })
1819
public class BigIntegerExplicitValueModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_EXPLICIT_LENGTH = 8;
22+
2023
private BigInteger explicitValue;
2124

2225
public BigIntegerExplicitValueModification() {
@@ -38,4 +41,15 @@ public BigInteger getExplicitValue() {
3841
public void setExplicitValue(BigInteger explicitValue) {
3942
this.explicitValue = explicitValue;
4043
}
41-
}
44+
45+
@Override
46+
public VariableModification<BigInteger> getModifiedCopy() {
47+
Random r = new Random();
48+
if (r.nextBoolean()) {
49+
return new BigIntegerExplicitValueModification(explicitValue.add(new BigInteger(MAX_EXPLICIT_LENGTH, r)));
50+
} else {
51+
return new BigIntegerExplicitValueModification(
52+
explicitValue.subtract(new BigInteger(MAX_EXPLICIT_LENGTH, r)));
53+
}
54+
}
55+
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerInteractiveModification.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,10 @@ public interface InteractiveBigIntegerModification {
3636

3737
BigInteger modify(BigInteger oldVal);
3838
}
39+
40+
@Override
41+
public VariableModification<BigInteger> getModifiedCopy() {
42+
throw new UnsupportedOperationException("This method is not supported for interactive Modifactions");
43+
}
44+
3945
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerShiftLeftModification.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "shift", "modificationFilter", "postModification" })
1819
public class BigIntegerShiftLeftModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_SHIFT_LENGTH = 32;
22+
2023
private int shift;
2124

2225
public BigIntegerShiftLeftModification() {
@@ -42,4 +45,9 @@ public int getShift() {
4245
public void setShift(int shift) {
4346
this.shift = shift;
4447
}
48+
49+
@Override
50+
public VariableModification<BigInteger> getModifiedCopy() {
51+
return new BigIntegerShiftLeftModification(shift + new Random().nextInt(MAX_SHIFT_LENGTH));
52+
}
4553
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerShiftRightModification.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "shift", "modificationFilter", "postModification" })
1819
public class BigIntegerShiftRightModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_SHIFT_LENGTH = 32;
22+
2023
private int shift;
2124

2225
public BigIntegerShiftRightModification() {
@@ -42,4 +45,9 @@ public int getShift() {
4245
public void setShift(int shift) {
4346
this.shift = shift;
4447
}
48+
49+
@Override
50+
public VariableModification<BigInteger> getModifiedCopy() {
51+
return new BigIntegerShiftRightModification(shift + new Random().nextInt(MAX_SHIFT_LENGTH));
52+
}
4553
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerSubtractModification.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "subtrahend", "modificationFilter", "postModification" })
1819
public class BigIntegerSubtractModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_SUBTRACT_LENGTH = 8;
22+
2023
private BigInteger subtrahend;
2124

2225
public BigIntegerSubtractModification() {
@@ -42,4 +45,9 @@ public BigInteger getSubtrahend() {
4245
public void setSubtrahend(BigInteger subtrahend) {
4346
this.subtrahend = subtrahend;
4447
}
48+
49+
@Override
50+
public VariableModification<BigInteger> getModifiedCopy() {
51+
return new BigIntegerSubtractModification(subtrahend.add(new BigInteger(MAX_SUBTRACT_LENGTH, new Random())));
52+
}
4553
}

src/main/java/de/rub/nds/modifiablevariable/biginteger/BigIntegerXorModification.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,16 @@
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
1212
import java.math.BigInteger;
13+
import java.util.Random;
1314
import javax.xml.bind.annotation.XmlRootElement;
1415
import javax.xml.bind.annotation.XmlType;
1516

1617
@XmlRootElement
1718
@XmlType(propOrder = { "xor", "modificationFilter", "postModification" })
1819
public class BigIntegerXorModification extends VariableModification<BigInteger> {
1920

21+
private final static int MAX_XOR_LENGTH = 8;
22+
2023
private BigInteger xor;
2124

2225
public BigIntegerXorModification() {
@@ -42,4 +45,9 @@ public BigInteger getXor() {
4245
public void setXor(BigInteger xor) {
4346
this.xor = xor;
4447
}
48+
49+
@Override
50+
public VariableModification<BigInteger> getModifiedCopy() {
51+
return new BigIntegerXorModification(xor.add(new BigInteger(MAX_XOR_LENGTH, new Random())));
52+
}
4553
}

src/main/java/de/rub/nds/modifiablevariable/bool/BooleanExplicitValueModification.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,9 @@ public boolean isExplicitValue() {
3737
public void setExplicitValue(boolean explicitValue) {
3838
this.explicitValue = explicitValue;
3939
}
40+
41+
@Override
42+
public VariableModification<Boolean> getModifiedCopy() {
43+
return new BooleanExplicitValueModification(!explicitValue);
44+
}
4045
}

0 commit comments

Comments
 (0)