// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataquality.datamasking.functions;
/**
* created by jgonzalez on 17 juil. 2015 Detailled comment
*
*/
public class GenerateFromPattern extends Function<String> {
private static final long serialVersionUID = 7920843158759995757L;
@Override
protected String doGenerateMaskedField(String str) {
StringBuilder result = new StringBuilder(EMPTY_STRING);
int count = 0;
if (parameters != null)
for (int i = 0; i < parameters[0].length(); ++i, ++count) {
if (count < parameters[0].length()) {
switch (parameters[0].charAt(count)) {
case 'A':
result.append(UPPER.charAt(rnd.nextInt(26)));
break;
case 'a':
result.append(LOWER.charAt(rnd.nextInt(26)));
break;
case '9':
result.append(rnd.nextInt(9));
break;
case '\\':
if (parameters[0].charAt(count + 1) - 48 <= parameters.length) {
result.append(parameters[parameters[0].charAt(count + 1) - 48].trim());
}
count++;
break;
default:
if (!Character.isLetterOrDigit(parameters[0].charAt(count))) {
result.append(parameters[0].charAt(count));
}
break;
}
}
}
return result.toString();
}
}