diff options
6 files changed, 86 insertions, 71 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index 192281628a0..8b0b07934c0 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -205,18 +205,26 @@ Slice::JavaVisitor::getResultType(const OperationPtr& op, const string& package, { if(dispatch && op->hasMarshaledResult()) { - ContainedPtr c = ContainedPtr::dynamicCast(op->container()); + const ClassDefPtr c = ClassDefPtr::dynamicCast(op->container()); assert(c); - string abs = getAbsolute(c, package); + string abs; + if(c->isInterface()) + { + abs = getAbsolute(c, package); + } + else + { + abs = getAbsolute(c, package, "_", "Disp"); + } string name = op->name(); name[0] = toupper(static_cast<unsigned char>(name[0])); return abs + "." + name + "MarshaledResult"; } else if(op->returnsMultipleValues()) { - ContainedPtr c = ContainedPtr::dynamicCast(op->container()); + const ContainedPtr c = ContainedPtr::dynamicCast(op->container()); assert(c); - string abs = getAbsolute(c, package); + const string abs = getAbsolute(c, package); string name = op->name(); name[0] = toupper(static_cast<unsigned char>(name[0])); return abs + "." + name + "Result"; @@ -932,6 +940,14 @@ Slice::JavaVisitor::writeDispatch(Output& out, const ClassDefPtr& p) { OperationPtr op = *r; + // + // The "MarshaledResult" type is generated in the servant interface. + // + if(!p->isInterface() && op->hasMarshaledResult()) + { + writeMarshaledResultType(out, op, package); + } + vector<string> params = getParams(op, package); const bool amd = p->hasMetaData("amd") || op->hasMetaData("amd"); @@ -1019,10 +1035,7 @@ Slice::JavaVisitor::writeDispatch(Output& out, const ClassDefPtr& p) { OperationPtr op = *r; StringList opMetaData = op->getMetaData(); - ContainerPtr container = op->container(); - ClassDefPtr cl = ClassDefPtr::dynamicCast(container); - assert(cl); - string deprecateReason = getDeprecateReason(op, cl, "operation"); + string deprecateReason = getDeprecateReason(op, p, "operation"); string opName = op->name(); out << sp; @@ -1049,7 +1062,7 @@ Slice::JavaVisitor::writeDispatch(Output& out, const ClassDefPtr& p) } out << sb; - const bool amd = cl->hasMetaData("amd") || op->hasMetaData("amd"); + const bool amd = p->hasMetaData("amd") || op->hasMetaData("amd"); const TypePtr ret = op->returnType(); @@ -2659,7 +2672,10 @@ Slice::Gen::TypesVisitor::visitOperation(const OperationPtr& p) writeResultType(out, p, package); } - if(p->hasMarshaledResult()) + // + // The "MarshaledResult" type is generated in the servant interface. + // + if(cl->isInterface() && p->hasMarshaledResult()) { writeMarshaledResultType(out, p, package); } diff --git a/java/test/src/main/java/test/Ice/objects/InitialI.java b/java/test/src/main/java/test/Ice/objects/InitialI.java index b19652897c2..6cba223d63b 100644 --- a/java/test/src/main/java/test/Ice/objects/InitialI.java +++ b/java/test/src/main/java/test/Ice/objects/InitialI.java @@ -130,15 +130,15 @@ public final class InitialI implements _InitialDisp } @Override - public Initial.GetMBMarshaledResult getMB(com.zeroc.Ice.Current current) + public GetMBMarshaledResult getMB(com.zeroc.Ice.Current current) { - return new Initial.GetMBMarshaledResult(_b1, current); + return new GetMBMarshaledResult(_b1, current); } @Override - public CompletionStage<Initial.GetAMDMBMarshaledResult> getAMDMBAsync(com.zeroc.Ice.Current current) + public CompletionStage<GetAMDMBMarshaledResult> getAMDMBAsync(com.zeroc.Ice.Current current) { - return CompletableFuture.completedFuture(new Initial.GetAMDMBMarshaledResult(_b1, current)); + return CompletableFuture.completedFuture(new GetAMDMBMarshaledResult(_b1, current)); } @Override diff --git a/java/test/src/main/java/test/Ice/operations/AMDMyDerivedClassI.java b/java/test/src/main/java/test/Ice/operations/AMDMyDerivedClassI.java index cadaf38e0d2..0f248a00cde 100644 --- a/java/test/src/main/java/test/Ice/operations/AMDMyDerivedClassI.java +++ b/java/test/src/main/java/test/Ice/operations/AMDMyDerivedClassI.java @@ -871,39 +871,39 @@ public final class AMDMyDerivedClassI implements _MyDerivedClassDisp } @Override - public CompletionStage<MyClass.OpMStruct1MarshaledResult> opMStruct1Async(Current current) + public CompletionStage<OpMStruct1MarshaledResult> opMStruct1Async(Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMStruct1MarshaledResult(new Structure(), current)); + return CompletableFuture.completedFuture(new OpMStruct1MarshaledResult(new Structure(), current)); } @Override - public CompletionStage<MyClass.OpMStruct2MarshaledResult> opMStruct2Async(Structure p1, Current current) + public CompletionStage<OpMStruct2MarshaledResult> opMStruct2Async(Structure p1, Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMStruct2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMStruct2MarshaledResult(p1, p1, current)); } @Override - public CompletionStage<MyClass.OpMSeq1MarshaledResult> opMSeq1Async(Current current) + public CompletionStage<OpMSeq1MarshaledResult> opMSeq1Async(Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMSeq1MarshaledResult(new String[0], current)); + return CompletableFuture.completedFuture(new OpMSeq1MarshaledResult(new String[0], current)); } @Override - public CompletionStage<MyClass.OpMSeq2MarshaledResult> opMSeq2Async(String[] p1, Current current) + public CompletionStage<OpMSeq2MarshaledResult> opMSeq2Async(String[] p1, Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMSeq2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMSeq2MarshaledResult(p1, p1, current)); } @Override - public CompletionStage<MyClass.OpMDict1MarshaledResult> opMDict1Async(Current current) + public CompletionStage<OpMDict1MarshaledResult> opMDict1Async(Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMDict1MarshaledResult(new HashMap<>(), current)); + return CompletableFuture.completedFuture(new OpMDict1MarshaledResult(new HashMap<>(), current)); } @Override - public CompletionStage<MyClass.OpMDict2MarshaledResult> opMDict2Async(Map<String, String> p1, Current current) + public CompletionStage<OpMDict2MarshaledResult> opMDict2Async(Map<String, String> p1, Current current) { - return CompletableFuture.completedFuture(new MyClass.OpMDict2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMDict2MarshaledResult(p1, p1, current)); } private Thread _opVoidThread; diff --git a/java/test/src/main/java/test/Ice/operations/MyDerivedClassI.java b/java/test/src/main/java/test/Ice/operations/MyDerivedClassI.java index a5e3c1d4cc8..c43096f303d 100644 --- a/java/test/src/main/java/test/Ice/operations/MyDerivedClassI.java +++ b/java/test/src/main/java/test/Ice/operations/MyDerivedClassI.java @@ -794,39 +794,39 @@ public final class MyDerivedClassI implements _MyDerivedClassDisp } @Override - public MyClass.OpMStruct1MarshaledResult opMStruct1(Current current) + public OpMStruct1MarshaledResult opMStruct1(Current current) { - return new MyClass.OpMStruct1MarshaledResult(new Structure(), current); + return new OpMStruct1MarshaledResult(new Structure(), current); } @Override - public MyClass.OpMStruct2MarshaledResult opMStruct2(Structure p1, Current current) + public OpMStruct2MarshaledResult opMStruct2(Structure p1, Current current) { - return new MyClass.OpMStruct2MarshaledResult(p1, p1, current); + return new OpMStruct2MarshaledResult(p1, p1, current); } @Override - public MyClass.OpMSeq1MarshaledResult opMSeq1(Current current) + public OpMSeq1MarshaledResult opMSeq1(Current current) { - return new MyClass.OpMSeq1MarshaledResult(new String[0], current); + return new OpMSeq1MarshaledResult(new String[0], current); } @Override - public MyClass.OpMSeq2MarshaledResult opMSeq2(String[] p1, Current current) + public OpMSeq2MarshaledResult opMSeq2(String[] p1, Current current) { - return new MyClass.OpMSeq2MarshaledResult(p1, p1, current); + return new OpMSeq2MarshaledResult(p1, p1, current); } @Override - public MyClass.OpMDict1MarshaledResult opMDict1(Current current) + public OpMDict1MarshaledResult opMDict1(Current current) { - return new MyClass.OpMDict1MarshaledResult(new java.util.HashMap<>(), current); + return new OpMDict1MarshaledResult(new java.util.HashMap<>(), current); } @Override - public MyClass.OpMDict2MarshaledResult opMDict2(java.util.Map<String, String> p1, Current current) + public OpMDict2MarshaledResult opMDict2(java.util.Map<String, String> p1, Current current) { - return new MyClass.OpMDict2MarshaledResult(p1, p1, current); + return new OpMDict2MarshaledResult(p1, p1, current); } private int _opByteSOnewayCallCount = 0; diff --git a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java index 9853386ba85..70ebdaff730 100644 --- a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java +++ b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java @@ -562,55 +562,54 @@ public final class AMDInitialI implements _InitialDisp } @Override - public CompletionStage<Initial.OpMStruct1MarshaledResult> opMStruct1Async(Current current) + public CompletionStage<OpMStruct1MarshaledResult> opMStruct1Async(Current current) { return CompletableFuture.completedFuture( - new Initial.OpMStruct1MarshaledResult(Optional.of(new SmallStruct()), current)); + new OpMStruct1MarshaledResult(Optional.of(new SmallStruct()), current)); } @Override - public CompletionStage<Initial.OpMStruct2MarshaledResult> opMStruct2Async(Optional<SmallStruct> p1, Current current) + public CompletionStage<OpMStruct2MarshaledResult> opMStruct2Async(Optional<SmallStruct> p1, Current current) { - return CompletableFuture.completedFuture(new Initial.OpMStruct2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMStruct2MarshaledResult(p1, p1, current)); } @Override - public CompletionStage<Initial.OpMSeq1MarshaledResult> opMSeq1Async(Current current) + public CompletionStage<OpMSeq1MarshaledResult> opMSeq1Async(Current current) { - return CompletableFuture.completedFuture( - new Initial.OpMSeq1MarshaledResult(Optional.of(new String[0]), current)); + return CompletableFuture.completedFuture(new OpMSeq1MarshaledResult(Optional.of(new String[0]), current)); } @Override - public CompletionStage<Initial.OpMSeq2MarshaledResult> opMSeq2Async(Optional<String[]> p1, Current current) + public CompletionStage<OpMSeq2MarshaledResult> opMSeq2Async(Optional<String[]> p1, Current current) { - return CompletableFuture.completedFuture(new Initial.OpMSeq2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMSeq2MarshaledResult(p1, p1, current)); } @Override - public CompletionStage<Initial.OpMDict1MarshaledResult> opMDict1Async(Current current) + public CompletionStage<OpMDict1MarshaledResult> opMDict1Async(Current current) { return CompletableFuture.completedFuture( - new Initial.OpMDict1MarshaledResult(Optional.of(new java.util.HashMap<>()), current)); + new OpMDict1MarshaledResult(Optional.of(new java.util.HashMap<>()), current)); } @Override - public CompletionStage<Initial.OpMDict2MarshaledResult> opMDict2Async(Optional<java.util.Map<String, Integer>> p1, + public CompletionStage<OpMDict2MarshaledResult> opMDict2Async(Optional<java.util.Map<String, Integer>> p1, Current current) { - return CompletableFuture.completedFuture(new Initial.OpMDict2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMDict2MarshaledResult(p1, p1, current)); } @Override - public CompletionStage<Initial.OpMG1MarshaledResult> opMG1Async(Current current) + public CompletionStage<OpMG1MarshaledResult> opMG1Async(Current current) { - return CompletableFuture.completedFuture(new Initial.OpMG1MarshaledResult(Optional.of(new G()), current)); + return CompletableFuture.completedFuture(new OpMG1MarshaledResult(Optional.of(new G()), current)); } @Override - public CompletionStage<Initial.OpMG2MarshaledResult> opMG2Async(Optional<G> p1, Current current) + public CompletionStage<OpMG2MarshaledResult> opMG2Async(Optional<G> p1, Current current) { - return CompletableFuture.completedFuture(new Initial.OpMG2MarshaledResult(p1, p1, current)); + return CompletableFuture.completedFuture(new OpMG2MarshaledResult(p1, p1, current)); } @Override diff --git a/java/test/src/main/java/test/Ice/optional/InitialI.java b/java/test/src/main/java/test/Ice/optional/InitialI.java index a0b60ab70d6..9e0a57c6ee6 100644 --- a/java/test/src/main/java/test/Ice/optional/InitialI.java +++ b/java/test/src/main/java/test/Ice/optional/InitialI.java @@ -519,51 +519,51 @@ public final class InitialI implements _InitialDisp } @Override - public Initial.OpMStruct1MarshaledResult opMStruct1(Current current) + public OpMStruct1MarshaledResult opMStruct1(Current current) { - return new Initial.OpMStruct1MarshaledResult(Optional.of(new SmallStruct()), current); + return new OpMStruct1MarshaledResult(Optional.of(new SmallStruct()), current); } @Override - public Initial.OpMStruct2MarshaledResult opMStruct2(Optional<SmallStruct> p1, Current current) + public OpMStruct2MarshaledResult opMStruct2(Optional<SmallStruct> p1, Current current) { - return new Initial.OpMStruct2MarshaledResult(p1, p1, current); + return new OpMStruct2MarshaledResult(p1, p1, current); } @Override - public Initial.OpMSeq1MarshaledResult opMSeq1(Current current) + public OpMSeq1MarshaledResult opMSeq1(Current current) { - return new Initial.OpMSeq1MarshaledResult(Optional.of(new String[0]), current); + return new OpMSeq1MarshaledResult(Optional.of(new String[0]), current); } @Override - public Initial.OpMSeq2MarshaledResult opMSeq2(Optional<String[]> p1, Current current) + public OpMSeq2MarshaledResult opMSeq2(Optional<String[]> p1, Current current) { - return new Initial.OpMSeq2MarshaledResult(p1, p1, current); + return new OpMSeq2MarshaledResult(p1, p1, current); } @Override - public Initial.OpMDict1MarshaledResult opMDict1(Current current) + public OpMDict1MarshaledResult opMDict1(Current current) { - return new Initial.OpMDict1MarshaledResult(Optional.of(new java.util.HashMap<>()), current); + return new OpMDict1MarshaledResult(Optional.of(new java.util.HashMap<>()), current); } @Override - public Initial.OpMDict2MarshaledResult opMDict2(Optional<java.util.Map<String, Integer>> p1, Current current) + public OpMDict2MarshaledResult opMDict2(Optional<java.util.Map<String, Integer>> p1, Current current) { - return new Initial.OpMDict2MarshaledResult(p1, p1, current); + return new OpMDict2MarshaledResult(p1, p1, current); } @Override - public Initial.OpMG1MarshaledResult opMG1(Current current) + public OpMG1MarshaledResult opMG1(Current current) { - return new Initial.OpMG1MarshaledResult(Optional.of(new G()), current); + return new OpMG1MarshaledResult(Optional.of(new G()), current); } @Override - public Initial.OpMG2MarshaledResult opMG2(Optional<G> p1, Current current) + public OpMG2MarshaledResult opMG2(Optional<G> p1, Current current) { - return new Initial.OpMG2MarshaledResult(p1, p1, current); + return new OpMG2MarshaledResult(p1, p1, current); } @Override |