@Before public void setup() throws Exception { GLC glc = new GLC( "E -> T E2 \n" + "E2 -> + T E2 | & \n" + "T -> F T2 \n" + "T2 -> * F T2 | & \n" + "F -> ( E ) | d"); ParserGenerator generator = new ParserGenerator(glc); parser1 = generator.getParser(); glc = new GLC("A -> B C \n B -> b | & \n C -> c"); generator = new ParserGenerator(glc); parser2 = generator.getParser(); glc = new GLC("S -> L L1\nL1 -> = L | &\nL -> * L | id"); generator = new ParserGenerator(glc); parser3 = generator.getParser(); glc = new GLC("S -> A a A b | B b B a\nA -> &\nB -> &"); generator = new ParserGenerator(glc); parser4 = generator.getParser(); glc = new GLC( "P -> begin D C end\nD -> int I | &\nI -> , id I | &\nC -> ; T = E C1 | T = E | com\nC1-> ; T = E C1| &\nE -> + T E1\nE1 -> + T E1 | &\nT -> id T1 \nT1 -> [ E ] | &\n"); generator = new ParserGenerator(glc); parser5 = generator.getParser(); glc = new GLC( "P -> B P1\nP1 -> ; B P1 | &\nI -> , id I | &\nB -> K V C\nK -> c K | &\nV -> v V | &\nC -> b C2 | &\nC2 -> K V ; C e C1 | C e C1 \nC1 -> com C1 | &\n"); generator = new ParserGenerator(glc); parser6 = generator.getParser(); }
/** * Generate Java beans with getters & setters as well as a json parser * * @param table * @return */ public static ArrayList<String> generateJavaBean(Table table) { if (table == null || table.getFields() == null || table.getFields().size() == 0) return null; ArrayList<String> javaOutput = new ArrayList<String>(); String fieldName; String fieldNameMethod; String fieldType; String line; // used to reduce the amount of necessary loop String line2 = "\n" + Utils.tabGen(1) + "public " + table.getName() + "("; javaOutput.add("\npublic class " + table.getName() + " {"); ArrayList<Field> fields = table.getFields(); // Field id = new Field("_id", "id", "long", null); // fields.add(id); // attributes for (Field f : fields) { if (f != null) { fieldType = f.getType(); if (!fieldType.equalsIgnoreCase(Constants.JUNCTION) && !fieldType.equalsIgnoreCase(Constants.CALLER)) { fieldName = Utils.getNamePascalCase(f.getName()); if (f.getType() != Constants.OBJECT) { if (fieldType.equalsIgnoreCase(Constants.URI)) { fieldType = Constants.INT; } if (fieldType != Constants.ARRAY) { line = Utils.tabGen(1) + "private " + fieldType + " " + fieldName + ";"; } else { line = Utils.tabGen(1) + "private ArrayList<Integer> " + fieldName + ";"; } javaOutput.add(line); // if(!fieldName.equalsIgnoreCase("id")) { line2 += fieldType + " " + fieldName; if (fields.indexOf(f) < fields.size() - 1) { line2 += ", "; } // } } } } } line2 += ") {"; line2 += "\n" + Utils.tabGen(2) + "super();"; // constructors line = "\n" + Utils.tabGen(1) + "public " + table.getName() + "() {"; line += "\n" + Utils.tabGen(2) + "super();\n" + Utils.tabGen(1) + "}"; javaOutput.add(line); for (Field f : fields) { if (f != null) { fieldType = f.getType(); if (!fieldType.equalsIgnoreCase(Constants.JUNCTION) && !fieldType.equalsIgnoreCase(Constants.CALLER)) { fieldName = Utils.getNamePascalCase(f.getName()); if (fieldName != null) { line2 += "\n" + Utils.tabGen(2) + "this." + fieldName + " = " + fieldName + ";"; } } } } line2 += "\n" + Utils.tabGen(1) + "}\n"; javaOutput.add(line2); // getters & setters for (Field f : fields) { if (f != null) { fieldType = f.getType(); if (!fieldType.equalsIgnoreCase(Constants.JUNCTION) && !fieldType.equalsIgnoreCase(Constants.CALLER)) { fieldName = Utils.getNamePascalCase(f.getName()); fieldNameMethod = Utils.getNameCamelCase(f.getName()); if (fieldType != Constants.OBJECT) { if (fieldType.equalsIgnoreCase(Constants.URI)) { fieldType = Constants.INT; } line = Utils.tabGen(1) + "public " + fieldType + " get" + fieldNameMethod + "() {\n"; line += Utils.tabGen(2) + "return this." + fieldName + ";\n }\n"; line += "\n" + Utils.tabGen(1) + "public void set" + fieldNameMethod + "(" + fieldType + " " + fieldName + ") {\n"; line += Utils.tabGen(2) + "this." + fieldName + " = " + fieldName + ";\n" + Utils.tabGen(1) + "}\n"; javaOutput.add(line); } } } } javaOutput.addAll(ParserGenerator.generateJavaParser(table)); javaOutput.add("}"); return javaOutput; }