summaryrefslogtreecommitdiff
path: root/cpp/src/slice2javae/Gen.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2006-04-06 12:47:53 +0000
committerMark Spruiell <mes@zeroc.com>2006-04-06 12:47:53 +0000
commit06f64b80862f8d972713a39951716b491c4bb4bb (patch)
tree21a6214e708db9e751bd65ddf861041d9d196cd5 /cpp/src/slice2javae/Gen.cpp
parentdisable warnaserror for deprecated operation (diff)
downloadice-06f64b80862f8d972713a39951716b491c4bb4bb.tar.bz2
ice-06f64b80862f8d972713a39951716b491c4bb4bb.tar.xz
ice-06f64b80862f8d972713a39951716b491c4bb4bb.zip
adding more support for deprecate metadata
Diffstat (limited to 'cpp/src/slice2javae/Gen.cpp')
-rw-r--r--cpp/src/slice2javae/Gen.cpp121
1 files changed, 102 insertions, 19 deletions
diff --git a/cpp/src/slice2javae/Gen.cpp b/cpp/src/slice2javae/Gen.cpp
index 91eab073cab..a4a05475db1 100644
--- a/cpp/src/slice2javae/Gen.cpp
+++ b/cpp/src/slice2javae/Gen.cpp
@@ -829,12 +829,29 @@ Slice::Gen::OpsVisitor::writeOperations(const ClassDefPtr& p, bool noCurrent)
params = getParams(op, package);
ret = op->returnType();
+ string deprecateMetadata, deprecateReason;
+ if(op->findMetaData("deprecate", deprecateMetadata) || p->findMetaData("deprecate", deprecateMetadata))
+ {
+ deprecateReason = "This operation has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ }
+
string retS = typeToString(ret, TypeModeReturn, package, op->getMetaData());
ExceptionList throws = op->throws();
throws.sort();
throws.unique();
- out << sp << nl << retS << ' ' << fixKwd(opname) << spar << params;
+ out << sp;
+ if(!deprecateReason.empty())
+ {
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
+ out << nl << retS << ' ' << fixKwd(opname) << spar << params;
if(!noCurrent && !p->isLocal())
{
out << "Ice.Current __current";
@@ -1285,7 +1302,22 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
Output& out = output();
- out << sp << nl << "public class " << name << " extends ";
+ out << sp;
+
+ string deprecateMetadata;
+ if(p->findMetaData("deprecate", deprecateMetadata))
+ {
+ string deprecateReason = "This type has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
+
+ out << nl << "public class " << name << " extends ";
if(!base)
{
@@ -1501,7 +1533,22 @@ Slice::Gen::TypesVisitor::visitStructStart(const StructPtr& p)
Output& out = output();
- out << sp << nl << "public final class " << name;
+ out << sp;
+
+ string deprecateMetadata;
+ if(p->findMetaData("deprecate", deprecateMetadata))
+ {
+ string deprecateReason = "This type has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
+
+ out << nl << "public final class " << name;
out << sb;
return true;
@@ -1761,7 +1808,22 @@ Slice::Gen::TypesVisitor::visitDataMember(const DataMemberPtr& p)
StringList metaData = p->getMetaData();
string s = typeToString(p->type(), TypeModeMember, getPackage(contained), metaData);
Output& out = output();
- out << sp << nl << "public " << s << ' ' << name << ';';
+
+ out << sp;
+
+ string deprecateMetadata;
+ if(p->findMetaData("deprecate", deprecateMetadata) || contained->findMetaData("deprecate", deprecateMetadata))
+ {
+ string deprecateReason = "This member has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
+ out << nl << "public " << s << ' ' << name << ';';
}
void
@@ -1780,7 +1842,22 @@ Slice::Gen::TypesVisitor::visitEnum(const EnumPtr& p)
Output& out = output();
- out << sp << nl << "public final class " << name;
+ out << sp;
+
+ string deprecateMetadata;
+ if(p->findMetaData("deprecate", deprecateMetadata))
+ {
+ string deprecateReason = "This type has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
+
+ out << nl << "public final class " << name;
out << sb;
out << nl << "private static " << name << "[] __values = new " << name << "[" << sz << "];";
out << nl << "private int __value;";
@@ -2785,30 +2862,36 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
throws.sort();
throws.unique();
+ string deprecateMetadata, deprecateReason;
+ if(p->findMetaData("deprecate", deprecateMetadata) || cl->findMetaData("deprecate", deprecateMetadata))
+ {
+ deprecateReason = "This operation has been deprecated.";
+ if(deprecateMetadata.find("deprecate:") == 0 && deprecateMetadata.size() > 10)
+ {
+ deprecateReason = deprecateMetadata.substr(10);
+ }
+ }
+
//
// Write two versions of the operation - with and without a
// context parameter.
//
out << sp;
- StringList metaData = p->getMetaData();
- for(StringList::const_iterator q = metaData.begin(); q != metaData.end(); ++q)
+ if(!deprecateReason.empty())
{
- if(q->find("deprecate") == 0)
- {
- string reason = "This method has been deprecated.";
- if(q->find("deprecate:") == 0)
- {
- reason = q->substr(10);
- }
- out << nl << "/**";
- out << nl << " * @deprecated " << reason;
- out << nl << " **/";
- break;
- }
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
}
out << nl << "public " << retS << ' ' << name << spar << params << epar;
writeThrowsClause(package, throws);
out << ';';
+ if(!deprecateReason.empty())
+ {
+ out << nl << "/**";
+ out << nl << " * @deprecated " << deprecateReason;
+ out << nl << " **/";
+ }
out << nl << "public " << retS << ' ' << name << spar << params << "java.util.Hashtable __ctx" << epar;
writeThrowsClause(package, throws);
out << ';';