import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserManager;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.Statement;
import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Iterator;
/**
* Created with IntelliJ IDEA.
* User: vagvaz
* Date: 9/4/13
* Time: 5:59 PM
* To change this template use File | Settings | File Templates.
*/
public class JacksonTest {
public static void main(String[] args) throws IOException {
// Column c = new Column(new Table("s","g"),"b");
// Column c1 = new Column(new Table("s","g"),"d");
// Column c2 = new Column(new Table("s","g"),"f");
// Column c3 = new Column(new Table("s","g"),"h");
// Map<String,Column> map = new HashMap<String,Column>();
// List<Column> list = new LinkedList<Column>();
// list.add(c);
// list.add(c1);
// list.add(c2);
// list.add(c3);
//
// for (Iterator<Column> iterator = list.iterator(); iterator.hasNext(); ) {
// Column next = iterator.next();
//
// map.put(next.getWholeColumnName(),next);
// }
// ComplexType ct = new ComplexType();
// ct.setColumns(list);
// ct.setTest(map);
ObjectMapper mapper = new ObjectMapper();
//mapper.configure(SerializationFeature.WRAP_ROOT_VALUE,true);
//mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE,true);
// String json = mapper.writeValueAsString(ct);
String json = "";
System.out.println(json);
// StringReader reader = new StringReader(json);
// ComplexType at = mapper.readValue(reader,ComplexType.class);
// System.out.println(at.toString());
json = "SELECT *,ble.f,ble.t,ble.* FROM testble join jointable on f=s join j2 on j2.f=ble.g WHERE foo > 10 and (foo < 15 and fle like \'adidas\') group by ble.f ORDER BY ble.g limit 5";
CCJSqlParserManager manager = new CCJSqlParserManager();
ObjectWriter writer = mapper.writer().withDefaultPrettyPrinter();
try {
Statement st = manager.parse(new StringReader(json));
String value = writer.writeValueAsString(st);
System.out.println("PRETTY\n" + value + "\nendpretty");
// System.out.println("yupi!!!\n"+value);
// HashMap<String, Statement> foo = new HashMap<String, Statement>();
JsonNode root = mapper.readTree(value);
JsonNode select = root.path("selectBody").path("selectItems");
Iterator<JsonNode> s = select.elements();
while (s.hasNext()) {
JsonNode n = s.next();
Iterator<String> ss = n.fieldNames();
while (ss.hasNext())
System.out.println("ss: " + ss.next());
System.out.println("node: " + n.toString());
}
System.out.println(select.toString());
JsonNode from = root.path("selectBody").path("joins");
JsonNode joins = root.path("selectBody").path("joins");
if (!joins.isNull()) {
System.out.println("has jjoints " + joins.toString());
Iterator<JsonNode> iterator = joins.elements();
while (iterator.hasNext()) {
JsonNode joinRoot = iterator.next();
System.out.println("------> " + joinRoot.toString());
}
}
// Table t = new Table();
System.out.println("text value " + (from.textValue() == null));
// t = mapper.readValue(String.valueOf(from),Table.class);
// System.out.println("t: " + t.getName() + " " + (t.getAlias() == null) );
} catch (JSQLParserException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
// try {
// json = "CREATE TABLE lefteria(sel int primary key,vim varchar(100) )";
// Statement st = manager.parse(new StringReader(json));
//
// String value = writer.writeValueAsString(st);
// System.out.println("yupi1!!!\n"+value);
// } catch (JSQLParserException e) {
// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
// }
// try {
// json = "INSERT INTO tab values(1,2,3,'llll')";
// Statement st = manager.parse(new StringReader(json));
// String value = writer.writeValueAsString(st);
// System.out.println("yup2i!!!\n"+value);
// } catch (JSQLParserException e) {
// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
// }
}
}