package org.talend.dataquality.datamasking.functions;
import java.util.ArrayList;
import java.util.Random;
public abstract class MaskEmailByX extends MaskEmail {
private static final long serialVersionUID = 6433172298783284738L;
/**
* DOC qzhao Comment method "getPointPostions".<br>
* Gets the points' postions in the email domain
*
* @param address the original email address
* @param count @'s position
* @return a list of integer
*/
protected ArrayList<Integer> getPointPostions(String address, int count) {
ArrayList<Integer> list = new ArrayList<Integer>();
int c = address.indexOf('.', count);
while (c > 0) {
list.add(c++);
c = address.indexOf('.', c);
}
return list;
}
@Override
public void parse(String extraParameter, boolean keepNullValues, Random rand) {
super.parse(extraParameter, keepNullValues, rand);
if (parameters == null || parameters.length != 1 || parameters[0].length() != 1
|| !Character.isLetter(parameters[0].charAt(0)))
parameters = new String[] { "X" };
}
protected Character getMaskingCharacter() {
return parameters[0].charAt(0);
}
@Override
protected String maskInvalidEmail(String address) {
StringBuilder sb = new StringBuilder(address);
Character maskingCrct = getMaskingCharacter();
for (int i = 0; i < sb.length(); i++) {
sb.setCharAt(i, maskingCrct);
}
return sb.toString();
}
}