public static Expression thisField(String name) { return memberRef(thisRef(), MemberRefStyle.Dot, name); }
Statement throwIfArraySizeDifferent(String varAndFieldName) { return new Statement.If( expr( memberRef(varRef(varAndFieldName), MemberRefStyle.Dot, "length"), BinaryOperator.IsDifferent, memberRef(memberRef(thisRef(), MemberRefStyle.Dot, varAndFieldName), MemberRefStyle.Dot, "length")), new Statement.Throw(new Expression.New(typeRef(IllegalArgumentException.class), expr("Wrong array size !"))), null); }
if (structIOExpr != null) { if (conv.arrayLengths == null) { conv.setFieldExpr = methodCall(structIOExpr.clone(), "setPointerField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getTypedPointerField", thisRef(), expr(fieldIndex)); conv.setFieldExpr = methodCall(structIOExpr.clone(), "setPointerField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getPointerField", thisRef(), expr(fieldIndex)); conv.typeRef = typeRef(ident(IntValuedEnum.class, expr(conv.typeRef))); if (structIOExpr != null) { conv.setFieldExpr = methodCall(structIOExpr.clone(), "setEnumField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getEnumField", thisRef(), expr(fieldIndex));//expr(typeRef(FlagSet.class)), "fromValue", methodCall(structPeerExpr.clone(), "getInt", expr(fieldIndex)), classLiteral(conv.typeRef.clone())); conv.setFieldExpr = methodCall(structIOExpr.clone(), "setNativeObjectField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getNativeObjectField", thisRef(), expr(fieldIndex));
if (structIOExpr != null) { if (conv.arrayLengths == null) { conv.setFieldExpr = methodCall(structIOExpr.clone(), "setPointerField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getTypedPointerField", thisRef(), expr(fieldIndex)); conv.setFieldExpr = methodCall(structIOExpr.clone(), "setPointerField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getPointerField", thisRef(), expr(fieldIndex)); conv.typeRef = typeRef(ident(IntValuedEnum.class, expr(conv.typeRef))); if (structIOExpr != null) { conv.setFieldExpr = methodCall(structIOExpr.clone(), "setEnumField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getEnumField", thisRef(), expr(fieldIndex));//expr(typeRef(FlagSet.class)), "fromValue", methodCall(structPeerExpr.clone(), "getInt", expr(fieldIndex)), classLiteral(conv.typeRef.clone())); conv.setFieldExpr = methodCall(structIOExpr.clone(), "setNativeObjectField", thisRef(), expr(fieldIndex), valueExpr); conv.getFieldExpr = methodCall(structIOExpr.clone(), "getNativeObjectField", thisRef(), expr(fieldIndex));
Statement throwIfArraySizeDifferent(String varAndFieldName) { return new Statement.If( expr( memberRef(varRef(varAndFieldName), MemberRefStyle.Dot, "length"), BinaryOperator.IsDifferent, memberRef(memberRef(thisRef(), MemberRefStyle.Dot, varAndFieldName), MemberRefStyle.Dot, "length")), new Statement.Throw(new Expression.New(typeRef(IllegalArgumentException.class), expr("Wrong array size !"))), null); }
for (Arg arg : args) { if (iArg == thisLocation) { followedArgs.add(methodCall(thisRef(), "getPeer")); } else if (fakePointersLocations.contains(iArg)) { followedArgs.add(methodCall(varRef(arg.getName()), "getPeer"));
for (Arg arg : args) { if (iArg == thisLocation) { followedArgs.add(methodCall(thisRef(), "getPeer")); } else if (fakePointersLocations.contains(iArg)) { followedArgs.add(methodCall(varRef(arg.getName()), "getPeer"));
stat(expr(memberRef(thisRef(), MemberRefStyle.Dot, ident(name)), AssignmentOperator.Equal, varRef(name))))).addModifiers(ModifierType.Public); if (signatures.addMethod(setMethod)) { out.addDeclaration(setMethod);
stat(expr(memberRef(thisRef(), MemberRefStyle.Dot, ident(name)), AssignmentOperator.Equal, varRef(name))))).addModifiers(ModifierType.Public); if (signatures.addMethod(setMethod)) { out.addDeclaration(setMethod);
if (iArg == 0 && !isStatic) { arg.replaceBy(null); args.add(thisRef()); } else { args.add(varRef(arg.getName()));
if (iArg == 0 && !isStatic) { arg.replaceBy(null); args.add(thisRef()); } else { args.add(varRef(arg.getName()));
String valueArgName = "value"; body.addDeclaration(new Function(Type.JavaMethod, enumName.clone(), null, new Arg(valueArgName, typeRef(Long.TYPE))).setBody(block( stat(expr(memberRef(thisRef(), MemberRefStyle.Dot, valueArgName), AssignmentOperator.Equal, varRef(valueArgName)))))); 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)); MemberRefStyle.Dot, "singleton", thisRef()), MemberRefStyle.Dot, "iterator")))).addModifiers(ModifierType.Public));
String valueArgName = "value"; body.addDeclaration(new Function(Type.JavaMethod, enumName.clone(), null, new Arg(valueArgName, typeRef(Long.TYPE))).setBody(block( stat(expr(memberRef(thisRef(), MemberRefStyle.Dot, valueArgName), AssignmentOperator.Equal, varRef(valueArgName)))))); 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)); MemberRefStyle.Dot, "singleton", thisRef()), MemberRefStyle.Dot, "iterator")))).addModifiers(ModifierType.Public));