String simpleType = getSimpleType(paramType);
if (isStructClass(simpleType)) {
int methodNumId = intDecl.getMethodNumId(method);
+ String helperMethod = methodNumId + "struct" + i;
+ int methodHelperNumId = intDecl.getHelperMethodNumId(helperMethod);
// Iterate over interfaces to give permissions to
Map<String,Set<String>> mapNewIntMethods = mapInt2NewInts.get(intface);
for (Map.Entry<String,Set<String>> intMeth : mapNewIntMethods.entrySet()) {
String newIntface = intMeth.getKey();
int newObjectId = getNewIntfaceObjectId(newIntface);
- println("set" + newObjectId + "Allowed.add(" + methodNumId + ");");
+ println("set" + newObjectId + "Allowed.add(" + methodHelperNumId + ");");
}
}
}
println("public " + newSkelClass + "(" + intface + " _mainObj, int _objectId) throws Exception {");
println("mainObj = _mainObj;");
println("objectId = _objectId;");
- writeStructPermissionJavaSkeleton(methods, intDecl, intface);
println("}\n");
}
// Write file headers
println("#ifndef _" + stType.toUpperCase() + "_HPP__");
println("#define _" + stType.toUpperCase() + "_HPP__");
+ println("using namespace std;");
println("struct " + stType + " {");
List<String> structMemberTypes = structDecl.getMemberTypes(stType);
List<String> structMembers = structDecl.getMembers(stType);
}
if (isArrayOrList(param, paramType)) { // An array or list
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("paramCls[pos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
print("paramObj[pos++] = &" + param + "[i].");
print(getSimpleIdentifier(members.get(i)));
println(";");
println("}");
} else { // Just one struct element
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("paramCls[pos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
print("paramObj[pos++] = &" + param + ".");
print(getSimpleIdentifier(members.get(i)));
println(";");
if (isStructClass(simpleType)) {
writeStructMembersCplusStub(simpleType, paramType, param);
} else {
- String prmTypeC = checkAndGetCplusType(methPrmTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, methParams.get(i));
- println("paramCls[pos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(methPrmTypes.get(i), methParams.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
print("paramObj[pos++] = &");
print(getEnumParam(methPrmTypes.get(i), getSimpleIdentifier(methParams.get(i)), i));
println(";");
if (isArrayOrList(retType, retType)) { // An array or list
println("for(int i = 0; i < retLen; i++) {");
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("retCls[retPos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("retCls[retPos] = \"" + prmTypeC + "\";");
println("retObj[retPos++] = &retParam" + i + "[i];");
}
println("}");
} else { // Just one struct element
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("retCls[retPos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("retCls[retPos] = \"" + prmTypeC + "\";");
println("retObj[retPos++] = &retParam" + i + ";");
}
}
String simpleType = getSimpleType(paramType);
if (isStructClass(simpleType)) {
int methodNumId = intDecl.getMethodNumId(method);
+ String helperMethod = methodNumId + "struct" + i;
+ int helperMethodNumId = intDecl.getHelperMethodNumId(helperMethod);
// Iterate over interfaces to give permissions to
Map<String,Set<String>> mapNewIntMethods = mapInt2NewInts.get(intface);
for (Map.Entry<String,Set<String>> intMeth : mapNewIntMethods.entrySet()) {
String newIntface = intMeth.getKey();
int newObjectId = getNewIntfaceObjectId(newIntface);
- println("set" + newObjectId + "Allowed.insert(" + methodNumId + ");");
+ println("set" + newObjectId + "Allowed.insert(" + helperMethodNumId + ");");
}
}
}
String pureType = getSimpleArrayType(getGenericType(retType));
// Take the inner type of generic
if (getParamCategory(retType) == ParamCategory.NONPRIMITIVES)
- pureType = getTypeOfGeneric(retType)[0];
+ pureType = getGenericType(retType);
if (isEnumClass(pureType)) {
// Check if this is enum type
// Enum decoder
if (isArrayOrList(param, paramType)) { // An array or list
println("for(int i = 0; i < retLen; i++) {");
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("paramCls[pos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
println("paramObj[pos++] = ¶m" + i + "[i];");
}
println("}");
} else { // Just one struct element
for (int i = 0; i < members.size(); i++) {
- String prmTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(prmTypeC, members.get(i));
- println("paramCls[pos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
println("paramObj[pos++] = ¶m" + i + ";");
}
}
if (isArrayOrList(retType, retType)) { // An array or list
println("for(int i = 0; i < retLen; i++) {");
for (int i = 0; i < members.size(); i++) {
- String paramTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(paramTypeC, members.get(i));
- println("retCls[retPos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("retCls[retPos] = \"" + prmTypeC + "\";");
print("retObj[retPos++] = &retStruct[i].");
print(getEnumParam(memTypes.get(i), getSimpleIdentifier(members.get(i)), i));
println(";");
println("}");
} else { // Just one struct element
for (int i = 0; i < members.size(); i++) {
- String paramTypeC = checkAndGetCplusType(memTypes.get(i));
- String prmType = checkAndGetCplusArrayType(paramTypeC, members.get(i));
- println("retCls[retPos] = \"" + getSimpleType(getEnumType(prmType)) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(memTypes.get(i), members.get(i));
+ println("retCls[retPos] = \"" + prmTypeC + "\";");
print("retObj[retPos++] = &retStruct.");
print(getEnumParam(memTypes.get(i), getSimpleIdentifier(members.get(i)), i));
println(";");
println("paramObj[pos++] = &numStubs" + i + ";");
} else { // Generate normal classes if it's not a callback object
String paramTypeC = checkAndGetCplusType(methPrmTypes.get(i));
- String prmTypeC = checkAndGetCplusArrayType(paramTypeC, methParams.get(i));
if (isEnumClass(getGenericType(paramTypeC))) { // Check if this is enum type
println("vector<int> paramEnumInt" + i + ";");
} else {
String methParamComplete = checkAndGetCplusArray(paramTypeC, methParams.get(i));
println(methParamComplete + ";");
}
- println("paramCls[pos] = \"" + getEnumType(prmTypeC) + "\";");
+ String prmTypeC = checkAndGetCplusArgClsType(methPrmTypes.get(i), methParams.get(i));
+ println("paramCls[pos] = \"" + prmTypeC + "\";");
if (isEnumClass(getGenericType(paramType))) // Check if this is enum type
println("paramObj[pos++] = ¶mEnumInt" + i);
else
println(newSkelClass + "(" + intface + " *_mainObj, int _objectId) {");
println("mainObj = _mainObj;");
println("objectId = _objectId;");
- writeStructPermissionCplusSkeleton(methods, intDecl, intface);
println("}\n");
}