summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/src/slice2java/Gen.cpp36
-rw-r--r--java/test/src/main/java/test/Ice/objects/InitialI.java8
-rw-r--r--java/test/src/main/java/test/Ice/operations/AMDMyDerivedClassI.java24
-rw-r--r--java/test/src/main/java/test/Ice/operations/MyDerivedClassI.java24
-rw-r--r--java/test/src/main/java/test/Ice/optional/AMDInitialI.java33
-rw-r--r--java/test/src/main/java/test/Ice/optional/InitialI.java32
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