diff options
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 78 |
1 files changed, 27 insertions, 51 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index d46c211cbe6..463738f197e 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -28,70 +28,35 @@ Slice::JavaVisitor::~JavaVisitor() string Slice::JavaVisitor::getParams(const OperationPtr& op, const string& scope) { - TypeStringList inParams = op->inputParameters(); - TypeStringList outParams = op->outputParameters(); - TypeStringList::const_iterator q; - string params; - - for(q = inParams.begin(); q != inParams.end(); ++q) - { - if(q != inParams.begin()) - { - params += ", "; - } - - string typeString = typeToString(q->first, TypeModeIn, scope); - params += typeString; - params += ' '; - params += fixKwd(q->second); - } - - for(q = outParams.begin(); q != outParams.end(); ++q) + ParamDeclList paramList = op->parameters(); + for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q) { - if(q != outParams.begin() || !inParams.empty()) + if(q != paramList.begin()) { params += ", "; } - - string typeString = typeToString(q->first, TypeModeOut, scope); + string typeString = typeToString((*q)->type(), (*q)->isOutParam() ? TypeModeOut : TypeModeIn, scope); params += typeString; params += ' '; - params += fixKwd(q->second); + params += fixKwd((*q)->name()); } - return params; } string Slice::JavaVisitor::getArgs(const OperationPtr& op, const string& scope) { - TypeStringList inParams = op->inputParameters(); - TypeStringList outParams = op->outputParameters(); - TypeStringList::const_iterator q; - string args; - - for(q = inParams.begin(); q != inParams.end(); ++q) + ParamDeclList paramList = op->parameters(); + for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q) { - if(q != inParams.begin()) + if(q != paramList.begin()) { args += ", "; } - - args += fixKwd(q->second); + args += fixKwd((*q)->name()); } - - for(q = outParams.begin(); q != outParams.end(); ++q) - { - if(q != outParams.begin() || !inParams.empty()) - { - args += ", "; - } - - args += fixKwd(q->second); - } - return args; } @@ -376,8 +341,15 @@ Slice::JavaVisitor::writeDispatch(Output& out, const ClassDefPtr& p) string retS = typeToString(ret, TypeModeReturn, scope); int iter; - TypeStringList inParams = op->inputParameters(); - TypeStringList outParams = op->outputParameters(); + TypeStringList inParams; + TypeStringList outParams; + ParamDeclList paramList = op->parameters(); + for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli) + { + TypeStringList &listref = (*pli)->isOutParam() ? outParams : inParams; + listref.push_back(make_pair((*pli)->type(), (*pli)->name())); + } + TypeStringList::const_iterator q; ExceptionList throws = op->throws(); @@ -2929,8 +2901,15 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p) string retS = typeToString(ret, TypeModeReturn, scope); int iter; - TypeStringList inParams = op->inputParameters(); - TypeStringList outParams = op->outputParameters(); + TypeStringList inParams; + TypeStringList outParams; + ParamDeclList paramList = op->parameters(); + for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli) + { + TypeStringList &listref = (*pli)->isOutParam() ? outParams : inParams; + listref.push_back(make_pair((*pli)->type(), (*pli)->name())); + } + TypeStringList::const_iterator q; ExceptionList throws = op->throws(); @@ -3099,9 +3078,6 @@ Slice::Gen::DelegateDVisitor::visitClassDefStart(const ClassDefPtr& p) TypePtr ret = op->returnType(); string retS = typeToString(ret, TypeModeReturn, scope); - TypeStringList inParams = op->inputParameters(); - TypeStringList outParams = op->outputParameters(); - ExceptionList throws = op->throws(); throws.sort(); throws.unique(); |