private void generateStructBinding( Element element, Struct struct, String root, String pakage, File header) throws IOException { String declaredType = element.asType().toString(); String structName = struct.name().equals(DEFAULT) ? declaredType : struct.name(); if (generatedStructs.contains(structName)) { messager.printMessage( Kind.WARNING, "struct " + structName + " already defined elsewhere.", element); return; } System.out.println("generating struct accessor for struct: " + structName); generatedStructs.add(structName); String output = root + separator + outputDir; String config = output + separator + header.getName() + ".cfg"; File configFile = new File(config); FileWriter writer = null; try { writer = new FileWriter(configFile); writer.write("Package " + pakage + "\n"); writer.write("EmitStruct " + structName + "\n"); if (!struct.name().equals(DEFAULT)) { writer.write("RenameJavaType " + struct.name() + " " + declaredType + "\n"); } } finally { if (writer != null) { writer.close(); } } // TODO this isn't very clean since we won't get any exceptions this way GlueGen.main( // "-I"+path+"/build/", "-O" + output, "-E" + AnnotationProcessorJavaStructEmitter.class.getName(), "-C" + config, header.getPath()); configFile.delete(); }