package org.talend.dataquality.datamasking.functions; import java.util.Random; public abstract class MaskEmailRandomly extends MaskEmail { private static final long serialVersionUID = 8651785081691625301L; @Override public void parse(String extraParameter, boolean keepNullValues, Random rand) { super.parse(extraParameter, keepNullValues, rand); if (parameters == null || parameters.length == 0) parameters = new String[] { EMPTY_STRING }; } /** * DOC qzhao Comment method "choosePropriateDomainIndex".<br> * * Chooses a appropriate index in the replacements where the item is different with the original input<br> * * @param originalDomain * @return */ protected int chooseAppropriateDomainIndex(String str) { int index; // This i allows to avoid infinite loop if the variable parameters contain only str substring // Arbitrarily, we choose 50 iterations int i = 0; do { index = rnd.nextInt(parameters.length); } while (str.equals(parameters[index]) && i++ < 50); return index; } @Override protected String maskInvalidEmail(String address) { return parameters[chooseAppropriateDomainIndex(address)]; } }