package org.identityconnectors.patternparser;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Map;
public final class ParserDebugger {
private ParserDebugger() {
}
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("usage: ParserDebugger parserFile dataFile");
}
try {
String parser = loadFromFile(args[0]);
MapTransform transform = (MapTransform) Transform.newTransform(parser);
transform.setDebug(true);
String text = loadFromFile(args[1]);
Map<String, Object> output = transform.transform(text);
System.out.println("\nResults:");
for (Map.Entry<String, Object> entry : output.entrySet()) {
System.out
.println(" " + entry.getKey() + "=" + resultToString(entry.getValue()));
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static String resultToString(Object result) {
if (result.getClass().isArray()) {
return Arrays.deepToString((Object[]) result);
} else if (result == null) {
return "<null>";
} else {
return result.toString();
}
}
private static String loadFromFile(String fileName) throws IOException {
BufferedReader is =
new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
StringBuffer data = new StringBuffer();
String line = null;
while ((line = is.readLine()) != null) {
data.append(line + "\n");
}
return data.toString();
}
}