package com.skp.experiment.common.join;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
public class JoinOptionUtils {
public static final String SRC_TABLE_OPTIONS = JoinOptionUtils.class.getName() + ".sourceTableOptions";
public static final String TGT_TABLE_OPTIONS = JoinOptionUtils.class.getName() + ".targetTableOptions";
public static final String INTER_DELIMETER = "::";
public static final String DELIMETER = ",";
public static final String NULL_STR = "";
public static List<JoinOption> parseOptionStrings(String optionStrs) {
List<JoinOption> result = new ArrayList<JoinOption>();
String[] options = optionStrs.split(INTER_DELIMETER);
for (String optionStr : options) {
JoinOption option = new JoinOption();
option.parseOption(optionStr);
result.add(option);
}
return result;
}
public static JoinOption parseOptionString(String optionStr) {
JoinOption option = new JoinOption();
option.parseOption(optionStr);
return option;
}
public static String[] splitPrefTokens(String line) {
return line.split(DELIMETER);
}
public static String fetchFileds(String[] tokens, List<Integer> keys) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < keys.size(); i++) {
if (i != 0) {
sb.append(DELIMETER);
}
//System.out.println("token(" + keys.get(i) + "):\t" + tokens[keys.get(i)]);
if (keys.get(i) >= 0 && keys.get(i) < tokens.length) {
sb.append(tokens[keys.get(i)]);
} else {
sb.append(NULL_STR);
}
}
return sb.toString();
}
}