protected Identifier libMember(Identifier libClass, Identifier libraryClassName, Identifier member) { //return ident(SyntaxUtils.equal(libClass, libraryClassName) ? null : libClass, member); return ident(libClass, member); //return member; //TODODODODODODODODOoOOOOO }
protected Identifier libMember(Identifier libClass, Identifier libraryClassName, Identifier member) { //return ident(SyntaxUtils.equal(libClass, libraryClassName) ? null : libClass, member); return ident(libClass, member); //return member; //TODODODODODODODODOoOOOOO }
public Identifier getLibraryDeclarationsClassSimpleName(String library) { if (config.runtime != JNAeratorConfig.Runtime.BridJ) return null; String name = config.extractedLibraries.get(library); if (name == null) return null; return ident(name); }
public static Identifier ident(Identifier ident, Identifier... others) { if (ident == null) { if (others.length > 0) { return ident(others[0], Arrays.copyOfRange(others, 1, others.length)); } return null; } return ident.derive(Identifier.QualificationSeparator.Dot, others); }
public Identifier findUndefinedType(Identifier name) { name = getUndefinedTypeName(name); if (name == null) { return null; } String s = name.toString(); for (Map.Entry<String, Set<String>> e : undefinedTypesByLibrary.entrySet()) { if (e.getValue().contains(s)) { return ident(ident(e.getKey()), name); } } return null; }
@Override public void visitStruct(Struct struct) { path.push(ident(path.peek(), struct.getTag())); super.visitStruct(struct); path.pop(); }
@Override public void visitStruct(Struct struct) { path.push(ident(path.peek(), struct.getTag())); super.visitStruct(struct); path.pop(); }
public static TypeRef typeRef(Class<?> cl) { if (cl == null) { return null; } if (cl.isArray()) { return new TypeRef.ArrayRef(typeRef(cl.getComponentType())); } if (cl.isPrimitive() || cl == Void.class) { return new TypeRef.Primitive(cl.getSimpleName()); } return typeRef(ident(cl)); }
public void printJavaClass(Identifier javaPackage, Struct javaClass, PrintWriter out) { if (javaPackage != null) { out.println("package " + javaPackage + ";"); } if (config.noAutoImports) { out.println(javaClass); } else { Printer.printJava(javaPackage, ident(javaPackage == null ? null : javaPackage.clone(), javaClass.getTag().clone()), javaClass, out); } // out.println("@SuppressWarnings(\"unused\")"); }
public void printJavaClass(Identifier javaPackage, Struct javaClass, PrintWriter out) { if (javaPackage != null) { out.println("package " + javaPackage + ";"); } if (config.noAutoImports) { out.println(javaClass); } else { Printer.printJava(javaPackage, ident(javaPackage == null ? null : javaPackage.clone(), javaClass.getTag().clone()), javaClass, out); } // out.println("@SuppressWarnings(\"unused\")"); }
public void generateObjectiveCClasses() throws IOException { for (Struct in : Result.getMap(result.classes, Type.ObjCClass).values()) { outputObjectiveCClass(in); } for (Struct protocol : Result.getMap(result.classes, Type.ObjCProtocol).values()) { for (String parent : getForcedProtocolParents(String.valueOf(protocol.getTag()))) { protocol.addParent(ident(parent)); } outputObjectiveCClass(protocol); } }
public void generateObjectiveCClasses() throws IOException { for (Struct in : Result.getMap(result.classes, Type.ObjCClass).values()) { outputObjectiveCClass(in); } for (Struct protocol : Result.getMap(result.classes, Type.ObjCProtocol).values()) { for (String parent : getForcedProtocolParents(String.valueOf(protocol.getTag()))) { protocol.addParent(ident(parent)); } outputObjectiveCClass(protocol); } }
@Override public void visitVariablesDeclaration(VariablesDeclaration v) { super.visitVariablesDeclaration(v); if (v.findParentOfTypes(Struct.class, Function.class, Enum.class) != null) { return; } for (Declarator d : v.getDeclarators()) { globalVariablesByName.put(ident(d.resolveName()), v); } getList(globalsByLibrary, getLibrary(v)).add(v); }
@Override public void visitVariablesDeclaration(VariablesDeclaration v) { super.visitVariablesDeclaration(v); if (v.findParentOfTypes(Struct.class, Function.class, Enum.class) != null) { return; } for (Declarator d : v.getDeclarators()) { globalVariablesByName.put(ident(d.resolveName()), v); } getList(globalsByLibrary, getLibrary(v)).add(v); }
@Override public void visitIdentifier(Identifier identifier) { super.visitIdentifier(identifier); Element e = result.symbols.getVariable(identifier); if (e != null && isReferenced(e)) { String changedName = referencedElementsChangedNames.get(e.getId()); if (changedName != null) { Identifier replacedIdentifier = ident(changedName); identifier.replaceBy(replacedIdentifier); ret.referencedElements.add(new Pair<Element, Integer>(replacedIdentifier, replacedIdentifier.getId())); } } }
TypeRef pointerToTypeRef(TypeRef targetType) { Identifier id = ident(ptrClass()); id.resolveLastSimpleIdentifier().addTemplateArgument(expr(targetType)); return typeRef(id); }
@Override public Struct convertCallback(FunctionSignature functionSignature, Signatures signatures, Identifier callerLibraryName) { Struct decl = super.convertCallback(functionSignature, signatures, callerLibraryName); if (decl != null) { decl.setParents(Arrays.asList((SimpleTypeRef) (FunctionSignature.Type.ObjCBlock.equals(functionSignature.getType()) ? result.config.runtime.typeRef(JNAeratorConfig.Runtime.Ann.ObjCBlock) : (SimpleTypeRef) typeRef(ident(result.config.runtime.callbackClass, expr(typeRef(decl.getTag().clone()))))))); //addCallingConventionAnnotation(functionSignature.getFunction(), decl); } return decl; }
@Override protected Struct createFakePointerClass(Identifier fakePointer) { Struct ptClass = result.declarationsConverter.publicStaticClass(fakePointer, ident(PointerType.class), Struct.Type.JavaClass, null); String pointerVarName = "address"; ptClass.addDeclaration(new Function(Function.Type.JavaMethod, fakePointer, null, new Arg(pointerVarName, typeRef(com.sun.jna.Pointer.class))).addModifiers(ModifierType.Public).setBody( block(stat(methodCall("super", varRef(pointerVarName)))))); ptClass.addDeclaration(new Function(Function.Type.JavaMethod, fakePointer, null) .addModifiers(ModifierType.Public) .setBody( block(stat(methodCall("super"))))); return ptClass; }
@Override protected Struct createFakePointerClass(Identifier fakePointer) { Struct ptClass = result.declarationsConverter.publicStaticClass(fakePointer, ident(TypedPointer.class), Struct.Type.JavaClass, null); String addressVarName = "address"; ptClass.addDeclaration(new Function(Function.Type.JavaMethod, fakePointer, null, new Arg(addressVarName, typeRef(long.class))).addModifiers(ModifierType.Public).setBody( block(stat(methodCall("super", varRef(addressVarName)))))); ptClass.addDeclaration(new Function(Function.Type.JavaMethod, fakePointer, null, new Arg(addressVarName, typeRef(org.bridj.Pointer.class))).addModifiers(ModifierType.Public).setBody( block(stat(methodCall("super", varRef(addressVarName)))))); return ptClass; }