summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r--cpp/src/slice2java/Gen.cpp370
1 files changed, 146 insertions, 224 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index d6fe11eea60..ab9cc42aed4 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -1279,11 +1279,7 @@ Slice::Gen::writeChecksumClass(const string& checksumClass, const string& dir, c
// Attempt to open the source file for the checksum class.
//
JavaOutput out;
- if(!out.openClass(checksumClass, dir))
- {
- cerr << "can't open class `" << checksumClass << "' for writing: " << strerror(errno) << endl;
- return;
- }
+ out.openClass(checksumClass, dir);
//
// Get the class name.
@@ -1383,10 +1379,7 @@ Slice::Gen::OpsVisitor::writeOperations(const ClassDefPtr& p, bool noCurrent)
}
string absolute = getAbsolute(p, "", "_", opIntfName);
- if(!open(absolute))
- {
- return;
- }
+ open(absolute);
Output& out = output();
@@ -1507,10 +1500,7 @@ Slice::Gen::TieVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -1693,11 +1683,7 @@ Slice::Gen::PackageVisitor::visitModuleStart(const ModulePtr& p)
{
string markerClass = s.substr(packagePrefix.size()) + "." + fixKwd(p->name()) + "._Marker";
- if(!open(markerClass))
- {
- cerr << "can't open class `" << markerClass << "' for writing: " << strerror(errno) << endl;
- return false;
- }
+ open(markerClass);
Output& out = output();
out << sp << nl << "interface _Marker";
@@ -1733,10 +1719,7 @@ Slice::Gen::TypesVisitor::visitClassDefStart(const ClassDefPtr& p)
DataMemberList allDataMembers = p->allDataMembers();
DataMemberList::const_iterator d;
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -1951,10 +1934,7 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
DataMemberList members = p->dataMembers();
DataMemberList::const_iterator d;
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -2285,10 +2265,7 @@ Slice::Gen::TypesVisitor::visitStructStart(const StructPtr& p)
string name = fixKwd(p->name());
string absolute = getAbsolute(p);
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -2809,10 +2786,7 @@ Slice::Gen::TypesVisitor::visitEnum(const EnumPtr& p)
EnumeratorList::const_iterator en;
size_t sz = enumerators.size();
- if(!open(absolute))
- {
- return;
- }
+ open(absolute);
Output& out = output();
@@ -3035,10 +3009,8 @@ Slice::Gen::TypesVisitor::visitConst(const ConstPtr& p)
string absolute = getAbsolute(p);
TypePtr type = p->type();
- if(!open(absolute))
- {
- return;
- }
+ open(absolute);
+
Output& out = output();
out << sp << nl << "public interface " << name;
out << sb;
@@ -3188,22 +3160,20 @@ Slice::Gen::HolderVisitor::visitClassDefStart(const ClassDefPtr& p)
string name = p->name();
string absolute = getAbsolute(p, "", "", "PrxHolder");
- if(open(absolute))
- {
- Output& out = output();
- out << sp << nl << "public final class " << name << "PrxHolder";
- out << sb;
- out << sp << nl << "public" << nl << name << "PrxHolder()";
- out << sb;
- out << eb;
- out << sp << nl << "public" << nl << name << "PrxHolder(" << name << "Prx value)";
- out << sb;
- out << nl << "this.value = value;";
- out << eb;
- out << sp << nl << "public " << name << "Prx value;";
- out << eb;
- close();
- }
+ open(absolute);
+ Output& out = output();
+ out << sp << nl << "public final class " << name << "PrxHolder";
+ out << sb;
+ out << sp << nl << "public" << nl << name << "PrxHolder()";
+ out << sb;
+ out << eb;
+ out << sp << nl << "public" << nl << name << "PrxHolder(" << name << "Prx value)";
+ out << sb;
+ out << nl << "this.value = value;";
+ out << eb;
+ out << sp << nl << "public " << name << "Prx value;";
+ out << eb;
+ close();
}
return false;
@@ -3242,68 +3212,66 @@ Slice::Gen::HolderVisitor::writeHolder(const TypePtr& p)
string name = contained->name();
string absolute = getAbsolute(contained, "", "", "Holder");
- if(open(absolute))
+ open(absolute);
+ Output& out = output();
+ string typeS = typeToString(p, TypeModeIn, getPackage(contained));
+ out << sp << nl << "public final class " << name << "Holder";
+ out << sb;
+ out << sp << nl << "public" << nl << name << "Holder()";
+ out << sb;
+ out << eb;
+ out << sp << nl << "public" << nl << name << "Holder(" << typeS << " value)";
+ out << sb;
+ out << nl << "this.value = value;";
+ out << eb;
+ if(!p->isLocal())
{
- Output& out = output();
- string typeS = typeToString(p, TypeModeIn, getPackage(contained));
- out << sp << nl << "public final class " << name << "Holder";
- out << sb;
- out << sp << nl << "public" << nl << name << "Holder()";
- out << sb;
- out << eb;
- out << sp << nl << "public" << nl << name << "Holder(" << typeS << " value)";
- out << sb;
- out << nl << "this.value = value;";
- out << eb;
- if(!p->isLocal())
+ BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
+ if((builtin && builtin->kind() == Builtin::KindObject) || ClassDeclPtr::dynamicCast(p))
{
- BuiltinPtr builtin = BuiltinPtr::dynamicCast(p);
- if((builtin && builtin->kind() == Builtin::KindObject) || ClassDeclPtr::dynamicCast(p))
+ out << sp << nl << "public class Patcher implements IceInternal.Patcher";
+ if(_stream)
{
- out << sp << nl << "public class Patcher implements IceInternal.Patcher";
- if(_stream)
- {
- out << ", Ice.ReadObjectCallback";
- }
- out << sb;
- out << nl << "public void";
- out << nl << "patch(Ice.Object v)";
- out << sb;
- out << nl << "try";
- out << sb;
- out << nl << "value = (" << typeS << ")v;";
- out << eb;
- out << nl << "catch(ClassCastException ex)";
- out << sb;
- out << nl << "IceInternal.Ex.throwUOE(type(), v.ice_id());";
- out << eb;
- out << eb;
-
- out << sp << nl << "public String" << nl << "type()";
- out << sb;
- out << nl << "return \"" << p->typeId() << "\";";
- out << eb;
+ out << ", Ice.ReadObjectCallback";
+ }
+ out << sb;
+ out << nl << "public void";
+ out << nl << "patch(Ice.Object v)";
+ out << sb;
+ out << nl << "try";
+ out << sb;
+ out << nl << "value = (" << typeS << ")v;";
+ out << eb;
+ out << nl << "catch(ClassCastException ex)";
+ out << sb;
+ out << nl << "IceInternal.Ex.throwUOE(type(), v.ice_id());";
+ out << eb;
+ out << eb;
- if(_stream)
- {
- out << sp << nl << "public void" << nl << "invoke(Ice.Object v)";
- out << sb;
- out << nl << "patch(v);";
- out << eb;
- }
- out << eb;
+ out << sp << nl << "public String" << nl << "type()";
+ out << sb;
+ out << nl << "return \"" << p->typeId() << "\";";
+ out << eb;
- out << sp << nl << "public Patcher";
- out << nl << "getPatcher()";
+ if(_stream)
+ {
+ out << sp << nl << "public void" << nl << "invoke(Ice.Object v)";
out << sb;
- out << nl << "return new Patcher();";
+ out << nl << "patch(v);";
out << eb;
}
+ out << eb;
+
+ out << sp << nl << "public Patcher";
+ out << nl << "getPatcher()";
+ out << sb;
+ out << nl << "return new Patcher();";
+ out << eb;
}
- out << sp << nl << "public " << typeS << " value;";
- out << eb;
- close();
}
+ out << sp << nl << "public " << typeS << " value;";
+ out << eb;
+ close();
}
Slice::Gen::HelperVisitor::HelperVisitor(const string& dir, bool stream) :
@@ -3328,10 +3296,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p);
- if(!open(getAbsolute(p, "", "", "PrxHelper")))
- {
- return false;
- }
+ open(getAbsolute(p, "", "", "PrxHelper"));
Output& out = output();
@@ -3698,10 +3663,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p)
//
// Class helper.
//
- if(!open(getAbsolute(p, "", "", "Helper")))
- {
- return false;
- }
+ open(getAbsolute(p, "", "", "Helper"));
Output& out2 = output();
@@ -3733,10 +3695,7 @@ Slice::Gen::HelperVisitor::visitStructStart(const StructPtr& p)
string name = p->name();
string fixedName = fixKwd(name);
- if(!open(getAbsolute(p, "", "", "Helper")))
- {
- return false;
- }
+ open(getAbsolute(p, "", "", "Helper"));
Output& out = output();
@@ -3779,48 +3738,46 @@ Slice::Gen::HelperVisitor::visitSequence(const SequencePtr& p)
string package = getPackage(p);
string typeS = typeToString(p, TypeModeIn, package);
- if(open(helper))
- {
- Output& out = output();
- int iter;
+ open(helper);
+ Output& out = output();
+ int iter;
- out << sp << nl << "public final class " << name << "Helper";
- out << sb;
+ out << sp << nl << "public final class " << name << "Helper";
+ out << sb;
- out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << typeS << " __v)";
+ out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << typeS << " __v)";
+ out << sb;
+ iter = 0;
+ writeSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
+ out << eb;
+
+ out << sp << nl << "public static " << typeS << nl << "read(IceInternal.BasicStream __is)";
+ out << sb;
+ out << nl << typeS << " __v;";
+ iter = 0;
+ writeSequenceMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
+ out << nl << "return __v;";
+ out << eb;
+
+ if(_stream)
+ {
+ out << sp << nl << "public static void" << nl << "write(Ice.OutputStream __outS, " << typeS << " __v)";
out << sb;
iter = 0;
- writeSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
+ writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
out << eb;
- out << sp << nl << "public static " << typeS << nl << "read(IceInternal.BasicStream __is)";
+ out << sp << nl << "public static " << typeS << nl << "read(Ice.InputStream __inS)";
out << sb;
out << nl << typeS << " __v;";
iter = 0;
- writeSequenceMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
+ writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
out << nl << "return __v;";
out << eb;
-
- if(_stream)
- {
- out << sp << nl << "public static void" << nl << "write(Ice.OutputStream __outS, " << typeS << " __v)";
- out << sb;
- iter = 0;
- writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
- out << eb;
-
- out << sp << nl << "public static " << typeS << nl << "read(Ice.InputStream __inS)";
- out << sb;
- out << nl << typeS << " __v;";
- iter = 0;
- writeStreamSequenceMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
- out << nl << "return __v;";
- out << eb;
- }
-
- out << eb;
- close();
}
+
+ out << eb;
+ close();
}
void
@@ -3844,51 +3801,49 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p)
StringList metaData = p->getMetaData();
string formalType = typeToString(p, TypeModeIn, package, StringList(), true);
- if(open(helper))
- {
- Output& out = output();
- int iter;
+ open(helper);
+ Output& out = output();
+ int iter;
- out << sp << nl << "public final class " << name << "Helper";
- out << sb;
+ out << sp << nl << "public final class " << name << "Helper";
+ out << sb;
+
+ out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << formalType << " __v)";
+ out << sb;
+ iter = 0;
+ writeDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
+ out << eb;
- out << nl << "public static void" << nl << "write(IceInternal.BasicStream __os, " << formalType << " __v)";
+ out << sp << nl << "public static " << formalType
+ << nl << "read(IceInternal.BasicStream __is)";
+ out << sb;
+ out << nl << formalType << " __v;";
+ iter = 0;
+ writeDictionaryMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
+ out << nl << "return __v;";
+ out << eb;
+
+ if(_stream)
+ {
+ out << sp << nl << "public static void" << nl << "write(Ice.OutputStream __outS, " << formalType
+ << " __v)";
out << sb;
iter = 0;
- writeDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
+ writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
out << eb;
out << sp << nl << "public static " << formalType
- << nl << "read(IceInternal.BasicStream __is)";
+ << nl << "read(Ice.InputStream __inS)";
out << sb;
out << nl << formalType << " __v;";
iter = 0;
- writeDictionaryMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
+ writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
out << nl << "return __v;";
out << eb;
-
- if(_stream)
- {
- out << sp << nl << "public static void" << nl << "write(Ice.OutputStream __outS, " << formalType
- << " __v)";
- out << sb;
- iter = 0;
- writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", true, iter, false);
- out << eb;
-
- out << sp << nl << "public static " << formalType
- << nl << "read(Ice.InputStream __inS)";
- out << sb;
- out << nl << formalType << " __v;";
- iter = 0;
- writeStreamDictionaryMarshalUnmarshalCode(out, package, p, "__v", false, iter, false);
- out << nl << "return __v;";
- out << eb;
- }
-
- out << eb;
- close();
}
+
+ out << eb;
+ close();
}
void
@@ -3899,10 +3854,7 @@ Slice::Gen::HelperVisitor::visitEnum(const EnumPtr& p)
string name = p->name();
string fixedName = fixKwd(name);
- if(!open(getAbsolute(p, "", "", "Helper")))
- {
- return;
- }
+ open(getAbsolute(p, "", "", "Helper"));
Output& out = output();
@@ -3942,10 +3894,7 @@ Slice::Gen::ProxyVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "", "Prx");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4076,10 +4025,7 @@ Slice::Gen::DelegateVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "_", "Del");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4154,10 +4100,7 @@ Slice::Gen::DelegateMVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "_", "DelM");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4358,10 +4301,7 @@ Slice::Gen::DelegateDVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "_", "DelD");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4546,10 +4486,7 @@ Slice::Gen::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
ClassList bases = p->bases();
string absolute = getAbsolute(p, "", "_", "Disp");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4844,10 +4781,7 @@ Slice::Gen::ImplVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "", "I");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -4905,10 +4839,7 @@ Slice::Gen::ImplTieVisitor::visitClassDefStart(const ClassDefPtr& p)
string package = getPackage(p);
string absolute = getAbsolute(p, "", "", "I");
- if(!open(absolute))
- {
- return false;
- }
+ open(absolute);
Output& out = output();
@@ -5005,10 +4936,7 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p)
string classNameAMI = "AMI_" + cl->name();
string absoluteAMI = getAbsolute(cl, "", "AMI_", "_" + name);
- if(!open(absoluteAMI))
- {
- return;
- }
+ open(absoluteAMI);
Output& out = output();
@@ -5235,10 +5163,7 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p)
vector<string> paramsAMD = getParamsAsyncCB(p, classPkg);
{
- if(!open(absoluteAMD))
- {
- return;
- }
+ open(absoluteAMD);
Output& out = output();
@@ -5252,10 +5177,7 @@ Slice::Gen::AsyncVisitor::visitOperation(const OperationPtr& p)
}
{
- if(!open(absoluteAMDI))
- {
- return;
- }
+ open(absoluteAMDI);
Output& out = output();