-
Notifications
You must be signed in to change notification settings - Fork 2
/
StringMutator.java
32 lines (28 loc) · 1.57 KB
/
StringMutator.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package es.us.isa.jsonmutator.mutator.value.string0;
import es.us.isa.jsonmutator.mutator.AbstractMutator;
import es.us.isa.jsonmutator.mutator.value.common.operator.ChangeTypeOperator;
import es.us.isa.jsonmutator.mutator.value.common.operator.NullOperator;
import es.us.isa.jsonmutator.mutator.value.string0.operator.StringAddSpecialCharactersMutationOperator;
import es.us.isa.jsonmutator.mutator.value.string0.operator.StringBoundaryOperator;
import es.us.isa.jsonmutator.mutator.value.string0.operator.StringMutationOperator;
import es.us.isa.jsonmutator.mutator.value.string0.operator.StringReplacementOperator;
import es.us.isa.jsonmutator.util.OperatorNames;
import static es.us.isa.jsonmutator.util.PropertyManager.readProperty;
/**
* Given a set of string mutation operators, the StringMutator selects one based
* on their weights and returns the mutated string.
*
* @author Alberto Martin-Lopez
*/
public class StringMutator extends AbstractMutator {
public StringMutator() {
super();
prob = Float.parseFloat(readProperty("operator.value.string.prob"));
operators.put(OperatorNames.REPLACE, new StringReplacementOperator());
operators.put(OperatorNames.ADD_SPECIAL_CHARACTERS, new StringAddSpecialCharactersMutationOperator());
operators.put(OperatorNames.MUTATE, new StringMutationOperator());
operators.put(OperatorNames.BOUNDARY, new StringBoundaryOperator());
operators.put(OperatorNames.NULL, new NullOperator(String.class));
operators.put(OperatorNames.CHANGE_TYPE, new ChangeTypeOperator(String.class));
}
}