summaryrefslogtreecommitdiff
path: root/cpp/src/slice2java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-05-04 11:44:19 +0200
committerJose <jose@zeroc.com>2017-05-04 11:44:19 +0200
commit34806029cac2f1d8a0adc657d15e986260fad181 (patch)
tree5831b4b7049f117243dbf77258b3fcb183da1222 /cpp/src/slice2java
parentFix (ICE-7861) - Generated Result struct for local interface op in C# (diff)
downloadice-34806029cac2f1d8a0adc657d15e986260fad181.tar.bz2
ice-34806029cac2f1d8a0adc657d15e986260fad181.tar.xz
ice-34806029cac2f1d8a0adc657d15e986260fad181.zip
Fix (ICE-7860) - local class inherit local interface broken in Java
Diffstat (limited to 'cpp/src/slice2java')
-rw-r--r--cpp/src/slice2java/Gen.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp
index 24f3a7e2957..8a0f8da95a2 100644
--- a/cpp/src/slice2java/Gen.cpp
+++ b/cpp/src/slice2java/Gen.cpp
@@ -2496,9 +2496,18 @@ Slice::Gen::TypesVisitor::visitClassDefStart(const ClassDefPtr& p)
{
out << " extends com.zeroc.Ice.Value";
}
- else
+
+ if(p->isLocal())
{
- implements.push_back("java.lang.Cloneable");
+ if(!baseClass)
+ {
+ implements.push_back("java.lang.Cloneable");
+ }
+
+ for(ClassList::const_iterator q = bases.begin(); q != bases.end(); ++q)
+ {
+ implements.push_back(getAbsolute(*q, package));
+ }
}
if(!implements.empty())