arg = new Arg((n!=null?n.getText():null), new SimpleTypeRef((t!=null?t.getText():null))); addTypeIdent((n!=null?n.getText():null));
public static TypeRef fixReturnType(Function function) { TypeRef returnType = function.getValueType(); if (returnType == null) { returnType = RococoaUtils.ROCOCOA_ID_TYPEREF; } Struct declaringClass = function.findParentOfType(Struct.class); if (returnType.toString().equals("id")) { String pointedClassName; if (function.getName().toString().matches("^(alloc|(init|copy|mutableCopy)([A-Z].*)?)$") || RococoaUtils.methodNameMatchesObjcStaticConstructor(declaringClass, function.getName())) { pointedClassName = declaringClass.getTag().toString(); } else /// Lets subclasses redefine method return type when parent method return type is ID { pointedClassName = "NSObject"; } returnType = new TypeRef.Pointer(new TypeRef.SimpleTypeRef(pointedClassName), PointerStyle.Pointer); } return returnType; } }
public static TypeRef fixReturnType(Function function) { TypeRef returnType = function.getValueType(); if (returnType == null) { returnType = RococoaUtils.ROCOCOA_ID_TYPEREF; } Struct declaringClass = function.findParentOfType(Struct.class); if (returnType.toString().equals("id")) { String pointedClassName; if (function.getName().toString().matches("^(alloc|(init|copy|mutableCopy)([A-Z].*)?)$") || RococoaUtils.methodNameMatchesObjcStaticConstructor(declaringClass, function.getName())) { pointedClassName = declaringClass.getTag().toString(); } else /// Lets subclasses redefine method return type when parent method return type is ID { pointedClassName = "NSObject"; } returnType = new TypeRef.Pointer(new TypeRef.SimpleTypeRef(pointedClassName), PointerStyle.Pointer); } return returnType; } }
holderStruct.addDeclaration(vd); Function pointerConstructor = new Function(Function.Type.JavaMethod, instTypeName, null, new Arg("pointer", new TypeRef.SimpleTypeRef(result.config.runtime.pointerClass.getName()))); hasOffset = false; pointerConstructor.setBody(new Statement.Block( instType = new TypeRef.SimpleTypeRef(instTypeName); struct.addDeclaration(decl(holderStruct));
parent.replaceBy(null); } else { TypeRef tr = new TypeRef.SimpleTypeRef(taggedTypeRef.getTag().clone()); for (Modifier mod : taggedTypeRef.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) {
parent.replaceBy(null); } else { TypeRef tr = new TypeRef.SimpleTypeRef(taggedTypeRef.getTag().clone()); for (Modifier mod : taggedTypeRef.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) {
holderStruct.addDeclaration(vd); Function pointerConstructor = new Function(Function.Type.JavaMethod, instTypeName, null, new Arg("pointer", new TypeRef.SimpleTypeRef(result.config.runtime.pointerClass.getName()))); hasOffset = false; pointerConstructor.setBody(new Statement.Block( instType = new TypeRef.SimpleTypeRef(instTypeName); struct.addDeclaration(decl(holderStruct));
simpleTypeRef.replaceBy(resolveTypeDef(new TypeRef.SimpleTypeRef(fieldName), libraryClassName, true /*convertToJavaRef*/, convertEnumToJavaRef, typeDefsEncountered)); return;
simpleTypeRef.replaceBy(resolveTypeDef(new TypeRef.SimpleTypeRef(fieldName), libraryClassName, true /*convertToJavaRef*/, convertEnumToJavaRef, typeDefsEncountered)); return;
type = new SimpleTypeRef((i!=null?i.getText():null));
init = new FunctionCall(new TypeRefExpression(new SimpleTypeRef(qn)));
typeRef = new TypeRef.SimpleTypeRef(i);
type = new Primitive(i.toString()); else type = new SimpleTypeRef(i); if (i.isPlain()) addTypeIdent(i.toString());
public SimpleTypeRef findEnum(Enum s, Identifier libraryClassName) { if (s == null) { return null; } if (result.config.runtime == JNAeratorConfig.Runtime.BridJ) { return typeRef(getTaggedTypeIdentifierInJava(s)); } Identifier name = result.declarationsConverter.getActualTaggedTypeName(s); String library = result.getLibrary(s); if (library == null) { return null; } Identifier libClass = result.getLibraryClassFullName(library); SimpleTypeRef tr = new SimpleTypeRef("int"); if (result.config.features.contains(JNAeratorConfig.GenFeatures.EnumTypeLocationComments)) { tr.setCommentBefore("@see " + (SyntaxUtils.equal(libClass, libraryClassName) ? name : libClass + "#" + name)); } return tr; }
@Override public void visitStruct(Struct struct) { super.visitStruct(struct); if (struct.isForwardDeclaration() && struct.getTag() != null) { Element parent = struct.getParentElement(); if (!(parent instanceof TaggedTypeRefDeclaration)) { TypeRef tr = new TypeRef.SimpleTypeRef(struct.getTag()); for (Modifier mod : struct.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) { tr.addModifiers(mod); } } struct.replaceBy(tr); tr.accept(this); } } }
@Override public void visitStruct(Struct struct) { super.visitStruct(struct); if (struct.isForwardDeclaration() && struct.getTag() != null) { Element parent = struct.getParentElement(); if (!(parent instanceof TaggedTypeRefDeclaration)) { TypeRef tr = new TypeRef.SimpleTypeRef(struct.getTag()); for (Modifier mod : struct.getModifiers()) { if (mod.isA(ModifierKind.StorageClassSpecifier)) { tr.addModifiers(mod); } } struct.replaceBy(tr); tr.accept(this); } } }
public SimpleTypeRef findEnum(Enum s, Identifier libraryClassName) { if (s == null) { return null; } if (result.config.runtime == JNAeratorConfig.Runtime.BridJ) { return typeRef(getTaggedTypeIdentifierInJava(s)); } Identifier name = result.declarationsConverter.getActualTaggedTypeName(s); String library = result.getLibrary(s); if (library == null) { return null; } Identifier libClass = result.getLibraryClassFullName(library); SimpleTypeRef tr = new SimpleTypeRef("int"); if (result.config.features.contains(JNAeratorConfig.GenFeatures.EnumTypeLocationComments)) { tr.setCommentBefore("@see " + (SyntaxUtils.equal(libClass, libraryClassName) ? name : libClass + "#" + name)); } return tr; }
public static SimpleTypeRef typeRef(Identifier name) { return name == null ? null : new SimpleTypeRef(name); }
TypeRef functionSignatureRef(Identifier funSigName) { TypeRef.SimpleTypeRef tr = new TypeRef.SimpleTypeRef(funSigName.clone()); return tr;//treatFunctionSignatureAsPointers() ? tr : new TypeRef.Pointer(tr, Declarator.PointerStyle.Pointer); //result.typeConverter.pointerTypeRef(tr); }
TypeRef functionSignatureRef(Identifier funSigName) { TypeRef.SimpleTypeRef tr = new TypeRef.SimpleTypeRef(funSigName.clone()); return tr;//treatFunctionSignatureAsPointers() ? tr : new TypeRef.Pointer(tr, Declarator.PointerStyle.Pointer); //result.typeConverter.pointerTypeRef(tr); }