package org.talend.dataquality.datamasking.functions; import java.util.ArrayList; import java.util.List; /** * Created by jteuladedenantes on 21/09/16. */ public class GenerateUniquePhoneNumberUs extends AbstractGenerateUniquePhoneNumber { private static final long serialVersionUID = 3821280930509201884L; @Override protected int getDigitsNumberToMask() { return 6; } @Override protected StringBuilder doValidGenerateMaskedField(String str) { // read the input str List<String> strs = new ArrayList<String>(); strs.add(str.substring(str.length() - 6, str.length() - 4)); strs.add(str.substring(str.length() - 4, str.length())); StringBuilder result = phoneNumberPattern.generateUniqueString(strs); if (result == null) { return null; } result.insert(0, str.substring(0, str.length() - 6)); return result; } @Override protected List<AbstractField> createFieldsListFromPattern() { List<AbstractField> fields = new ArrayList<AbstractField>(); List<String> secondAndThirdDigits = new ArrayList<String>(); String tmp; for (int i = 0; i <= 9; i++) { tmp = String.valueOf(i); for (int j = 0; j <= 9; j++) if (!(i == 1 && j == 1)) secondAndThirdDigits.add(tmp + j); } fields.add(new FieldEnum(secondAndThirdDigits, 2)); fields.add(new FieldInterval(0, 9999)); return fields; } }