ce.setThenValue(nullExpr()); ce.setElseValue(finalCall); f.setBody(block(stat(vd), new Statement.Return(ce))); } else { f.setBody(block(new Statement.Return(x)));
ce.setThenValue(nullExpr()); ce.setElseValue(finalCall); f.setBody(block(stat(vd), new Statement.Return(ce))); } else { f.setBody(block(new Statement.Return(x)));
private Function createProxyCopy(Function originalMethod, Function meth) { if (isMethodExcludedFromStaticForwarding(originalMethod)) { return null; } Function proxyCopy = meth.clone(); proxyCopy.addModifiers(ModifierType.Public, ModifierType.Static); proxyCopy.reorganizeModifiers(); Expression[] args = new Expression[meth.getArgs().size()]; int i = 0; for (Arg arg : meth.getArgs()) { args[i++] = varRef(arg.getName()); } Expression val = methodCall(methodCall(null, null, classInstanceGetterName), Expression.MemberRefStyle.Dot, meth.getName().toString(), args); proxyCopy.setBody(new Block( meth.getValueType() == null || "void".equals(meth.getValueType().toString()) ? stat(val) : new Statement.Return(val))); return proxyCopy; } // protected static _class_ _CLASS_ = org.rococoa.Rococoa.createClass("NSURL", _class_.class);
"void".equals(String.valueOf(method.getValueType())) ? stat(implCall) : new Statement.Return(implCall))); method.addModifiers(ModifierType.Public, isStatic ? ModifierType.Static : null); structJavaClass.addDeclaration(method);
new If( expr(methodCall(varRef(argsName), "Length"), BinaryOperator.IsDifferent, expr(argCount)), new Return( methodCall(v8Ident("ThrowException"), newV8String(functionName + "() requires " + argCount + " arguments!"))))); new If( expr(UnaryOperator.Not, typeTest), new Return( methodCall(v8Ident("ThrowException"), methodCall(ident("v8", "Exception", "TypeError"), switch (retNodeType) { case Number: body.addStatement(new Return(scopeClose(methodCall(ident("v8", "Number", "New"), varRef(returnValueName))))); break; case Boolean: body.addStatement(new Return(scopeClose(methodCall(ident("v8", "Boolean", "New"), varRef(returnValueName))))); break; case Pointer: new If( varRef(returnValueName), new Return( scopeClose( memberRef( Expression.MemberRefStyle.Arrow, "handle_"))),
if (isGlobal) { getter.setBody(block( tryRethrow(new Statement.Return(cast(javaType.clone(), methodCall(getGlobalPointerExpr, getterName)))))); } else { getter.setBody(block( new Statement.Return(conv.getFieldExpr))); tryRethrow(block( stat(methodCall(getGlobalPointerExpr, setterName, varRef(name))), new Statement.Return(thisRef()))))); } else { setter.setBody(block( stat(conv.setFieldExpr), new Statement.Return(thisRef()))); setter.setBody(block( stat(methodCall(name, varRef(name))), new Statement.Return(varRef(name)))); out.add(setter);
if (isGlobal) { getter.setBody(block( tryRethrow(new Statement.Return(cast(javaType.clone(), methodCall(getGlobalPointerExpr, getterName)))))); } else { getter.setBody(block( new Statement.Return(conv.getFieldExpr))); tryRethrow(block( stat(methodCall(getGlobalPointerExpr, setterName, varRef(name))), new Statement.Return(thisRef()))))); } else { setter.setBody(block( stat(conv.setFieldExpr), new Statement.Return(thisRef()))); setter.setBody(block( stat(methodCall(name, varRef(name))), new Statement.Return(varRef(name)))); out.add(setter);
body.addDeclaration(new VariablesDeclaration(typeRef(Long.TYPE), new DirectDeclarator(valueArgName)).addModifiers(ModifierType.Public, ModifierType.Final)); body.addDeclaration(new Function(Type.JavaMethod, ident(valueArgName), typeRef(Long.TYPE)).setBody(block( new Statement.Return(memberRef(thisRef(), MemberRefStyle.Dot, valueArgName)))).addModifiers(ModifierType.Public)); new Statement.Return( methodCall( methodCall( new Statement.Return( methodCall( expr(typeRef(FlagSet.class)),
new Statement.Return(varRef(name)))).addModifiers(ModifierType.Public); if (signatures.addMethod(getMethod)) { out.addDeclaration(getMethod);
body.addDeclaration(new VariablesDeclaration(typeRef(Long.TYPE), new DirectDeclarator(valueArgName)).addModifiers(ModifierType.Public, ModifierType.Final)); body.addDeclaration(new Function(Type.JavaMethod, ident(valueArgName), typeRef(Long.TYPE)).setBody(block( new Statement.Return(memberRef(thisRef(), MemberRefStyle.Dot, valueArgName)))).addModifiers(ModifierType.Public)); new Statement.Return( methodCall( methodCall( new Statement.Return( methodCall( expr(typeRef(FlagSet.class)),
new Statement.Return(varRef(name)))).addModifiers(ModifierType.Public); if (signatures.addMethod(getMethod)) { out.addDeclaration(getMethod);
memberRef(expr(typeRef(instanceStruct.getTag())), MemberRefStyle.Dot, "class")); createCopy.setBody(new Block(new Statement.Return(val))); return createCopy;
memberRef(expr(typeRef(instanceStruct.getTag())), MemberRefStyle.Dot, "class")); createCopy.setBody(new Block(new Statement.Return(val))); return createCopy;
protected Function createNewStructMethod(String name, Struct byRef) { TypeRef tr = typeRef(byRef.getTag().clone()); Function f = new Function(Function.Type.JavaMethod, ident(name), tr); String varName = "s"; f.addModifiers(ModifierType.Protected); if (result.config.runtime != JNAeratorConfig.Runtime.JNA) { f.setBody(block( //new Statement.Return(methodCall("setupClone", new Expression.New(tr.clone(), methodCall(null)))) new Statement.Return(new Expression.New(tr.clone(), methodCall((String) null)))).setCompact(true)); } else { f.setBody(block( stat(tr.clone(), varName, new Expression.New(tr.clone(), methodCall((String) null))), stat(methodCall(varRef(varName), MemberRefStyle.Dot, "useMemory", methodCall("getPointer"))), stat(methodCall("write")), stat(methodCall(varRef(varName), MemberRefStyle.Dot, "read")), new Statement.Return(varRef(varName)))); } return f; }
protected Function createNewStructArrayMethod(Struct struct, boolean isUnion) { if (result.config.runtime == JNAeratorConfig.Runtime.JNA) { return null; } TypeRef tr = typeRef(struct.getTag().clone()); TypeRef ar = new TypeRef.ArrayRef(tr); String varName = "arrayLength"; Function f = new Function(Function.Type.JavaMethod, ident("newArray"), ar, new Arg(varName, typeRef(Integer.TYPE))); f.addModifiers(ModifierType.Public, ModifierType.Static); f.setBody(block( new Statement.Return( methodCall( expr(typeRef(isUnion ? result.config.runtime.unionClass : result.config.runtime.structClass)), MemberRefStyle.Dot, "newArray", result.typeConverter.typeLiteral(tr), varRef(varName))))); return f; }
private Function createProxyCopy(Function originalMethod, Function meth) { if (isMethodExcludedFromStaticForwarding(originalMethod)) { return null; } Function proxyCopy = meth.clone(); proxyCopy.addModifiers(ModifierType.Public, ModifierType.Static); proxyCopy.reorganizeModifiers(); Expression[] args = new Expression[meth.getArgs().size()]; int i = 0; for (Arg arg : meth.getArgs()) { args[i++] = varRef(arg.getName()); } Expression val = methodCall(methodCall(null, null, classInstanceGetterName), Expression.MemberRefStyle.Dot, meth.getName().toString(), args); proxyCopy.setBody(new Block( meth.getValueType() == null || "void".equals(meth.getValueType().toString()) ? stat(val) : new Statement.Return(val))); return proxyCopy; } // protected static _class_ _CLASS_ = org.rococoa.Rococoa.createClass("NSURL", _class_.class);
protected Function createNewStructArrayMethod(Struct struct, boolean isUnion) { if (result.config.runtime == JNAeratorConfig.Runtime.JNA) { return null; } TypeRef tr = typeRef(struct.getTag().clone()); TypeRef ar = new TypeRef.ArrayRef(tr); String varName = "arrayLength"; Function f = new Function(Function.Type.JavaMethod, ident("newArray"), ar, new Arg(varName, typeRef(Integer.TYPE))); f.addModifiers(ModifierType.Public, ModifierType.Static); f.setBody(block( new Statement.Return( methodCall( expr(typeRef(isUnion ? result.config.runtime.unionClass : result.config.runtime.structClass)), MemberRefStyle.Dot, "newArray", result.typeConverter.typeLiteral(tr), varRef(varName))))); return f; }
protected Function createNewStructMethod(String name, Struct byRef) { TypeRef tr = typeRef(byRef.getTag().clone()); Function f = new Function(Function.Type.JavaMethod, ident(name), tr); String varName = "s"; f.addModifiers(ModifierType.Protected); if (result.config.runtime != JNAeratorConfig.Runtime.JNA) { f.setBody(block( //new Statement.Return(methodCall("setupClone", new Expression.New(tr.clone(), methodCall(null)))) new Statement.Return(new Expression.New(tr.clone(), methodCall((String) null)))).setCompact(true)); } else { f.setBody(block( stat(tr.clone(), varName, new Expression.New(tr.clone(), methodCall((String) null))), stat(methodCall(varRef(varName), MemberRefStyle.Dot, "useMemory", methodCall("getPointer"))), stat(methodCall("write")), stat(methodCall(varRef(varName), MemberRefStyle.Dot, "read")), new Statement.Return(varRef(varName)))); } return f; }
Function createCastMethod(Identifier name, Identifier classId, boolean isStatic) { Function m = new Function(); m.setType(Function.Type.JavaMethod); m.addModifiers(ModifierType.Public); m.setName(ident("as" + (isStatic ? "Static_" : "_") + name)); m.setValueType(typeRef(classId.clone())); m.setBody(block( new Statement.Return( methodCall( expr(typeRef(Rococoa.class)), MemberRefStyle.Dot, "cast", varRef("this"), result.typeConverter.typeLiteral(typeRef(classId.clone())))))); return m; }
Function createCastMethod(Identifier name, Identifier classId, boolean isStatic) { Function m = new Function(); m.setType(Function.Type.JavaMethod); m.addModifiers(ModifierType.Public); m.setName(ident("as" + (isStatic ? "Static_" : "_") + name)); m.setValueType(typeRef(classId.clone())); m.setBody(block( new Statement.Return( methodCall( expr(typeRef(Rococoa.class)), MemberRefStyle.Dot, "cast", varRef("this"), result.typeConverter.typeLiteral(typeRef(classId.clone())))))); return m; }