1 //
2 // Copyright (c) ZeroC, Inc. All rights reserved.
3 //
4 
5 package test.Ice.slicing.objects;
6 
7 import test.Ice.slicing.objects.serverAMD.Test.*;
8 
9 public final class AMDTestI extends _TestIntfDisp
10 {
11     private static void
test(boolean b)12     test(boolean b)
13     {
14         if(!b)
15         {
16             throw new RuntimeException();
17         }
18     }
19 
20     @Override
21     public void
shutdown_async(AMD_TestIntf_shutdown cb, Ice.Current current)22     shutdown_async(AMD_TestIntf_shutdown cb, Ice.Current current)
23     {
24         current.adapter.getCommunicator().shutdown();
25         cb.ice_response();
26     }
27 
28     @Override
29     public void
SBaseAsObject_async(AMD_TestIntf_SBaseAsObject cb, Ice.Current current)30     SBaseAsObject_async(AMD_TestIntf_SBaseAsObject cb, Ice.Current current)
31     {
32         SBase sb = new SBase();
33         sb.sb = "SBase.sb";
34         cb.ice_response(sb);
35     }
36 
37     @Override
38     public void
SBaseAsSBase_async(AMD_TestIntf_SBaseAsSBase cb, Ice.Current current)39     SBaseAsSBase_async(AMD_TestIntf_SBaseAsSBase cb, Ice.Current current)
40     {
41         SBase sb = new SBase();
42         sb.sb = "SBase.sb";
43         cb.ice_response(sb);
44     }
45 
46     @Override
47     public void
SBSKnownDerivedAsSBase_async(AMD_TestIntf_SBSKnownDerivedAsSBase cb, Ice.Current current)48     SBSKnownDerivedAsSBase_async(AMD_TestIntf_SBSKnownDerivedAsSBase cb, Ice.Current current)
49     {
50         SBSKnownDerived sbskd = new SBSKnownDerived();
51         sbskd.sb = "SBSKnownDerived.sb";
52         sbskd.sbskd = "SBSKnownDerived.sbskd";
53         cb.ice_response(sbskd);
54     }
55 
56     @Override
57     public void
SBSKnownDerivedAsSBSKnownDerived_async(AMD_TestIntf_SBSKnownDerivedAsSBSKnownDerived cb, Ice.Current current)58     SBSKnownDerivedAsSBSKnownDerived_async(AMD_TestIntf_SBSKnownDerivedAsSBSKnownDerived cb, Ice.Current current)
59     {
60         SBSKnownDerived sbskd = new SBSKnownDerived();
61         sbskd.sb = "SBSKnownDerived.sb";
62         sbskd.sbskd = "SBSKnownDerived.sbskd";
63         cb.ice_response(sbskd);
64     }
65 
66     @Override
67     public void
SBSUnknownDerivedAsSBase_async(AMD_TestIntf_SBSUnknownDerivedAsSBase cb, Ice.Current current)68     SBSUnknownDerivedAsSBase_async(AMD_TestIntf_SBSUnknownDerivedAsSBase cb, Ice.Current current)
69     {
70         SBSUnknownDerived sbsud = new SBSUnknownDerived();
71         sbsud.sb = "SBSUnknownDerived.sb";
72         sbsud.sbsud = "SBSUnknownDerived.sbsud";
73         cb.ice_response(sbsud);
74     }
75 
76     @Override
77     public void
SBSUnknownDerivedAsSBaseCompact_async(AMD_TestIntf_SBSUnknownDerivedAsSBaseCompact cb, Ice.Current current)78     SBSUnknownDerivedAsSBaseCompact_async(AMD_TestIntf_SBSUnknownDerivedAsSBaseCompact cb, Ice.Current current)
79     {
80         SBSUnknownDerived sbsud = new SBSUnknownDerived();
81         sbsud.sb = "SBSUnknownDerived.sb";
82         sbsud.sbsud = "SBSUnknownDerived.sbsud";
83         cb.ice_response(sbsud);
84     }
85 
86     @Override
87     public void
SUnknownAsObject_async(AMD_TestIntf_SUnknownAsObject cb, Ice.Current current)88     SUnknownAsObject_async(AMD_TestIntf_SUnknownAsObject cb, Ice.Current current)
89     {
90         SUnknown su = new SUnknown();
91         su.su = "SUnknown.su";
92         cb.ice_response(su);
93     }
94 
95     @Override
96     public void
checkSUnknown_async(AMD_TestIntf_checkSUnknown cb, Ice.Object obj, Ice.Current current)97     checkSUnknown_async(AMD_TestIntf_checkSUnknown cb, Ice.Object obj, Ice.Current current)
98     {
99         if(current.encoding.equals(Ice.Util.Encoding_1_0))
100         {
101             test(!(obj instanceof SUnknown));
102         }
103         else
104         {
105             SUnknown su = (SUnknown)obj;
106             test(su.su.equals("SUnknown.su"));
107         }
108         cb.ice_response();
109     }
110 
111     @Override
112     public void
oneElementCycle_async(AMD_TestIntf_oneElementCycle cb, Ice.Current current)113     oneElementCycle_async(AMD_TestIntf_oneElementCycle cb, Ice.Current current)
114     {
115         B b = new B();
116         b.sb = "B1.sb";
117         b.pb = b;
118         cb.ice_response(b);
119     }
120 
121     @Override
122     public void
twoElementCycle_async(AMD_TestIntf_twoElementCycle cb, Ice.Current current)123     twoElementCycle_async(AMD_TestIntf_twoElementCycle cb, Ice.Current current)
124     {
125         B b1 = new B();
126         b1.sb = "B1.sb";
127         B b2 = new B();
128         b2.sb = "B2.sb";
129         b2.pb = b1;
130         b1.pb = b2;
131         cb.ice_response(b1);
132     }
133 
134     @Override
135     public void
D1AsB_async(AMD_TestIntf_D1AsB cb, Ice.Current current)136     D1AsB_async(AMD_TestIntf_D1AsB cb, Ice.Current current)
137     {
138         D1 d1 = new D1();
139         d1.sb = "D1.sb";
140         d1.sd1 = "D1.sd1";
141         D2 d2 = new D2();
142         d2.pb = d1;
143         d2.sb = "D2.sb";
144         d2.sd2 = "D2.sd2";
145         d2.pd2 = d1;
146         d1.pb = d2;
147         d1.pd1 = d2;
148         cb.ice_response(d1);
149     }
150 
151     @Override
152     public void
D1AsD1_async(AMD_TestIntf_D1AsD1 cb, Ice.Current current)153     D1AsD1_async(AMD_TestIntf_D1AsD1 cb, Ice.Current current)
154     {
155         D1 d1 = new D1();
156         d1.sb = "D1.sb";
157         d1.sd1 = "D1.sd1";
158         D2 d2 = new D2();
159         d2.pb = d1;
160         d2.sb = "D2.sb";
161         d2.sd2 = "D2.sd2";
162         d2.pd2 = d1;
163         d1.pb = d2;
164         d1.pd1 = d2;
165         cb.ice_response(d1);
166     }
167 
168     @Override
169     public void
D2AsB_async(AMD_TestIntf_D2AsB cb, Ice.Current current)170     D2AsB_async(AMD_TestIntf_D2AsB cb, Ice.Current current)
171     {
172         D2 d2 = new D2();
173         d2.sb = "D2.sb";
174         d2.sd2 = "D2.sd2";
175         D1 d1 = new D1();
176         d1.pb = d2;
177         d1.sb = "D1.sb";
178         d1.sd1 = "D1.sd1";
179         d1.pd1 = d2;
180         d2.pb = d1;
181         d2.pd2 = d1;
182         cb.ice_response(d2);
183     }
184 
185     @Override
186     public void
paramTest1_async(AMD_TestIntf_paramTest1 cb, Ice.Current current)187     paramTest1_async(AMD_TestIntf_paramTest1 cb, Ice.Current current)
188     {
189         D1 d1 = new D1();
190         d1.sb = "D1.sb";
191         d1.sd1 = "D1.sd1";
192         D2 d2 = new D2();
193         d2.pb = d1;
194         d2.sb = "D2.sb";
195         d2.sd2 = "D2.sd2";
196         d2.pd2 = d1;
197         d1.pb = d2;
198         d1.pd1 = d2;
199         cb.ice_response(d1, d2);
200     }
201 
202     @Override
203     public void
paramTest2_async(AMD_TestIntf_paramTest2 cb, Ice.Current current)204     paramTest2_async(AMD_TestIntf_paramTest2 cb, Ice.Current current)
205     {
206         D1 d1 = new D1();
207         d1.sb = "D1.sb";
208         d1.sd1 = "D1.sd1";
209         D2 d2 = new D2();
210         d2.pb = d1;
211         d2.sb = "D2.sb";
212         d2.sd2 = "D2.sd2";
213         d2.pd2 = d1;
214         d1.pb = d2;
215         d1.pd1 = d2;
216         cb.ice_response(d2, d1);
217     }
218 
219     @Override
220     public void
paramTest3_async(AMD_TestIntf_paramTest3 cb, Ice.Current current)221     paramTest3_async(AMD_TestIntf_paramTest3 cb, Ice.Current current)
222     {
223         D2 d2 = new D2();
224         d2.sb = "D2.sb (p1 1)";
225         d2.pb = null;
226         d2.sd2 = "D2.sd2 (p1 1)";
227 
228         D1 d1 = new D1();
229         d1.sb = "D1.sb (p1 2)";
230         d1.pb = null;
231         d1.sd1 = "D1.sd2 (p1 2)";
232         d1.pd1 = null;
233         d2.pd2 = d1;
234 
235         D2 d4 = new D2();
236         d4.sb = "D2.sb (p2 1)";
237         d4.pb = null;
238         d4.sd2 = "D2.sd2 (p2 1)";
239 
240         D1 d3 = new D1();
241         d3.sb = "D1.sb (p2 2)";
242         d3.pb = null;
243         d3.sd1 = "D1.sd2 (p2 2)";
244         d3.pd1 = null;
245         d4.pd2 = d3;
246         cb.ice_response(d3, d2, d4);
247     }
248 
249     @Override
250     public void
paramTest4_async(AMD_TestIntf_paramTest4 cb, Ice.Current current)251     paramTest4_async(AMD_TestIntf_paramTest4 cb, Ice.Current current)
252     {
253         D4 d4 = new D4();
254         d4.sb = "D4.sb (1)";
255         d4.pb = null;
256         d4.p1 = new B();
257         d4.p1.sb = "B.sb (1)";
258         d4.p2 = new B();
259         d4.p2.sb = "B.sb (2)";
260         cb.ice_response(d4.p2, d4);
261     }
262 
263     @Override
264     public void
returnTest1_async(AMD_TestIntf_returnTest1 cb, Ice.Current current)265     returnTest1_async(AMD_TestIntf_returnTest1 cb, Ice.Current current)
266     {
267         D1 d1 = new D1();
268         d1.sb = "D1.sb";
269         d1.sd1 = "D1.sd1";
270         D2 d2 = new D2();
271         d2.pb = d1;
272         d2.sb = "D2.sb";
273         d2.sd2 = "D2.sd2";
274         d2.pd2 = d1;
275         d1.pb = d2;
276         d1.pd1 = d2;
277         cb.ice_response(d2, d2, d1);
278     }
279 
280     @Override
281     public void
returnTest2_async(AMD_TestIntf_returnTest2 cb, Ice.Current current)282     returnTest2_async(AMD_TestIntf_returnTest2 cb, Ice.Current current)
283     {
284         D1 d1 = new D1();
285         d1.sb = "D1.sb";
286         d1.sd1 = "D1.sd1";
287         D2 d2 = new D2();
288         d2.pb = d1;
289         d2.sb = "D2.sb";
290         d2.sd2 = "D2.sd2";
291         d2.pd2 = d1;
292         d1.pb = d2;
293         d1.pd1 = d2;
294         cb.ice_response(d1, d1, d2);
295     }
296 
297     @Override
298     public void
returnTest3_async(AMD_TestIntf_returnTest3 cb, B p1, B p2, Ice.Current current)299     returnTest3_async(AMD_TestIntf_returnTest3 cb, B p1, B p2, Ice.Current current)
300     {
301         cb.ice_response(p1);
302     }
303 
304     @Override
305     public void
sequenceTest_async(AMD_TestIntf_sequenceTest cb, SS1 p1, SS2 p2, Ice.Current current)306     sequenceTest_async(AMD_TestIntf_sequenceTest cb, SS1 p1, SS2 p2, Ice.Current current)
307     {
308         SS3 ss = new SS3();
309         ss.c1 = p1;
310         ss.c2 = p2;
311         cb.ice_response(ss);
312     }
313 
314     @Override
315     public void
dictionaryTest_async(AMD_TestIntf_dictionaryTest cb, java.util.Map<Integer, B> bin, Ice.Current current)316     dictionaryTest_async(AMD_TestIntf_dictionaryTest cb, java.util.Map<Integer, B> bin, Ice.Current current)
317     {
318         java.util.Map<Integer, B> bout = new java.util.HashMap<Integer, B>();
319         int i;
320         for(i = 0; i < 10; ++i)
321         {
322             B b = bin.get(i);
323             D2 d2 = new D2();
324             d2.sb = b.sb;
325             d2.pb = b.pb;
326             d2.sd2 = "D2";
327             d2.pd2 = d2;
328             bout.put(i * 10, d2);
329         }
330         java.util.Map<Integer, B> r = new java.util.HashMap<Integer, B>();
331         for(i = 0; i < 10; ++i)
332         {
333             String s = "D1." + Integer.valueOf(i * 20).toString();
334             D1 d1 = new D1();
335             d1.sb = s;
336             d1.pb = (i == 0 ? null : r.get((i - 1) * 20));
337             d1.sd1 = s;
338             d1.pd1 = d1;
339             r.put(i * 20, d1);
340         }
341         cb.ice_response(r, bout);
342     }
343 
344     @Override
345     public void
exchangePBase_async(AMD_TestIntf_exchangePBase cb, PBase pb, Ice.Current current)346     exchangePBase_async(AMD_TestIntf_exchangePBase cb, PBase pb, Ice.Current current)
347     {
348         cb.ice_response(pb);
349     }
350 
351     @Override
352     public void
PBSUnknownAsPreserved_async(AMD_TestIntf_PBSUnknownAsPreserved cb, Ice.Current current)353     PBSUnknownAsPreserved_async(AMD_TestIntf_PBSUnknownAsPreserved cb, Ice.Current current)
354     {
355         PSUnknown r = new PSUnknown();
356         r.pi = 5;
357         r.ps = "preserved";
358         r.psu = "unknown";
359         r.graph = null;
360         if(!current.encoding.equals(Ice.Util.Encoding_1_0))
361         {
362             //
363             // 1.0 encoding doesn't support unmarshaling unknown classes even if referenced
364             // from unread slice.
365             //
366             r.cl = new MyClass(15);
367         }
368         cb.ice_response(r);
369     }
370 
371     @Override
372     public void
checkPBSUnknown_async(AMD_TestIntf_checkPBSUnknown cb, Preserved p, Ice.Current current)373     checkPBSUnknown_async(AMD_TestIntf_checkPBSUnknown cb, Preserved p, Ice.Current current)
374     {
375         if(current.encoding.equals(Ice.Util.Encoding_1_0))
376         {
377             test(!(p instanceof PSUnknown));
378             test(p.pi == 5);
379             test(p.ps.equals("preserved"));
380         }
381         else
382         {
383             PSUnknown pu = (PSUnknown)p;
384             test(pu.pi == 5);
385             test(pu.ps.equals("preserved"));
386             test(pu.psu.equals("unknown"));
387             test(pu.graph == null);
388             test(pu.cl != null && pu.cl.i == 15);
389         }
390         cb.ice_response();
391     }
392 
393     @Override
394     public void
PBSUnknownAsPreservedWithGraph_async(AMD_TestIntf_PBSUnknownAsPreservedWithGraph cb, Ice.Current current)395     PBSUnknownAsPreservedWithGraph_async(AMD_TestIntf_PBSUnknownAsPreservedWithGraph cb, Ice.Current current)
396     {
397         PSUnknown r = new PSUnknown();
398         r.pi = 5;
399         r.ps = "preserved";
400         r.psu = "unknown";
401         r.graph = new PNode();
402         r.graph.next = new PNode();
403         r.graph.next.next = new PNode();
404         r.graph.next.next.next = r.graph;
405         cb.ice_response(r);
406         r.graph.next.next.next = null; // Break the cycle.
407     }
408 
409     @Override
410     public void
checkPBSUnknownWithGraph_async(AMD_TestIntf_checkPBSUnknownWithGraph cb, Preserved p, Ice.Current current)411     checkPBSUnknownWithGraph_async(AMD_TestIntf_checkPBSUnknownWithGraph cb, Preserved p, Ice.Current current)
412     {
413         if(current.encoding.equals(Ice.Util.Encoding_1_0))
414         {
415             test(!(p instanceof PSUnknown));
416             test(p.pi == 5);
417             test(p.ps.equals("preserved"));
418         }
419         else
420         {
421             PSUnknown pu = (PSUnknown)p;
422             test(pu.pi == 5);
423             test(pu.ps.equals("preserved"));
424             test(pu.psu.equals("unknown"));
425             test(pu.graph != pu.graph.next);
426             test(pu.graph.next != pu.graph.next.next);
427             test(pu.graph.next.next.next == pu.graph);
428             pu.graph.next.next.next = null;          // Break the cycle.
429         }
430         cb.ice_response();
431     }
432 
433     @Override
434     public void
PBSUnknown2AsPreservedWithGraph_async(AMD_TestIntf_PBSUnknown2AsPreservedWithGraph cb, Ice.Current current)435     PBSUnknown2AsPreservedWithGraph_async(AMD_TestIntf_PBSUnknown2AsPreservedWithGraph cb, Ice.Current current)
436     {
437         PSUnknown2 r = new PSUnknown2();
438         r.pi = 5;
439         r.ps = "preserved";
440         r.pb = r;
441         cb.ice_response(r);
442         r.pb = null; // Break the cycle.
443     }
444 
445     @Override
446     public void
checkPBSUnknown2WithGraph_async(AMD_TestIntf_checkPBSUnknown2WithGraph cb, Preserved p, Ice.Current current)447     checkPBSUnknown2WithGraph_async(AMD_TestIntf_checkPBSUnknown2WithGraph cb, Preserved p, Ice.Current current)
448     {
449         if(current.encoding.equals(Ice.Util.Encoding_1_0))
450         {
451             test(!(p instanceof PSUnknown2));
452             test(p.pi == 5);
453             test(p.ps.equals("preserved"));
454         }
455         else
456         {
457             PSUnknown2 pu = (PSUnknown2)p;
458             test(pu.pi == 5);
459             test(pu.ps.equals("preserved"));
460             test(pu.pb == pu);
461             pu.pb = null; // Break the cycle.
462         }
463         cb.ice_response();
464     }
465 
466     @Override
467     public void
exchangePNode_async(AMD_TestIntf_exchangePNode cb, PNode pn, Ice.Current current)468     exchangePNode_async(AMD_TestIntf_exchangePNode cb, PNode pn, Ice.Current current)
469     {
470         cb.ice_response(pn);
471     }
472 
473     @Override
474     public void
throwBaseAsBase_async(AMD_TestIntf_throwBaseAsBase cb, Ice.Current current)475     throwBaseAsBase_async(AMD_TestIntf_throwBaseAsBase cb, Ice.Current current)
476         throws BaseException
477     {
478         BaseException be = new BaseException();
479         be.sbe = "sbe";
480         be.pb = new B();
481         be.pb.sb = "sb";
482         be.pb.pb = be.pb;
483         cb.ice_exception(be);
484     }
485 
486     @Override
487     public void
throwDerivedAsBase_async(AMD_TestIntf_throwDerivedAsBase cb, Ice.Current current)488     throwDerivedAsBase_async(AMD_TestIntf_throwDerivedAsBase cb, Ice.Current current)
489         throws BaseException
490     {
491         DerivedException de = new DerivedException();
492         de.sbe = "sbe";
493         de.pb = new B();
494         de.pb.sb = "sb1";
495         de.pb.pb = de.pb;
496         de.sde = "sde1";
497         de.pd1 = new D1();
498         de.pd1.sb = "sb2";
499         de.pd1.pb = de.pd1;
500         de.pd1.sd1 = "sd2";
501         de.pd1.pd1 = de.pd1;
502         cb.ice_exception(de);
503     }
504 
505     @Override
506     public void
throwDerivedAsDerived_async(AMD_TestIntf_throwDerivedAsDerived cb, Ice.Current current)507     throwDerivedAsDerived_async(AMD_TestIntf_throwDerivedAsDerived cb, Ice.Current current)
508         throws DerivedException
509     {
510         DerivedException de = new DerivedException();
511         de.sbe = "sbe";
512         de.pb = new B();
513         de.pb.sb = "sb1";
514         de.pb.pb = de.pb;
515         de.sde = "sde1";
516         de.pd1 = new D1();
517         de.pd1.sb = "sb2";
518         de.pd1.pb = de.pd1;
519         de.pd1.sd1 = "sd2";
520         de.pd1.pd1 = de.pd1;
521         cb.ice_exception(de);
522     }
523 
524     @Override
525     public void
throwUnknownDerivedAsBase_async(AMD_TestIntf_throwUnknownDerivedAsBase cb, Ice.Current current)526     throwUnknownDerivedAsBase_async(AMD_TestIntf_throwUnknownDerivedAsBase cb, Ice.Current current)
527         throws BaseException
528     {
529         D2 d2 = new D2();
530         d2.sb = "sb d2";
531         d2.pb = d2;
532         d2.sd2 = "sd2 d2";
533         d2.pd2 = d2;
534 
535         UnknownDerivedException ude = new UnknownDerivedException();
536         ude.sbe = "sbe";
537         ude.pb = d2;
538         ude.sude = "sude";
539         ude.pd2 = d2;
540         cb.ice_exception(ude);
541     }
542 
543     @Override
544     public void
throwPreservedException_async(AMD_TestIntf_throwPreservedException cb, Ice.Current current)545     throwPreservedException_async(AMD_TestIntf_throwPreservedException cb, Ice.Current current)
546     {
547         PSUnknownException ue = new PSUnknownException();
548         ue.p = new PSUnknown2();
549         ue.p.pi = 5;
550         ue.p.ps = "preserved";
551         ue.p.pb = ue.p;
552         cb.ice_exception(ue);
553         ue.p.pb = null; // Break the cycle.
554     }
555 
556     @Override
557     public void
useForward_async(AMD_TestIntf_useForward cb, Ice.Current current)558     useForward_async(AMD_TestIntf_useForward cb, Ice.Current current)
559     {
560         Forward f = new Forward();
561         f = new Forward();
562         f.h = new Hidden();
563         f.h.f = f;
564         cb.ice_response(f);
565     }
566 }
567