WrapperGenerator.java revision 4544
0N/Apublic class WrapperGenerator {
0N/A boolean generateLog = true;
0N/A case TYPE_LONG_LONG:
0N/A case TYPE_ULONG:
0N/A case TYPE_DOUBLE:
0N/A case TYPE_FLOAT:
0N/A case TYPE_SHORT:
0N/A case TYPE_STRUCT:
0N/A case TYPE_ARRAY:
0N/A return MessageFormat.format("({2} != 0)?(new {0}({1})):(null)", new Object[] {referencedType.getName(),value, base});
0N/A case TYPE_ARRAY:
0N/A case TYPE_STRUCT:
0N/A case TYPE_LONG_LONG:
0N/A case TYPE_ULONG:
0N/A case TYPE_DOUBLE:
0N/A case TYPE_FLOAT:
0N/A case TYPE_SHORT:
0N/A case TYPE_ARRAY:
0N/A case TYPE_STRUCT:
0N/A case TYPE_LONG_LONG:
0N/A case TYPE_ULONG:
0N/A case TYPE_DOUBLE:
0N/A case TYPE_FLOAT:
0N/A case TYPE_SHORT:
0N/A return MessageFormat.format("Native.put{0}({2}, {1})", new Object[] {getNativeAccessForType(type), value, offset});
0N/A public boolean isAutoFree() {
0N/A return referencedType;
0N/A public int getArrayLength() {
0N/A return arrayLength;
0N/A case TYPE_LONG_LONG:
0N/A case TYPE_DOUBLE:
0N/A case TYPE_FLOAT:
0N/A case TYPE_SHORT:
0N/A case TYPE_ULONG:
0N/A boolean isInterface;
0N/A public int getNumFields()
0N/A return description;
0N/A return interfaces;
0N/A public boolean getIsInterface() {
0N/A return isInterface;
0N/A return javaClassName;
0N/A isInterface = true;
0N/A// System.out.println("Struct " + name + " extends " + baseClass + " implements " + interfaces);
0N/A * Returns String containing Java code calculating size of the structure depending on the data model
0N/A return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[] {s32, s64});
0N/A return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[]{s32, s64});
0N/A return returnType;
0N/A public int getNumArgs()
0N/A return description;
0N/A return wide == true ? (String) sizeTable64bit.get(stp.getName()) : (String) sizeTable32bit.get(stp.getName());
0N/A return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("long") : (String)sizeTable32bit.get("long"));
0N/A return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("ptr") : (String)sizeTable32bit.get("ptr"));
0N/A return Integer.parseInt(wide == true ? (String)sizeTable64bit.get(ordinal) : (String)sizeTable32bit.get(ordinal));
4544N/A pw.println("\n\n\tString getFieldsAsString() {\n\t\tStringBuilder ret = new StringBuilder(" + stp.getNumFields() * 40 + ");\n");
4544N/A pw.println("\t\tret.append(\"" + name + " = \" ).append( XAtom.get(get_" + name + "()) ).append(\", \");");
4544N/A pw.println("\t\tret.append(\"type = \").append( XlibWrapper.eventToString[get_type()] ).append(\", \");");
4544N/A pw.println("\t\tret.append(\"window = \" ).append( getWindow(get_window()) ).append(\", \");");
0N/A if (type != AtomicType.TYPE_STRUCT) pw.println(prefix + "void set_" +name +"(" + tp.getJavaType() + " v);");
0N/A pw.println(pref + "long get_" +name+ "() { "+s_log+"return Native.getLong(pData+"+stp.getOffset(tp)+"); }");
0N/A pw.println("class " + stp.getJavaClassName() + "AccessorImpl" + " extends " + stp.getJavaClassName() + "Accessor {");
0N/A pw.println("/*\nThis class serves as a Wrapper for the following X Struct \nsThe offsets here are calculated based on actual compiler.\n\n" +stp.getDescription() + "\n\n */");
0N/A pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
0N/A if (generateLog) {
0N/A if (generateLog) {
0N/A if (generateLog) {
0N/A if (generateLog) {
0N/A e.printStackTrace();
0N/A e.printStackTrace();
0N/A pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
0N/A pw.println("\tlong " + at.getName() + "_ptr = unsafe.allocateMemory(Native.get" + at.getTypeUpperCase() + "Size());");
0N/A pw.println("\tpublic " + ft.getReturnType() + " execute(XToolkit.XErrorHandler errorHandler) {");
0N/A e.printStackTrace();
0N/A e.printStackTrace();
0N/A pw.println("/* This file is an automatically generated file, please do not edit this file, modify the XlibParser.java file instead !*/\n" );
0N/A pw.println("#include <X11/Xlib.h>\n#include <X11/Xutil.h>\n#include <X11/Xos.h>\n#include <X11/Xatom.h>\n#include <stdio.h>\n");
0N/A e.printStackTrace();
0N/A e.printStackTrace();
0N/A e.printStackTrace();