package net.sf.jsqlparser.test.simpleparsing;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.URL;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserManager;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.test.TestException;
import org.junit.Test;
public class CCJSqlParserManagerTest {
@Test
public void testParse() throws Exception {
CCJSqlParserManager parserManager = new CCJSqlParserManager();
URL simpleParsing = Thread.currentThread().getContextClassLoader().getResource("simple_parsing.txt");
try (BufferedReader in = new BufferedReader(new InputStreamReader(simpleParsing.openStream()))) {
String statement = "";
while (true) {
try {
statement = CCJSqlParserManagerTest.getStatement(in);
if (statement == null) {
break;
}
Statement parsedStm = parserManager.parse(new StringReader(statement));
//System.out.println(statement);
} catch (JSQLParserException e) {
throw new TestException("impossible to parse statement: " + statement, e);
}
}
}
}
public static String getStatement(BufferedReader in) throws Exception {
StringBuffer buf = new StringBuffer();
String line = null;
while ((line = CCJSqlParserManagerTest.getLine(in)) != null) {
if (line.length() == 0) {
break;
}
buf.append(line);
buf.append("\n");
}
if (buf.length() > 0) {
return buf.toString();
} else {
return null;
}
}
public static String getLine(BufferedReader in) throws Exception {
String line = null;
while (true) {
line = in.readLine();
if (line != null) {
line.trim();
// if ((line.length() != 0) && ((line.length() < 2) || (line.length() >= 2) && !(line.charAt(0) == '/' && line.charAt(1) == '/')))
if (((line.length() < 2) || (line.length() >= 2) && !(line.charAt(0) == '/' && line.charAt(1) == '/'))) {
break;
}
} else {
break;
}
}
return line;
}
}