summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
committerJose <jose@zeroc.com>2017-02-01 23:16:30 +0100
commitca131951f8d81ea3da13277172a24234b5c848ea (patch)
tree28b8d9ad6a09f550ef43f3b24df8048da8e70d7d /cpp/src/slice2java
parentAdded entries for support of try-with-resources/with statement in Java/Python (diff)
downloadice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.bz2
ice-ca131951f8d81ea3da13277172a24234b5c848ea.tar.xz
ice-ca131951f8d81ea3da13277172a24234b5c848ea.zip
Add --no-warn option to Slice compilers
Diffstat (limited to 'cpp/src/slice2java')
-rw-r--r--cpp/src/slice2java/Gen.cpp115
-rw-r--r--cpp/src/slice2java/Gen.h20
-rw-r--r--cpp/src/slice2java/GenCompat.cpp163
-rw-r--r--cpp/src/slice2java/GenCompat.h30
-rw-r--r--cpp/src/slice2java/Main.cpp45
5 files changed, 209 insertions, 164 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 6fea7f223f1..376a8edd86e 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -144,8 +144,9 @@ string ofFactory(const TypePtr& type)
}
-Slice::JavaVisitor::JavaVisitor(const string& dir) :
- JavaGenerator(dir)
+Slice::JavaVisitor::JavaVisitor(const string& dir, int warningLevel) :
+ JavaGenerator(dir),
+ ParserVisitor(warningLevel)
{
}
@@ -2298,10 +2299,12 @@ Slice::JavaVisitor::writeServantDocComment(Output& out, const OperationPtr& p, c
out << nl << " **/";
}
-Slice::Gen::Gen(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir) :
+Slice::Gen::Gen(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir,
+ int warningLevel) :
_base(base),
_includePaths(includePaths),
- _dir(dir)
+ _dir(dir),
+ _warningLevel(warningLevel)
{
}
@@ -2312,31 +2315,31 @@ Slice::Gen::~Gen()
void
Slice::Gen::generate(const UnitPtr& p)
{
- JavaGenerator::validateMetaData(p);
+ JavaGenerator::validateMetaData(p, _warningLevel);
- PackageVisitor packageVisitor(_dir);
+ PackageVisitor packageVisitor(_dir, _warningLevel);
p->visit(&packageVisitor, false);
- TypesVisitor typesVisitor(_dir);
+ TypesVisitor typesVisitor(_dir, _warningLevel);
p->visit(&typesVisitor, false);
- CompactIdVisitor compactIdVisitor(_dir);
+ CompactIdVisitor compactIdVisitor(_dir, _warningLevel);
p->visit(&compactIdVisitor, false);
- HelperVisitor helperVisitor(_dir);
+ HelperVisitor helperVisitor(_dir, _warningLevel);
p->visit(&helperVisitor, false);
- ProxyVisitor proxyVisitor(_dir);
+ ProxyVisitor proxyVisitor(_dir, _warningLevel);
p->visit(&proxyVisitor, false);
- DispatcherVisitor dispatcherVisitor(_dir);
+ DispatcherVisitor dispatcherVisitor(_dir, _warningLevel);
p->visit(&dispatcherVisitor, false);
}
void
Slice::Gen::generateImpl(const UnitPtr& p)
{
- ImplVisitor implVisitor(_dir);
+ ImplVisitor implVisitor(_dir, _warningLevel);
p->visit(&implVisitor, false);
}
@@ -2395,8 +2398,8 @@ Slice::Gen::writeChecksumClass(const string& checksumClass, const string& dir, c
out << nl;
}
-Slice::Gen::PackageVisitor::PackageVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::PackageVisitor::PackageVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -2420,8 +2423,8 @@ Slice::Gen::PackageVisitor::visitModuleStart(const ModulePtr& p)
return false;
}
-Slice::Gen::TypesVisitor::TypesVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::TypesVisitor::TypesVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -2760,9 +2763,12 @@ Slice::Gen::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -2773,10 +2779,13 @@ Slice::Gen::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -3285,9 +3294,12 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -3298,10 +3310,13 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for exception `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for exception `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -3598,9 +3613,12 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -3611,10 +3629,13 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for struct `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for struct `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -4139,8 +4160,8 @@ Slice::Gen::TypesVisitor::validateMethod(const OperationList& ops, const std::st
return true;
}
-Slice::Gen::CompactIdVisitor::CompactIdVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::CompactIdVisitor::CompactIdVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -4169,8 +4190,8 @@ Slice::Gen::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::Gen::HelperVisitor::HelperVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::HelperVisitor::HelperVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -4334,8 +4355,8 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p)
close();
}
-Slice::Gen::ProxyVisitor::ProxyVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::ProxyVisitor::ProxyVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -5089,8 +5110,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
}
}
-Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
@@ -5163,8 +5184,8 @@ Slice::Gen::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::Gen::ImplVisitor::ImplVisitor(const string& dir) :
- JavaVisitor(dir)
+Slice::Gen::ImplVisitor::ImplVisitor(const string& dir, int warningLevel) :
+ JavaVisitor(dir, warningLevel)
{
}
diff --git a/cpp/src/slice2java/Gen.h b/cpp/src/slice2java/Gen.h
index 11c7d0f7e45..d2ce2ef44c1 100644
--- a/cpp/src/slice2java/Gen.h
+++ b/cpp/src/slice2java/Gen.h
@@ -25,7 +25,7 @@ public:
protected:
- JavaVisitor(const std::string&);
+ JavaVisitor(const std::string&, int);
enum ParamDir { InParam, OutParam };
@@ -129,7 +129,8 @@ public:
Gen(const std::string&,
const std::string&,
const std::vector<std::string>&,
- const std::string&);
+ const std::string&,
+ int);
~Gen();
void generate(const UnitPtr&);
@@ -142,12 +143,13 @@ private:
std::string _base;
std::vector<std::string> _includePaths;
std::string _dir;
+ int _warningLevel;
class PackageVisitor : public JavaVisitor
{
public:
- PackageVisitor(const std::string&);
+ PackageVisitor(const std::string&, int);
virtual bool visitModuleStart(const ModulePtr&);
};
@@ -156,7 +158,7 @@ private:
{
public:
- TypesVisitor(const std::string&);
+ TypesVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual void visitClassDefEnd(const ClassDefPtr&);
@@ -181,7 +183,7 @@ private:
{
public:
- CompactIdVisitor(const std::string&);
+ CompactIdVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
};
@@ -190,7 +192,7 @@ private:
{
public:
- HelperVisitor(const std::string&);
+ HelperVisitor(const std::string&, int);
virtual void visitSequence(const SequencePtr&);
virtual void visitDictionary(const DictionaryPtr&);
@@ -200,7 +202,7 @@ private:
{
public:
- ProxyVisitor(const std::string&);
+ ProxyVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual void visitClassDefEnd(const ClassDefPtr&);
@@ -211,7 +213,7 @@ private:
{
public:
- DispatcherVisitor(const std::string&);
+ DispatcherVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
};
@@ -220,7 +222,7 @@ private:
{
public:
- ImplVisitor(const std::string&);
+ ImplVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
diff --git a/cpp/src/slice2java/GenCompat.cpp b/cpp/src/slice2java/GenCompat.cpp
index 7bccb844408..6579642d280 100644
--- a/cpp/src/slice2java/GenCompat.cpp
+++ b/cpp/src/slice2java/GenCompat.cpp
@@ -191,8 +191,9 @@ writeParamList(Output& out, vector<string> params, bool end = true, bool newLine
}
-Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir) :
- JavaCompatGenerator(dir)
+Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir, int warningLevel) :
+ JavaCompatGenerator(dir),
+ ParserVisitor(warningLevel)
{
}
@@ -2278,11 +2279,13 @@ Slice::JavaCompatVisitor::writeDocCommentParam(Output& out, const OperationPtr&
}
}
-Slice::GenCompat::GenCompat(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir, bool tie) :
+Slice::GenCompat::GenCompat(const string& /*name*/, const string& base, const vector<string>& includePaths,
+ const string& dir, bool tie, int warningLevel) :
_base(base),
_includePaths(includePaths),
_dir(dir),
- _tie(tie)
+ _tie(tie),
+ _warningLevel(warningLevel)
{
}
@@ -2293,47 +2296,47 @@ Slice::GenCompat::~GenCompat()
void
Slice::GenCompat::generate(const UnitPtr& p)
{
- JavaGenerator::validateMetaData(p);
+ JavaGenerator::validateMetaData(p, _warningLevel);
- OpsVisitor opsVisitor(_dir);
+ OpsVisitor opsVisitor(_dir, _warningLevel);
p->visit(&opsVisitor, false);
- PackageVisitor packageVisitor(_dir);
+ PackageVisitor packageVisitor(_dir, _warningLevel);
p->visit(&packageVisitor, false);
- TypesVisitor typesVisitor(_dir);
+ TypesVisitor typesVisitor(_dir, _warningLevel);
p->visit(&typesVisitor, false);
- CompactIdVisitor compactIdVisitor(_dir);
+ CompactIdVisitor compactIdVisitor(_dir, _warningLevel);
p->visit(&compactIdVisitor, false);
- HolderVisitor holderVisitor(_dir);
+ HolderVisitor holderVisitor(_dir, _warningLevel);
p->visit(&holderVisitor, false);
- HelperVisitor helperVisitor(_dir);
+ HelperVisitor helperVisitor(_dir, _warningLevel);
p->visit(&helperVisitor, false);
- ProxyVisitor proxyVisitor(_dir);
+ ProxyVisitor proxyVisitor(_dir, _warningLevel);
p->visit(&proxyVisitor, false);
- DispatcherVisitor dispatcherVisitor(_dir, _tie);
+ DispatcherVisitor dispatcherVisitor(_dir, _tie, _warningLevel);
p->visit(&dispatcherVisitor, false);
- AsyncVisitor asyncVisitor(_dir);
+ AsyncVisitor asyncVisitor(_dir, _warningLevel);
p->visit(&asyncVisitor, false);
}
void
Slice::GenCompat::generateImpl(const UnitPtr& p)
{
- ImplVisitor implVisitor(_dir);
+ ImplVisitor implVisitor(_dir, _warningLevel);
p->visit(&implVisitor, false);
}
void
Slice::GenCompat::generateImplTie(const UnitPtr& p)
{
- ImplTieVisitor implTieVisitor(_dir);
+ ImplTieVisitor implTieVisitor(_dir, _warningLevel);
p->visit(&implTieVisitor, false);
}
@@ -2392,8 +2395,8 @@ Slice::GenCompat::writeChecksumClass(const string& checksumClass, const string&
out << nl;
}
-Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -2527,8 +2530,8 @@ Slice::GenCompat::OpsVisitor::writeOperations(const ClassDefPtr& p, bool noCurre
close();
}
-Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -2552,8 +2555,8 @@ Slice::GenCompat::PackageVisitor::visitModuleStart(const ModulePtr& p)
return false;
}
-Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -3014,9 +3017,12 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -3027,10 +3033,13 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -3434,9 +3443,12 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -3447,10 +3459,13 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for exception `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for exception `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -3750,9 +3765,12 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -3763,10 +3781,13 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for struct `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for struct `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -4191,8 +4212,8 @@ Slice::GenCompat::TypesVisitor::validateMethod(const OperationList& ops, const s
return true;
}
-Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -4221,8 +4242,8 @@ Slice::GenCompat::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -4370,8 +4391,8 @@ Slice::GenCompat::HolderVisitor::writeHolder(const TypePtr& p)
close();
}
-Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -5303,8 +5324,8 @@ Slice::GenCompat::HelperVisitor::writeOperation(const ClassDefPtr& p, const stri
}
}
-Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -5623,8 +5644,8 @@ Slice::GenCompat::ProxyVisitor::visitOperation(const OperationPtr& p)
}
}
-Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie) :
- JavaCompatVisitor(dir),
+Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel),
_tie(tie)
{
}
@@ -5825,9 +5846,12 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
string::size_type pos = serialVersionUID.rfind(":") + 1;
if(pos == string::npos)
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
else
@@ -5838,10 +5862,13 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
{
if(!stringToInt64(serialVersionUID, v)) // conversion error
{
- ostringstream os;
- os << "ignoring invalid serialVersionUID for class `" << p->scoped()
- << "'; generating default value";
- emitWarning("", "", os.str());
+ if(warningLevel() > 0)
+ {
+ ostringstream os;
+ os << "ignoring invalid serialVersionUID for class `" << p->scoped()
+ << "'; generating default value";
+ emitWarning("", "", os.str());
+ }
out << computeSerialVersionUUID(p);
}
}
@@ -5860,8 +5887,8 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
@@ -6125,8 +6152,8 @@ Slice::GenCompat::BaseImplVisitor::writeOperation(Output& out, const string& pac
}
}
-Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir) :
- BaseImplVisitor(dir)
+Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir, int warningLevel) :
+ BaseImplVisitor(dir, warningLevel)
{
}
@@ -6181,8 +6208,8 @@ Slice::GenCompat::ImplVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir) :
- BaseImplVisitor(dir)
+Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir, int warningLevel) :
+ BaseImplVisitor(dir, warningLevel)
{
}
@@ -6270,8 +6297,8 @@ Slice::GenCompat::ImplTieVisitor::visitClassDefStart(const ClassDefPtr& p)
return false;
}
-Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir) :
- JavaCompatVisitor(dir)
+Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir, int warningLevel) :
+ JavaCompatVisitor(dir, warningLevel)
{
}
diff --git a/cpp/src/slice2java/GenCompat.h b/cpp/src/slice2java/GenCompat.h
index 5f8ba85aa9d..25d2d0b7091 100644
--- a/cpp/src/slice2java/GenCompat.h
+++ b/cpp/src/slice2java/GenCompat.h
@@ -25,7 +25,7 @@ public:
protected:
- JavaCompatVisitor(const std::string&);
+ JavaCompatVisitor(const std::string&, int);
enum ParamDir { InParam, OutParam };
@@ -131,7 +131,8 @@ public:
const std::string&,
const std::vector<std::string>&,
const std::string&,
- bool);
+ bool,
+ int);
~GenCompat();
void generate(const UnitPtr&);
@@ -146,12 +147,13 @@ private:
std::vector<std::string> _includePaths;
std::string _dir;
bool _tie;
+ int _warningLevel;
class OpsVisitor : public JavaCompatVisitor
{
public:
- OpsVisitor(const std::string&);
+ OpsVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
@@ -163,7 +165,7 @@ private:
{
public:
- PackageVisitor(const std::string&);
+ PackageVisitor(const std::string&, int);
virtual bool visitModuleStart(const ModulePtr&);
};
@@ -172,7 +174,7 @@ private:
{
public:
- TypesVisitor(const std::string&);
+ TypesVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual void visitClassDefEnd(const ClassDefPtr&);
@@ -196,7 +198,7 @@ private:
{
public:
- CompactIdVisitor(const std::string&);
+ CompactIdVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
};
@@ -205,7 +207,7 @@ private:
{
public:
- HolderVisitor(const std::string&);
+ HolderVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual bool visitStructStart(const StructPtr&);
@@ -222,7 +224,7 @@ private:
{
public:
- HelperVisitor(const std::string&);
+ HelperVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual void visitSequence(const SequencePtr&);
@@ -237,7 +239,7 @@ private:
{
public:
- ProxyVisitor(const std::string&);
+ ProxyVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
virtual void visitClassDefEnd(const ClassDefPtr&);
@@ -248,7 +250,7 @@ private:
{
public:
- DispatcherVisitor(const std::string&, bool);
+ DispatcherVisitor(const std::string&, bool, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
@@ -260,7 +262,7 @@ private:
{
public:
- BaseImplVisitor(const std::string&);
+ BaseImplVisitor(const std::string&, int);
protected:
@@ -286,7 +288,7 @@ private:
{
public:
- ImplVisitor(const std::string&);
+ ImplVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
};
@@ -295,7 +297,7 @@ private:
{
public:
- ImplTieVisitor(const std::string&);
+ ImplTieVisitor(const std::string&, int);
virtual bool visitClassDefStart(const ClassDefPtr&);
};
@@ -304,7 +306,7 @@ private:
{
public:
- AsyncVisitor(const std::string&);
+ AsyncVisitor(const std::string&, int);
virtual void visitOperation(const OperationPtr&);
};
diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp
index 86b07bf60d5..2ea06372755 100644
--- a/cpp/src/slice2java/Main.cpp
+++ b/cpp/src/slice2java/Main.cpp
@@ -87,6 +87,7 @@ usage(const string& n)
" deprecated: use instead [[\"ice-prefix\"]] metadata.\n"
"--underscore Allow underscores in Slice identifiers\n"
" deprecated: use instead [[\"underscore\"]] metadata.\n"
+ "--no-warn Disable all warnings.\n"
;
}
@@ -115,6 +116,7 @@ compile(const vector<string>& argv)
opts.addOpt("", "checksum", IceUtilInternal::Options::NeedArg);
opts.addOpt("", "meta", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat);
opts.addOpt("", "compat");
+ opts.addOpt("", "no-warn");
bool validate = find(argv.begin(), argv.end(), "--validate") != argv.end();
vector<string>args;
@@ -193,6 +195,8 @@ compile(const vector<string>& argv)
bool compat = opts.isSet("compat");
+ int warningLevel = opts.isSet("no-warn") ? 0 : 1;
+
if(args.empty())
{
consoleErr << argv[0] << ": error: no input file" << endl;
@@ -350,7 +354,7 @@ compile(const vector<string>& argv)
{
if(compat)
{
- GenCompat gen(argv[0], icecpp->getBaseName(), includePaths, output, tie);
+ GenCompat gen(argv[0], icecpp->getBaseName(), includePaths, output, tie, warningLevel);
gen.generate(p);
if(impl)
{
@@ -360,39 +364,28 @@ compile(const vector<string>& argv)
{
gen.generateImplTie(p);
}
- if(!checksumClass.empty())
- {
- //
- // Calculate checksums for the Slice definitions in the unit.
- //
- ChecksumMap m = createChecksums(p);
- copy(m.begin(), m.end(), inserter(checksums, checksums.begin()));
- }
- if(listGenerated)
- {
- FileTracker::instance()->setOutput(os.str(), false);
- }
}
else
{
- Gen gen(argv[0], icecpp->getBaseName(), includePaths, output);
+ Gen gen(argv[0], icecpp->getBaseName(), includePaths, output, warningLevel);
gen.generate(p);
if(impl)
{
gen.generateImpl(p);
}
- if(!checksumClass.empty())
- {
- //
- // Calculate checksums for the Slice definitions in the unit.
- //
- ChecksumMap m = createChecksums(p);
- copy(m.begin(), m.end(), inserter(checksums, checksums.begin()));
- }
- if(listGenerated)
- {
- FileTracker::instance()->setOutput(os.str(), false);
- }
+ }
+
+ if(!checksumClass.empty())
+ {
+ //
+ // Calculate checksums for the Slice definitions in the unit.
+ //
+ ChecksumMap m = createChecksums(p);
+ copy(m.begin(), m.end(), inserter(checksums, checksums.begin()));
+ }
+ if(listGenerated)
+ {
+ FileTracker::instance()->setOutput(os.str(), false);
}
}
catch(const Slice::FileException& ex)