diff options
author | Mark Spruiell <mes@zeroc.com> | 2006-05-23 23:22:31 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2006-05-23 23:22:31 +0000 |
commit | de15119814e1ebb8f151b9b52be6103936b392b7 (patch) | |
tree | b091c4a9be65d0a06ded3bfd248417dbd256ee85 /cpp/src/slice2java/Main.cpp | |
parent | using portable syntax for custom types (diff) | |
download | ice-de15119814e1ebb8f151b9b52be6103936b392b7.tar.bz2 ice-de15119814e1ebb8f151b9b52be6103936b392b7.tar.xz ice-de15119814e1ebb8f151b9b52be6103936b392b7.zip |
adding Java5 mapping; bug 848; bug 863
Diffstat (limited to 'cpp/src/slice2java/Main.cpp')
-rw-r--r-- | cpp/src/slice2java/Main.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp index 49983c58fb7..7d9f6e853d2 100644 --- a/cpp/src/slice2java/Main.cpp +++ b/cpp/src/slice2java/Main.cpp @@ -36,6 +36,7 @@ usage(const char* n) "--ice Permit `Ice' prefix (for building Ice source code only)\n" "--checksum CLASS Generate checksums for Slice definitions into CLASS.\n" "--stream Generate marshaling support for public stream API.\n" + "--meta META Define global metadata directive META.\n" ; // Note: --case-sensitive is intentionally not shown here! } @@ -55,6 +56,7 @@ main(int argc, char* argv[]) bool ice; string checksumClass; bool stream; + StringList globalMetadata; bool caseSensitive; IceUtil::Options opts; @@ -73,6 +75,7 @@ main(int argc, char* argv[]) opts.addOpt("", "ice"); opts.addOpt("", "checksum", IceUtil::Options::NeedArg); opts.addOpt("", "stream"); + opts.addOpt("", "meta", IceUtil::Options::NeedArg, "", IceUtil::Options::Repeat); opts.addOpt("", "case-sensitive"); vector<string>args; @@ -137,6 +140,11 @@ main(int argc, char* argv[]) checksumClass = opts.optArg("checksum"); } stream = opts.isSet("stream"); + if(opts.isSet("meta")) + { + vector<string> v = opts.argVec("meta"); + copy(v.begin(), v.end(), back_inserter(globalMetadata)); + } caseSensitive = opts.isSet("case-sensitive"); if(args.empty()) @@ -191,8 +199,8 @@ main(int argc, char* argv[]) } else { - UnitPtr p = Unit::createUnit(false, false, ice, caseSensitive); - int parseStatus = p->parse(cppHandle, debug); + UnitPtr p = Unit::createUnit(false, false, ice, caseSensitive, globalMetadata); + int parseStatus = p->parse(cppHandle, debug, Ice); if(!icecpp.close()) { @@ -241,7 +249,19 @@ main(int argc, char* argv[]) if(!checksumClass.empty()) { - Gen::writeChecksumClass(checksumClass, output, checksums); + // + // Look for the Java5 metadata. + // + bool java5 = false; + for(StringList::iterator p = globalMetadata.begin(); p != globalMetadata.end(); ++p) + { + if((*p) == "java:java5") + { + java5 = true; + break; + } + } + Gen::writeChecksumClass(checksumClass, output, checksums, java5); } return status; |