xref: /AOO41X/main/testtools/com/sun/star/comp/bridge/TestComponent.java (revision 5c44d1b36a617948eb37f3a4224ecb71d4faa9a5)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 package com.sun.star.comp.bridge;
25 
26 import com.sun.star.comp.loader.FactoryHelper;
27 
28 import com.sun.star.lang.XServiceInfo;
29 import com.sun.star.lang.XTypeProvider;
30 
31 import com.sun.star.test.performance.ComplexTypes;
32 import com.sun.star.test.performance.XPerformanceTest;
33 
34 import test.testtools.bridgetest.BadConstructorArguments;
35 import test.testtools.bridgetest.Constructors;
36 import test.testtools.bridgetest.Constructors2;
37 import test.testtools.bridgetest.TestDataElements;
38 import test.testtools.bridgetest.TestElement;
39 import test.testtools.bridgetest.TestEnum;
40 import test.testtools.bridgetest.TestPolyStruct;
41 import test.testtools.bridgetest.TestPolyStruct2;
42 import test.testtools.bridgetest.TestStruct;
43 import test.testtools.bridgetest.SmallStruct;
44 import test.testtools.bridgetest.MediumStruct;
45 import test.testtools.bridgetest.BigStruct;
46 import test.testtools.bridgetest.AllFloats;
47 import test.testtools.bridgetest.XBridgeTest;
48 import test.testtools.bridgetest.XBridgeTest2;
49 import test.testtools.bridgetest.XCurrentContextChecker;
50 import test.testtools.bridgetest.XMulti;
51 import test.testtools.bridgetest.XRecursiveCall;
52 
53 
54 import com.sun.star.lang.IllegalArgumentException;
55 import com.sun.star.lang.XMultiServiceFactory;
56 import com.sun.star.lang.XSingleServiceFactory;
57 
58 import com.sun.star.registry.XRegistryKey;
59 
60 import com.sun.star.uno.Any;
61 import com.sun.star.uno.Type;
62 import com.sun.star.uno.XComponentContext;
63 import com.sun.star.uno.XInterface;
64 
65 public class TestComponent {
66     static public final boolean DEBUG = false;
67 
68     static public class _PerformancTestObject implements XPerformanceTest, XServiceInfo, XTypeProvider {
69         static private final String __serviceName = "com.sun.star.comp.benchmark.JavaTestObject";
70 
71         private boolean  _bool;
72         private char     _char;
73         private byte     _byte;
74         private short    _short;
75         private int      _long;
76         private int      _ulong;
77         private long     _hyper;
78         private float    _float;
79         private double   _double;
80         private String   _string = "";
81         private Object   _xInterface;
82         private Object   _any;
83         private Object   _interface_sequence[] = new Object[0];
84         private ComplexTypes _complexTypes = new ComplexTypes();
85 
86         // Attributes
getLong_attr()87         public int getLong_attr() throws com.sun.star.uno.RuntimeException {
88             return _long;
89         }
90 
setLong_attr( int _long_attr )91         public void setLong_attr( int _long_attr ) throws com.sun.star.uno.RuntimeException {
92             _long = _long_attr;
93         }
94 
getHyper_attr()95         public long getHyper_attr() throws com.sun.star.uno.RuntimeException {
96             return _hyper;
97         }
98 
setHyper_attr( long _hyper_attr )99         public void setHyper_attr( long _hyper_attr ) throws com.sun.star.uno.RuntimeException {
100             _hyper = _hyper_attr;
101         }
102 
getFloat_attr()103         public float getFloat_attr() throws com.sun.star.uno.RuntimeException {
104             return _float;
105         }
106 
setFloat_attr( float _float_attr )107         public void setFloat_attr( float _float_attr ) throws com.sun.star.uno.RuntimeException {
108             _float = _float;
109         }
110 
getDouble_attr()111         public double getDouble_attr() throws com.sun.star.uno.RuntimeException {
112             return _double;
113         }
114 
setDouble_attr( double _double_attr )115         public void setDouble_attr( double _double_attr ) throws com.sun.star.uno.RuntimeException {
116             _double = _double_attr;
117         }
118 
getString_attr()119         public String getString_attr() throws com.sun.star.uno.RuntimeException {
120             return _string;
121         }
122 
setString_attr( String _string_attr )123         public void setString_attr( String _string_attr ) throws com.sun.star.uno.RuntimeException {
124             _string = _string_attr;
125         }
126 
getInterface_attr()127         public Object getInterface_attr() throws com.sun.star.uno.RuntimeException {
128             return _xInterface;
129         }
130 
setInterface_attr( java.lang.Object _interface_attr )131         public void setInterface_attr( java.lang.Object _interface_attr ) throws com.sun.star.uno.RuntimeException {
132             _xInterface = _interface_attr;
133         }
134 
getAny_attr()135         public Object getAny_attr() throws com.sun.star.uno.RuntimeException {
136             return _any;
137         }
138 
setAny_attr(Object _any_attr )139         public void setAny_attr(Object _any_attr ) throws com.sun.star.uno.RuntimeException {
140             _any = _any_attr;
141         }
142 
getSequence_attr()143         public Object[] getSequence_attr() throws com.sun.star.uno.RuntimeException {
144             return _interface_sequence;
145         }
146 
setSequence_attr(Object[] _sequence_attr )147         public void setSequence_attr(Object[] _sequence_attr ) throws com.sun.star.uno.RuntimeException {
148             _interface_sequence = _sequence_attr;
149         }
150 
getStruct_attr()151         public ComplexTypes getStruct_attr() throws com.sun.star.uno.RuntimeException {
152             return _complexTypes;
153         }
154 
setStruct_attr( ComplexTypes _struct_attr )155         public void setStruct_attr( ComplexTypes _struct_attr ) throws com.sun.star.uno.RuntimeException {
156             _complexTypes = _struct_attr;
157         }
158 
159 
160         // Methods
async()161         public void async() throws com.sun.star.uno.RuntimeException {
162         }
163 
sync( )164         public void sync(  ) throws com.sun.star.uno.RuntimeException {
165         }
166 
complex_in( ComplexTypes aVal )167         public ComplexTypes complex_in( /*IN*/ComplexTypes aVal ) throws com.sun.star.uno.RuntimeException {
168             return aVal;
169         }
170 
complex_inout( ComplexTypes[] aVal )171         public ComplexTypes complex_inout( /*INOUT*/ComplexTypes[] aVal ) throws com.sun.star.uno.RuntimeException {
172             return aVal[0];
173         }
174 
complex_oneway( ComplexTypes aVal )175         public void complex_oneway( /*IN*/ComplexTypes aVal ) throws com.sun.star.uno.RuntimeException {
176         }
177 
complex_noreturn( ComplexTypes aVal )178         public void complex_noreturn( /*IN*/ComplexTypes aVal ) throws com.sun.star.uno.RuntimeException {
179         }
180 
createObject( )181         public XPerformanceTest createObject(  ) throws com.sun.star.uno.RuntimeException {
182             return new _PerformancTestObject();
183         }
184 
getLong()185         public int getLong() throws com.sun.star.uno.RuntimeException {
186             return _long;
187         }
188 
setLong( int n)189         public void setLong(/*IN*/int n) throws com.sun.star.uno.RuntimeException {
190             _long = n;
191         }
192 
getHyper()193         public long getHyper() throws com.sun.star.uno.RuntimeException {
194             return _hyper;
195         }
196 
setHyper( long n)197         public void setHyper(/*IN*/long n) throws com.sun.star.uno.RuntimeException {
198             _hyper = n;
199         }
200 
getFloat()201         public float getFloat() throws com.sun.star.uno.RuntimeException {
202             return _float;
203         }
204 
setFloat( float f )205         public void setFloat( /*IN*/float f ) throws com.sun.star.uno.RuntimeException {
206             _float = f;
207         }
208 
getDouble( )209         public double getDouble(  ) throws com.sun.star.uno.RuntimeException {
210             return _double;
211         }
212 
setDouble( double f )213         public void setDouble( /*IN*/double f ) throws com.sun.star.uno.RuntimeException {
214             _double = f;
215         }
216 
getString( )217         public String getString(  ) throws com.sun.star.uno.RuntimeException {
218             return _string;
219         }
220 
setString( String s )221         public void setString( /*IN*/String s ) throws com.sun.star.uno.RuntimeException {
222             _string = s;
223         }
224 
getInterface( )225         public Object getInterface(  ) throws com.sun.star.uno.RuntimeException {
226             return _xInterface;
227         }
228 
setInterface( Object x )229         public void setInterface( /*IN*/Object x ) throws com.sun.star.uno.RuntimeException {
230             _xInterface = x;
231         }
232 
getAny( )233         public Object getAny(  ) throws com.sun.star.uno.RuntimeException {
234             return _any;
235         }
236 
setAny( java.lang.Object a )237         public void setAny( /*IN*/java.lang.Object a ) throws com.sun.star.uno.RuntimeException {
238             _any = a;
239         }
240 
getSequence( )241         public Object[] getSequence(  ) throws com.sun.star.uno.RuntimeException {
242             return _interface_sequence;
243         }
244 
setSequence( Object[] seq )245         public void setSequence( /*IN*/Object[] seq ) throws com.sun.star.uno.RuntimeException {
246             if(DEBUG) System.err.println("#### " + getClass().getName() + ".setSequence:" + seq);
247 
248             _interface_sequence = seq;
249         }
250 
getStruct( )251         public ComplexTypes getStruct(  ) throws com.sun.star.uno.RuntimeException {
252             return _complexTypes;
253         }
254 
setStruct( ComplexTypes c )255         public void setStruct( /*IN*/ComplexTypes c ) throws com.sun.star.uno.RuntimeException {
256             _complexTypes = c;
257         }
258 
raiseRuntimeException( )259         public void raiseRuntimeException(  ) throws com.sun.star.uno.RuntimeException {
260             throw new com.sun.star.uno.RuntimeException();
261         }
262 
263         // XServiceInfo
getImplementationName()264         public String getImplementationName() throws com.sun.star.uno.RuntimeException {
265             return __serviceName;
266         }
267 
supportsService(String rServiceName)268         public boolean supportsService(String rServiceName) throws com.sun.star.uno.RuntimeException {
269             String rSNL[] = getSupportedServiceNames();
270 
271             for(int nPos = rSNL.length; (nPos--) != 0;) {
272                 if (rSNL[nPos].equals(rServiceName))
273                     return true;
274             }
275 
276             return false;
277         }
278 
getSupportedServiceNames()279         public String [] getSupportedServiceNames() throws com.sun.star.uno.RuntimeException {
280             return new String[]{__serviceName};
281         }
282 
283         // XTypeProvider
getTypes()284         public Type[] getTypes() throws com.sun.star.uno.RuntimeException {
285             try {
286                 return new Type[]{new Type(XPerformanceTest.class), new Type(XServiceInfo.class), new Type(XTypeProvider.class)};
287             }
288             catch(Exception exception) {
289                 throw new com.sun.star.uno.RuntimeException(exception.getMessage());
290             }
291         }
292 
getImplementationId()293         public byte[] getImplementationId() throws com.sun.star.uno.RuntimeException {
294             return toString().getBytes();
295         }
296     }
297 
298     static public class _TestObject implements XBridgeTest2, XRecursiveCall, XServiceInfo, XTypeProvider {
299         static private final String __serviceName = "com.sun.star.test.bridge.JavaTestObject";
300 
301         private boolean  _bool;
302         private char     _char;
303         private byte     _byte;
304         private short    _short;
305         private short    _ushort;
306         private int      _long;
307         private int      _ulong;
308         private long     _hyper;
309         private long     _uhyper;
310         private float    _float;
311         private double   _double;
312         private String   _string;
313         private Object   _xInterface;
314         private Object   _any;
315         private TestEnum _testEnum = TestEnum.TEST;
316         private TestElement _testElements[] = new TestElement[0];
317         private TestDataElements _testDataElements = new TestDataElements();
318 
319         private int     _nLastCallId;
320         private boolean _bFirstCall;
321         private boolean _bSequenceOfCallTestPassed;
322 
323         private boolean[] arBool;
324         private char[] arChar;
325         private byte[] arByte;
326         private short[] arShort;
327         private short[] arUShort;
328         private int[] arLong;
329         private int[] arULong;
330         private long[] arHyper;
331         private long[] arUHyper;
332         private float[] arFloat;
333         private double[] arDouble;
334         private String[] arString;
335         private Object[] arObject;
336         private Object[] arAny;
337         private TestEnum[] arEnum;
338         private int[][] arLong2;
339         private int[][][] arLong3;
_TestObject(XMultiServiceFactory xMultiServiceFactory)340         public _TestObject(XMultiServiceFactory xMultiServiceFactory) {
341             if(DEBUG) System.err.println("##### " + getClass().getName() + ".<init> " + xMultiServiceFactory);
342 
343             _nLastCallId = 0;
344             _bFirstCall = true;
345             _bSequenceOfCallTestPassed = true;
346         }
347 
348 
setValues(boolean bBool, char cChar, byte nByte, short nShort, short nUShort, int nLong, int nULong, long nHyper, long nUHyper, float fFloat, double fDouble, TestEnum testEnum, String string, Object xInterface, Object any, TestElement testElements[], TestDataElements testDataElements)349         public void setValues(boolean          bBool,
350                               char             cChar,
351                               byte             nByte,
352                               short            nShort,
353                               short            nUShort,
354                               int              nLong,
355                               int              nULong,
356                               long             nHyper,
357                               long             nUHyper,
358                               float            fFloat,
359                               double           fDouble,
360                               TestEnum         testEnum,
361                               String           string,
362                               Object           xInterface,
363                               Object           any,
364                               TestElement      testElements[],
365                               TestDataElements testDataElements) throws com.sun.star.uno.RuntimeException
366         {
367             if(DEBUG) System.err.println("##### " + getClass().getName() + ".setValues:" + any);
368 
369             _bool             = bBool;
370             _char             = cChar;
371             _byte             = nByte;
372             _short            = nShort;
373             _ushort           = nUShort;
374             _long             = nLong;
375             _ulong            = nULong;
376             _hyper            = nHyper;
377             _uhyper           = nUHyper;
378             _float            = fFloat;
379             _double           = fDouble;
380             _testEnum         = testEnum;
381             _string           = string;
382             _xInterface       = xInterface;
383             _any              = any;
384             _testElements     = testElements;
385             _testDataElements = testDataElements;
386         }
387 
388 
389 
setValues2( boolean[] io_bool, char[] io_char, byte[] io_byte, short[] io_short, short[] io_ushort, int[] io_long, int[] io_ulong, long[] io_hyper, long[] io_uhyper, float[] io_float, double[] io_double, TestEnum[] io_testEnum, String[] io_string, Object[] io_xInterface, Object[] io_any, TestElement[][] io_testElements, TestDataElements[] io_testDataElements)390         public TestDataElements setValues2(/*INOUT*/boolean[]          io_bool,
391                                            /*INOUT*/char[]             io_char,
392                                            /*INOUT*/byte[]             io_byte,
393                                            /*INOUT*/short[]            io_short,
394                                            /*INOUT*/short[]            io_ushort,
395                                            /*INOUT*/int[]              io_long,
396                                            /*INOUT*/int[]              io_ulong,
397                                            /*INOUT*/long[]             io_hyper,
398                                            /*INOUT*/long[]             io_uhyper,
399                                            /*INOUT*/float[]            io_float,
400                                            /*INOUT*/double[]           io_double,
401                                            /*INOUT*/TestEnum[]         io_testEnum,
402                                            /*INOUT*/String[]           io_string,
403                                            /*INOUT*/Object[]           io_xInterface,
404                                            /*INOUT*/Object[]           io_any,
405                                            /*INOUT*/TestElement[][]    io_testElements,
406                                            /*INOUT*/TestDataElements[] io_testDataElements) throws com.sun.star.uno.RuntimeException
407         {
408             if(DEBUG) System.err.println("##### " + getClass().getName() + ".setValues2:" + io_any[0]);
409 
410             _bool             = io_bool[0];
411             _char             = io_char[0];
412             _byte             = io_byte[0];
413             _short            = io_short[0];
414             _ushort           = io_ushort[0];
415             _long             = io_long[0];
416             _ulong            = io_ulong[0];
417             _hyper            = io_hyper[0];
418             _uhyper           = io_uhyper[0];
419             _float            = io_float[0];
420             _double           = io_double[0];
421             _testEnum         = io_testEnum[0];
422             _string           = io_string[0];
423             _xInterface       = io_xInterface[0];
424             _any              = io_any[0];
425             _testElements     = io_testElements[0];
426             _testDataElements = io_testDataElements[0];
427 
428             io_testElements[ 0 ] =
429                 new TestElement [] { io_testElements[ 0 ][ 1 ], io_testElements[ 0 ][ 0 ] };
430 
431             return _testDataElements;
432         }
433 
getValues( boolean[] o_bool, char[] o_char, byte[] o_byte, short[] o_short, short[] o_ushort, int[] o_long, int[] o_ulong, long[] o_hyper, long[] o_uhyper, float[] o_float, double[] o_double, TestEnum[] o_testEnum, String[] o_string, Object[] o_xInterface, Object[] o_any, TestElement[][] o_testElements, TestDataElements[] o_testDataElements)434         public TestDataElements getValues(/*OUT*/boolean[]          o_bool,
435                                           /*OUT*/char[]             o_char,
436                                           /*OUT*/byte[]             o_byte,
437                                           /*OUT*/short[]            o_short,
438                                           /*OUT*/short[]            o_ushort,
439                                           /*OUT*/int[]              o_long,
440                                           /*OUT*/int[]              o_ulong,
441                                           /*OUT*/long[]             o_hyper,
442                                           /*OUT*/long[]             o_uhyper,
443                                           /*OUT*/float[]            o_float,
444                                           /*OUT*/double[]           o_double,
445                                           /*OUT*/TestEnum[]         o_testEnum,
446                                           /*OUT*/String[]           o_string,
447                                           /*OUT*/Object[]           o_xInterface,
448                                           /*OUT*/Object[]           o_any,
449                                           /*OUT*/TestElement[][]    o_testElements,
450                                           /*OUT*/TestDataElements[] o_testDataElements) throws com.sun.star.uno.RuntimeException
451         {
452             if(DEBUG) System.err.println("##### " + getClass().getName() + ".getValues:" + _any);
453 
454             o_bool[0]             = _bool;
455             o_char[0]             = _char;
456             o_byte[0]             = _byte;
457             o_short[0]            = _short;
458             o_ushort[0]           = _ushort;
459             o_long[0]             = _long;
460             o_ulong[0]            = _ulong;
461             o_hyper[0]            = _hyper;
462             o_uhyper[0]           = _uhyper;
463             o_float[0]            = _float;
464             o_double[0]           = _double;
465             o_testEnum[0]         = _testEnum;
466             o_string[0]           = _string;
467             o_xInterface[0]       = _xInterface;
468             o_any[0]              = _any;
469             o_testElements[0]     = _testElements;
470             o_testDataElements[0] = _testDataElements;
471 
472             return _testDataElements;
473         }
474 
echoSmallStruct( SmallStruct i_Struct)475         public SmallStruct echoSmallStruct( SmallStruct i_Struct) throws com.sun.star.uno.RuntimeException {
476             return i_Struct;
477         }
478 
echoMediumStruct( MediumStruct i_Struct)479         public MediumStruct echoMediumStruct( MediumStruct i_Struct) throws com.sun.star.uno.RuntimeException {
480             return i_Struct;
481         }
482 
echoBigStruct( BigStruct i_Struct)483         public BigStruct echoBigStruct( BigStruct i_Struct) throws com.sun.star.uno.RuntimeException {
484             return i_Struct;
485         }
486 
echoAllFloats( AllFloats i_Struct)487         public AllFloats echoAllFloats( AllFloats i_Struct) throws com.sun.star.uno.RuntimeException {
488             return i_Struct;
489         }
490 
testPPCAlignment( long l1, long l2, int i1, long l3, int i2 )491         public int testPPCAlignment( long l1, long l2, int i1, long l3, int i2 ) throws com.sun.star.uno.RuntimeException {
492             return i2;
493         }
494 
495         // Attributes
getBool()496         public boolean getBool() throws com.sun.star.uno.RuntimeException {
497             return _bool;
498         }
499 
setBool(boolean bool)500         public void setBool(boolean bool) throws com.sun.star.uno.RuntimeException {
501             _bool = bool;
502         }
503 
getByte()504         public byte getByte() throws com.sun.star.uno.RuntimeException {
505             return _byte;
506         }
507 
setByte(byte zbyte)508         public void setByte(byte zbyte) throws com.sun.star.uno.RuntimeException {
509             _byte = zbyte;
510         }
511 
getChar()512         public char getChar() throws com.sun.star.uno.RuntimeException {
513             return _char;
514         }
515 
setChar(char zchar)516         public void setChar(char zchar) throws com.sun.star.uno.RuntimeException {
517             _char = zchar;
518         }
519 
getShort()520         public short getShort() throws com.sun.star.uno.RuntimeException {
521             return _short;
522         }
523 
setShort(short zshort)524         public void setShort(short zshort) throws com.sun.star.uno.RuntimeException {
525             _short = zshort;
526         }
527 
getUShort()528         public short getUShort() throws com.sun.star.uno.RuntimeException {
529             return _ushort;
530         }
531 
setUShort(short ushort)532         public void setUShort(short ushort) throws com.sun.star.uno.RuntimeException {
533             _ushort = ushort;
534         }
535 
getLong()536         public int getLong() throws com.sun.star.uno.RuntimeException {
537             return _long;
538         }
539 
setLong(int zint)540         public void setLong(int zint) throws com.sun.star.uno.RuntimeException {
541             _long = zint;
542         }
543 
getULong()544         public int getULong() throws com.sun.star.uno.RuntimeException {
545             return _ulong;
546         }
547 
setULong(int uint)548         public void setULong(int uint) throws com.sun.star.uno.RuntimeException {
549             _ulong = uint;
550         }
551 
getHyper()552         public long getHyper() throws com.sun.star.uno.RuntimeException {
553             return _hyper;
554         }
555 
setHyper(long hyper)556         public void setHyper(long hyper) throws com.sun.star.uno.RuntimeException {
557             _hyper = hyper;
558         }
559 
getUHyper()560         public long getUHyper() throws com.sun.star.uno.RuntimeException {
561             return _uhyper;
562         }
563 
setUHyper(long uhyper)564         public void setUHyper(long uhyper) throws com.sun.star.uno.RuntimeException {
565             _uhyper = uhyper;
566         }
567 
getFloat()568         public float getFloat() throws com.sun.star.uno.RuntimeException {
569             return _float;
570         }
571 
setFloat(float zfloat)572         public void setFloat(float zfloat) throws com.sun.star.uno.RuntimeException {
573             _float = zfloat;
574         }
575 
getDouble()576         public double getDouble() throws com.sun.star.uno.RuntimeException {
577             return _double;
578         }
579 
setDouble(double zdouble)580         public void setDouble(double zdouble) throws com.sun.star.uno.RuntimeException {
581             _double = zdouble;
582         }
583 
getEnum()584         public TestEnum getEnum() throws com.sun.star.uno.RuntimeException {
585             return _testEnum;
586         }
587 
setEnum(TestEnum testEnum)588         public void setEnum(TestEnum testEnum) throws com.sun.star.uno.RuntimeException {
589             _testEnum = testEnum;
590         }
591 
getString()592         public String getString() throws com.sun.star.uno.RuntimeException {
593             return _string;
594         }
595 
setString(String string)596         public void setString(String string) throws com.sun.star.uno.RuntimeException {
597             _string = string;
598         }
599 
getInterface()600         public Object getInterface() throws com.sun.star.uno.RuntimeException {
601             return _xInterface;
602         }
603 
setInterface(Object zinterface)604         public void setInterface(Object zinterface) throws com.sun.star.uno.RuntimeException {
605             _xInterface = zinterface;
606         }
607 
getAny()608         public Object getAny() throws com.sun.star.uno.RuntimeException {
609             if(DEBUG) System.err.println("##### " + getClass().getName() + ".setAny:" + _any);
610 
611             return _any;
612         }
613 
setAny(Object any)614         public void setAny(Object any) throws com.sun.star.uno.RuntimeException {
615             if(DEBUG) System.err.println("##### " + getClass().getName() + ".setAny:" + any);
616 
617             _any = any;
618         }
619 
getSequence()620         public TestElement[] getSequence() throws com.sun.star.uno.RuntimeException {
621             return _testElements;
622         }
623 
setSequence(TestElement testElements[])624         public void setSequence(TestElement testElements[]) throws com.sun.star.uno.RuntimeException {
625             _testElements = testElements;
626         }
627 
getStruct()628         public TestDataElements getStruct() throws com.sun.star.uno.RuntimeException {
629             return _testDataElements;
630         }
631 
setStruct(TestDataElements testDataElements)632         public void setStruct(TestDataElements testDataElements) throws com.sun.star.uno.RuntimeException {
633             _testDataElements = testDataElements;
634         }
635 
getRaiseAttr1()636         public int getRaiseAttr1() {
637             throw new com.sun.star.uno.RuntimeException();
638         }
639 
setRaiseAttr1(int n)640         public void setRaiseAttr1(int n) throws IllegalArgumentException {
641             throw new IllegalArgumentException();
642         }
643 
getRaiseAttr2()644         public int getRaiseAttr2() throws IllegalArgumentException {
645             throw new IllegalArgumentException();
646         }
647 
transportPolyBoolean(TestPolyStruct arg)648         public TestPolyStruct transportPolyBoolean(TestPolyStruct arg) {
649             Boolean dummy = (Boolean) arg.member;
650             return arg;
651         }
652 
transportPolyHyper(TestPolyStruct[] arg)653         public void transportPolyHyper(TestPolyStruct[] arg) {
654             Long dummy = (Long) arg[0].member;
655         }
656 
transportPolySequence( TestPolyStruct arg1, TestPolyStruct[] arg2)657         public void transportPolySequence(
658             TestPolyStruct arg1, TestPolyStruct[] arg2)
659         {
660             Object[] dummy = (Object[]) arg1.member;
661             arg2[0] = arg1;
662         }
663 
getNullPolyLong()664         public TestPolyStruct getNullPolyLong() {
665             return new TestPolyStruct();
666         }
667 
getNullPolyString()668         public TestPolyStruct getNullPolyString() {
669             return new TestPolyStruct();
670         }
671 
getNullPolyType()672         public TestPolyStruct getNullPolyType() {
673             return new TestPolyStruct();
674         }
675 
getNullPolyAny()676         public TestPolyStruct getNullPolyAny() {
677             return new TestPolyStruct();
678         }
679 
getNullPolySequence()680         public TestPolyStruct getNullPolySequence() {
681             return new TestPolyStruct();
682         }
683 
getNullPolyEnum()684         public TestPolyStruct getNullPolyEnum() {
685             return new TestPolyStruct();
686         }
687 
getNullPolyBadEnum()688         public TestPolyStruct getNullPolyBadEnum() {
689             return new TestPolyStruct();
690         }
691 
getNullPolyStruct()692         public TestPolyStruct getNullPolyStruct() {
693             return new TestPolyStruct();
694         }
695 
getNullPolyInterface()696         public TestPolyStruct getNullPolyInterface() {
697             return new TestPolyStruct();
698         }
699 
transportAny(Object value)700         public Object transportAny(Object value) throws com.sun.star.uno.RuntimeException {
701             return value;
702         }
703 
call(int nCallId , int nWaitMUSEC)704         public void call(int nCallId , int nWaitMUSEC) throws com.sun.star.uno.RuntimeException {
705 //              TimeValue value = { nWaitMUSEC / 1000000 , nWaitMUSEC * 1000 };
706 //              osl_waitThread( &value );
707             try {
708                 Thread.sleep(nWaitMUSEC / 10000);
709             }
710             catch(InterruptedException interruptedException) {
711                 throw new com.sun.star.uno.RuntimeException(interruptedException.getMessage());
712             }
713 
714             if(_bFirstCall)
715                 _bFirstCall = false;
716 
717             else
718                 _bSequenceOfCallTestPassed = _bSequenceOfCallTestPassed && (nCallId > _nLastCallId);
719 
720             _nLastCallId = nCallId;
721         }
722 
callOneway( int nCallId , int nWaitMUSEC )723         public void callOneway( int nCallId , int nWaitMUSEC )  throws com.sun.star.uno.RuntimeException {
724 //              TimeValue value = { nWaitMUSEC / 1000000 , nWaitMUSEC * 1000 };
725 //              osl_waitThread( &value );
726             try {
727                 Thread.sleep(nWaitMUSEC / 10000);
728             }
729             catch(InterruptedException interruptedException) {
730                 throw new com.sun.star.uno.RuntimeException(interruptedException.getMessage());
731             }
732 
733             _bSequenceOfCallTestPassed = _bSequenceOfCallTestPassed && (nCallId > _nLastCallId);
734             _nLastCallId = nCallId;
735         }
736 
sequenceOfCallTestPassed()737         public boolean sequenceOfCallTestPassed()  throws com.sun.star.uno.RuntimeException {
738             return _bSequenceOfCallTestPassed;
739         }
740 
callRecursivly(XRecursiveCall xCall, int nToCall)741         public synchronized void callRecursivly(XRecursiveCall xCall,   int nToCall) throws com.sun.star.uno.RuntimeException {
742             if(nToCall != 0)
743             {
744                 nToCall --;
745                 xCall.callRecursivly(this , nToCall);
746             }
747         }
748 
startRecursiveCall(XRecursiveCall xCall, int nToCall)749         public synchronized void  startRecursiveCall(XRecursiveCall xCall, int nToCall) throws com.sun.star.uno.RuntimeException {
750             if(nToCall != 0)
751             {
752                 nToCall --;
753                 xCall.callRecursivly( this , nToCall );
754             }
755         }
756 
getMulti()757         public XMulti getMulti() {
758             return new XMulti() {
759                     public double getatt1() {
760                         return attribute1;
761                     }
762 
763                     public void setatt1(double value) {
764                         attribute1 = value;
765                     }
766 
767                     public int fn11(int arg) {
768                         return 11 * arg;
769                     }
770 
771                     public String fn12(String arg) {
772                         return "12" + arg;
773                     }
774 
775                     public int fn21(int arg) {
776                         return 21 * arg;
777                     }
778 
779                     public String fn22(String arg) {
780                         return "22" + arg;
781                     }
782 
783                     public double getatt3() {
784                         return attribute3;
785                     }
786 
787                     public void setatt3(double value) {
788                         attribute3 = value;
789                     }
790 
791                     public int fn31(int arg) {
792                         return 31 * arg;
793                     }
794 
795                     public String fn32(String arg) {
796                         return "32" + arg;
797                     }
798 
799                     public int fn33() {
800                         return 33;
801                     }
802 
803                     public int fn41(int arg) {
804                         return 41 * arg;
805                     }
806 
807                     public int fn61(int arg) {
808                         return 61 * arg;
809                     }
810 
811                     public String fn62(String arg) {
812                         return "62" + arg;
813                     }
814 
815                     public int fn71(int arg) {
816                         return 71 * arg;
817                     }
818 
819                     public String fn72(String arg) {
820                         return "72" + arg;
821                     }
822 
823                     public int fn73() {
824                         return 73;
825                     }
826 
827                     private double attribute1 = 0.0;
828                     private double attribute3 = 0.0;
829                 };
830         }
831 
832         private static final class CheckFailed extends Exception {
CheckFailed(String message)833             CheckFailed(String message) {
834                 super(message);
835             }
836         }
837 
checkEqual(int value, int argument)838         private static void checkEqual(int value, int argument)
839             throws CheckFailed
840         {
841             if (argument != value) {
842                 throw new CheckFailed(value + " != " + argument);
843             }
844         }
845 
checkEqual(double value, double argument)846         private static void checkEqual(double value, double argument)
847             throws CheckFailed
848         {
849             if (argument != value) {
850                 throw new CheckFailed(value + " != " + argument);
851             }
852         }
853 
checkEqual(String value, String argument)854         private static void checkEqual(String value, String argument)
855             throws CheckFailed
856         {
857             if (!argument.equals(value)) {
858                 throw new CheckFailed(value + " != " + argument);
859             }
860         }
861 
testMulti(XMulti multi)862         public String testMulti(XMulti multi) {
863             try {
864                 checkEqual(0.0, multi.getatt1());
865                 multi.setatt1(0.1);
866                 checkEqual(0.1, multi.getatt1());
867                 checkEqual(11 * 1, multi.fn11(1));
868                 checkEqual("12" + "abc", multi.fn12("abc"));
869                 checkEqual(21 * 2, multi.fn21(2));
870                 checkEqual("22" + "de", multi.fn22("de"));
871                 checkEqual(0.0, multi.getatt3());
872                 multi.setatt3(0.3);
873                 checkEqual(0.3, multi.getatt3());
874                 checkEqual(31 * 3, multi.fn31(3));
875                 checkEqual("32" + "f", multi.fn32("f"));
876                 checkEqual(33, multi.fn33());
877                 checkEqual(41 * 4, multi.fn41(4));
878                 checkEqual(61 * 6, multi.fn61(6));
879                 checkEqual("62" + "", multi.fn62(""));
880                 checkEqual(71 * 7, multi.fn71(7));
881                 checkEqual("72" + "g", multi.fn72("g"));
882                 checkEqual(73, multi.fn73());
883             } catch (CheckFailed f) {
884                 return f.getMessage();
885             }
886             return "";
887         }
888 
889         // XBridgeTest
raiseException(short nArgumentPos, String rMsg, Object xContext)890         public TestDataElements raiseException(short nArgumentPos, String rMsg, Object xContext)
891             throws com.sun.star.lang.IllegalArgumentException,
892                    com.sun.star.uno.RuntimeException
893         {
894             throw new com.sun.star.lang.IllegalArgumentException(rMsg, xContext, nArgumentPos);
895         }
896 
raiseRuntimeExceptionOneway(String rMsg, Object xContext)897         public void raiseRuntimeExceptionOneway(String rMsg, Object xContext) throws com.sun.star.uno.RuntimeException {
898             throw new com.sun.star.uno.RuntimeException(rMsg, xContext);
899         }
900 
dothrow( com.sun.star.uno.RuntimeException t )901         private void dothrow( com.sun.star.uno.RuntimeException t )
902             throws com.sun.star.uno.RuntimeException
903         {
904             throw t;
905         }
getRuntimeException()906         public int getRuntimeException()
907             throws com.sun.star.uno.RuntimeException
908         {
909             try
910             {
911                 dothrow( new com.sun.star.uno.RuntimeException(
912                              _string, _xInterface ) );
913                 return 0; // dummy
914             }
915             catch (com.sun.star.uno.RuntimeException t)
916             {
917                 throw t;
918             }
919         }
920 
setRuntimeException(int _runtimeexception)921         public void setRuntimeException(int _runtimeexception) throws com.sun.star.uno.RuntimeException {
922             throw new com.sun.star.uno.RuntimeException(_string, _xInterface);
923         }
924 
925 
926 
927         // XServiceInfo
getImplementationName()928         public String getImplementationName() throws com.sun.star.uno.RuntimeException {
929             return __serviceName;
930         }
931 
supportsService(String rServiceName)932         public boolean supportsService(String rServiceName) throws com.sun.star.uno.RuntimeException {
933             String rSNL[] = getSupportedServiceNames();
934 
935             for(int nPos = rSNL.length; (nPos--) != 0;) {
936                 if (rSNL[nPos].equals(rServiceName))
937                     return true;
938             }
939 
940             return false;
941         }
942 
getSupportedServiceNames()943         public String [] getSupportedServiceNames() throws com.sun.star.uno.RuntimeException {
944             return new String[]{__serviceName};
945         }
946 
947         // XTypeProvider
getTypes()948         public Type[] getTypes() throws com.sun.star.uno.RuntimeException {
949             try {
950                 return new Type[]{new Type(XBridgeTest.class), new Type(XRecursiveCall.class), new Type(XServiceInfo.class), new Type(XTypeProvider.class)};
951             }
952             catch(Exception exception) {
953                 throw new com.sun.star.uno.RuntimeException(exception.getMessage());
954             }
955         }
956 
getImplementationId()957         public byte[] getImplementationId() throws com.sun.star.uno.RuntimeException {
958             return toString().getBytes();
959         }
960 
961         //XBridgeTest2
setSequenceBool( boolean[] aSeq )962         public boolean[] setSequenceBool( /*IN*/boolean[] aSeq )
963         {
964             arBool = aSeq;
965             return aSeq;
966         }
setSequenceChar( char[] aSeq )967         public char[] setSequenceChar( /*IN*/char[] aSeq )
968         {
969             arChar = aSeq;
970             return aSeq;
971         }
setSequenceByte( byte[] aSeq )972         public byte[] setSequenceByte( /*IN*/byte[] aSeq )
973         {
974             arByte = aSeq;
975             return aSeq;
976         }
setSequenceShort( short[] aSeq )977         public short[] setSequenceShort( /*IN*/short[] aSeq )
978         {
979             arShort = aSeq;
980             return aSeq;
981         }
setSequenceUShort( short[] aSeq )982         public short[] setSequenceUShort( /*IN*/short[] aSeq )
983         {
984             arUShort = aSeq;
985             return aSeq;
986         }
setSequenceLong( int[] aSeq )987         public int[] setSequenceLong( /*IN*/int[] aSeq )
988         {
989             arLong = aSeq;
990             return aSeq;
991         }
setSequenceULong( int[] aSeq )992         public int[] setSequenceULong( /*IN*/int[] aSeq )
993         {
994             arULong = aSeq;
995             return aSeq;
996         }
setSequenceHyper( long[] aSeq )997         public long[] setSequenceHyper( /*IN*/long[] aSeq )
998         {
999             arHyper = aSeq;
1000             return aSeq;
1001         }
setSequenceUHyper( long[] aSeq )1002         public long[] setSequenceUHyper( /*IN*/long[] aSeq )
1003         {
1004             arUHyper = aSeq;
1005             return aSeq;
1006         }
setSequenceFloat( float[] aSeq )1007         public float[] setSequenceFloat( /*IN*/float[] aSeq )
1008         {
1009             arFloat = aSeq;
1010             return aSeq;
1011         }
setSequenceDouble( double[] aSeq )1012         public double[] setSequenceDouble( /*IN*/double[] aSeq )
1013         {
1014             arDouble = aSeq;
1015             return aSeq;
1016         }
setSequenceEnum( TestEnum[] aSeq )1017         public TestEnum[] setSequenceEnum( /*IN*/TestEnum[] aSeq )
1018         {
1019             arEnum = aSeq;
1020             return aSeq;
1021         }
setSequenceString( String[] aSeq )1022         public String[] setSequenceString( /*IN*/String[] aSeq )
1023         {
1024             arString = aSeq;
1025             return aSeq;
1026         }
setSequenceXInterface( java.lang.Object[] aSeq )1027         public java.lang.Object[] setSequenceXInterface( /*IN*/java.lang.Object[] aSeq )
1028         {
1029             arObject = aSeq;
1030             return aSeq;
1031         }
setSequenceAny( java.lang.Object[] aSeq )1032         public java.lang.Object[] setSequenceAny( /*IN*/java.lang.Object[] aSeq )
1033         {
1034             arAny = aSeq;
1035             return aSeq;
1036         }
setSequenceStruct( TestElement[] aSeq )1037         public TestElement[] setSequenceStruct( /*IN*/TestElement[] aSeq )
1038         {
1039             _testElements = aSeq;
1040             return aSeq;
1041         }
setDim2( int[][] aSeq )1042         public int[][] setDim2( /*IN*/int[][] aSeq )
1043         {
1044             arLong2 = aSeq;
1045             return aSeq;
1046         }
setDim3( int[][][] aSeq )1047         public int[][][] setDim3( /*IN*/int[][][] aSeq )
1048         {
1049             arLong3 = aSeq;
1050             return aSeq;
1051         }
setSequencesInOut( boolean[][] aSeqBoolean, char[][] aSeqChar, byte[][] aSeqByte, short[][] aSeqShort, short[][] aSeqUShort, int[][] aSeqLong, int[][] aSeqULong, long[][] aSeqHyper, long[][] aSeqUHyper, float[][] aSeqFloat, double[][] aSeqDouble, TestEnum[][] aSeqEnum, String[][] aSeqString, java.lang.Object[][] aSeqXInterface, java.lang.Object[][] aSeqAny, int[][][] aSeqDim2, int[][][][] aSeqDim3 )1052         public void setSequencesInOut( /*INOUT*/boolean[][] aSeqBoolean,
1053                                        /*INOUT*/char[][] aSeqChar, /*INOUT*/byte[][] aSeqByte,
1054                                        /*INOUT*/short[][] aSeqShort, /*INOUT*/short[][] aSeqUShort,
1055                                        /*INOUT*/int[][] aSeqLong, /*INOUT*/int[][] aSeqULong,
1056                                        /*INOUT*/long[][] aSeqHyper, /*INOUT*/long[][] aSeqUHyper,
1057                                        /*INOUT*/float[][] aSeqFloat, /*INOUT*/double[][] aSeqDouble,
1058                                        /*INOUT*/TestEnum[][] aSeqEnum, /*INOUT*/String[][] aSeqString,
1059                                        /*INOUT*/java.lang.Object[][] aSeqXInterface,
1060                                        /*INOUT*/java.lang.Object[][] aSeqAny,
1061                                        /*INOUT*/int[][][] aSeqDim2, /*INOUT*/int[][][][] aSeqDim3 )
1062         {
1063             arBool = aSeqBoolean[0];
1064             arChar = aSeqChar[0];
1065             arByte = aSeqByte[0];
1066             arShort = aSeqShort[0];
1067             arUShort = aSeqUShort[0];
1068             arLong = aSeqLong[0];
1069             arULong = aSeqULong[0];
1070             arFloat = aSeqFloat[0];
1071             arDouble = aSeqDouble[0];
1072             arEnum = aSeqEnum[0];
1073             arString = aSeqString[0];
1074             arObject = aSeqXInterface[0];
1075             arAny = aSeqAny[0];
1076             arLong2 = aSeqDim2[0];
1077             arLong3 = aSeqDim3[0];
1078         }
setSequencesOut( boolean[][] aSeqBoolean, char[][] aSeqChar, byte[][] aSeqByte, short[][] aSeqShort, short[][] aSeqUShort, int[][] aSeqLong, int[][] aSeqULong, long[][] aSeqHyper, long[][] aSeqUHyper, float[][] aSeqFloat, double[][] aSeqDouble, TestEnum[][] aSeqEnum, String[][] aSeqString, java.lang.Object[][] aSeqXInterface, java.lang.Object[][] aSeqAny, int[][][] aSeqDim2, int[][][][] aSeqDim3 )1079         public void setSequencesOut( /*OUT*/boolean[][] aSeqBoolean, /*OUT*/char[][] aSeqChar,
1080                                      /*OUT*/byte[][] aSeqByte, /*OUT*/short[][] aSeqShort,
1081                                      /*OUT*/short[][] aSeqUShort, /*OUT*/int[][] aSeqLong,
1082                                      /*OUT*/int[][] aSeqULong, /*OUT*/long[][] aSeqHyper,
1083                                      /*OUT*/long[][] aSeqUHyper, /*OUT*/float[][] aSeqFloat,
1084                                      /*OUT*/double[][] aSeqDouble, /*OUT*/TestEnum[][] aSeqEnum,
1085                                      /*OUT*/String[][] aSeqString,
1086                                      /*OUT*/java.lang.Object[][] aSeqXInterface,
1087                                      /*OUT*/java.lang.Object[][] aSeqAny, /*OUT*/int[][][] aSeqDim2,
1088                                      /*OUT*/int[][][][] aSeqDim3 )
1089         {
1090              aSeqBoolean[0] = arBool;
1091              aSeqChar[0] = arChar;
1092              aSeqByte[0] = arByte;
1093              aSeqShort[0] = arShort;
1094              aSeqUShort[0] = arUShort;
1095              aSeqLong[0] = arLong;
1096              aSeqULong[0] = arULong;
1097              aSeqHyper[0] = arHyper;
1098              aSeqUHyper[0] = arUHyper;
1099              aSeqFloat[0] = arFloat;
1100              aSeqDouble[0] = arDouble;
1101              aSeqEnum[0] = arEnum;
1102              aSeqString[0] = arString;
1103              aSeqXInterface[0] = arObject;
1104              aSeqAny[0] = arAny;
1105              aSeqDim2[0] = arLong2;
1106              aSeqDim3[0] = arLong3;
1107         }
1108 
testConstructorsService(XComponentContext context)1109         public void testConstructorsService(XComponentContext context)
1110             throws BadConstructorArguments
1111         {
1112             Constructors.create1(context,
1113                 true,
1114                 Byte.MIN_VALUE,
1115                 Short.MIN_VALUE,
1116                 (short) -1,
1117                 Integer.MIN_VALUE,
1118                 -1,
1119                 Long.MIN_VALUE,
1120                 -1L,
1121                 0.123f,
1122                 0.456,
1123                 'X',
1124                 "test",
1125                 Type.ANY,
1126                 new Any(Type.BOOLEAN, Boolean.TRUE),
1127                 new boolean[] { true },
1128                 new byte[] { Byte.MIN_VALUE },
1129                 new short[] { Short.MIN_VALUE },
1130                 new short[] { (short) -1 },
1131                 new int[] { Integer.MIN_VALUE },
1132                 new int[] { -1 },
1133                 new long[] { Long.MIN_VALUE },
1134                 new long[] { -1L },
1135                 new float[] { 0.123f },
1136                 new double[] { 0.456 },
1137                 new char[] { 'X' },
1138                 new String[] { "test" },
1139                 new Type[] { Type.ANY },
1140                 new Boolean[] { Boolean.TRUE },
1141                 new boolean[][] { new boolean[] { true } },
1142                 new Object[][] {
1143                     new Object[] { new Any(Type.BOOLEAN, Boolean.TRUE) } },
1144                 new TestEnum[] { TestEnum.TWO },
1145                 new TestStruct[] { new TestStruct(10) },
1146                 new TestPolyStruct[] { new TestPolyStruct(Boolean.TRUE) },
1147                 new TestPolyStruct[] {
1148                     new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE)) },
1149                 new Object[] { null },
1150                 TestEnum.TWO,
1151                 new TestStruct(10),
1152                 new TestPolyStruct(Boolean.TRUE),
1153                 new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE)),
1154                 null);
1155             Constructors.create2(context, new Object[] {
1156                 Boolean.TRUE,
1157                 new Byte(Byte.MIN_VALUE),
1158                 new Short(Short.MIN_VALUE),
1159                 new Any(Type.UNSIGNED_SHORT, new Short((short) -1)),
1160                 new Integer(Integer.MIN_VALUE),
1161                 new Any(Type.UNSIGNED_LONG, new Integer(-1)),
1162                 new Long(Long.MIN_VALUE),
1163                 new Any(Type.UNSIGNED_HYPER, new Long(-1L)),
1164                 new Float(0.123f),
1165                 new Double(0.456),
1166                 new Character('X'),
1167                 "test",
1168                 Type.ANY,
1169                 new Any(Type.BOOLEAN, Boolean.TRUE),
1170                 new boolean[] { true },
1171                 new byte[] { Byte.MIN_VALUE },
1172                 new short[] { Short.MIN_VALUE },
1173                 new Any(
1174                     new Type("[]unsigned short"), new short[] { (short) -1 }),
1175                 new int[] { Integer.MIN_VALUE },
1176                 new Any(new Type("[]unsigned long"), new int[] { -1 }),
1177                 new long[] { Long.MIN_VALUE },
1178                 new Any(new Type("[]unsigned hyper"), new long[] { -1L }),
1179                 new float[] { 0.123f },
1180                 new double[] { 0.456 },
1181                 new char[] { 'X' },
1182                 new String[] { "test" },
1183                 new Type[] { Type.ANY },
1184                 new Any(new Type("[]any"), new Boolean[] { Boolean.TRUE }),
1185                 new boolean[][] { new boolean[] { true } },
1186                 new Object[][] {
1187                     new Object[] { new Any(Type.BOOLEAN, Boolean.TRUE) } },
1188                 new TestEnum[] { TestEnum.TWO },
1189                 new TestStruct[] { new TestStruct(10) },
1190                 new Any(
1191                     new Type(
1192                         "[]test.testtools.bridgetest.TestPolyStruct<boolean>"),
1193                     new TestPolyStruct[] { new TestPolyStruct(Boolean.TRUE) }),
1194                 new Any(
1195                     new Type("[]test.testtools.bridgetest.TestPolyStruct<any>"),
1196                     new TestPolyStruct[] {
1197                         new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE))
1198                     }),
1199                 new XInterface[] { null },
1200                 TestEnum.TWO,
1201                 new TestStruct(10),
1202                 new Any(
1203                     new Type(
1204                         "test.testtools.bridgetest.TestPolyStruct<boolean>"),
1205                     new TestPolyStruct(Boolean.TRUE)),
1206                 new Any(
1207                     new Type("test.testtools.bridgetest.TestPolyStruct<any>"),
1208                     new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE))),
1209                 null });
1210             Constructors2.create1(
1211                 context,
1212                 new TestPolyStruct(Type.LONG),
1213                 new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE)),
1214                 new TestPolyStruct(new Boolean(true)),
1215                 new TestPolyStruct(new Byte(Byte.MIN_VALUE)),
1216                 new TestPolyStruct(new Short(Short.MIN_VALUE)),
1217                 new TestPolyStruct(new Integer(Integer.MIN_VALUE)),
1218                 new TestPolyStruct(new Long(Long.MIN_VALUE)),
1219                 new TestPolyStruct(new Character('X')),
1220                 new TestPolyStruct("test"),
1221                 new TestPolyStruct(new Float(0.123f)),
1222                 new TestPolyStruct(new Double(0.456)),
1223                 new TestPolyStruct(new com.sun.star.lib.uno.helper.ComponentBase()),
1224                 new TestPolyStruct(new com.sun.star.lib.uno.helper.ComponentBase()),
1225                 new TestPolyStruct(TestEnum.TWO),
1226                 new TestPolyStruct(new TestPolyStruct2(new Character('X'),
1227                     new Any(Type.BOOLEAN, Boolean.TRUE))),
1228                 new TestPolyStruct(new TestPolyStruct2(new TestPolyStruct2(
1229                     new Character('X'), new Any(Type.BOOLEAN, Boolean.TRUE)), "test")),
1230                 new TestPolyStruct2("test", new TestPolyStruct2(new Character('X'),
1231                     new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE)))),
1232                 new TestPolyStruct2( new TestPolyStruct2(new Character('X'),
1233                     new Any(Type.BOOLEAN, Boolean.TRUE)), new TestPolyStruct(new Character('X'))),
1234                 new TestPolyStruct(new Type[] { Type.LONG}),
1235                 new TestPolyStruct(new Any[] { new Any(Type.BOOLEAN, Boolean.TRUE) }),
1236                 new TestPolyStruct(new boolean[] {true}),
1237                 new TestPolyStruct(new byte[] {Byte.MIN_VALUE}),
1238                 new TestPolyStruct(new short[] {Short.MIN_VALUE}),
1239                 new TestPolyStruct(new int[] {Integer.MIN_VALUE}),
1240                 new TestPolyStruct(new long[] {Long.MIN_VALUE}),
1241                 new TestPolyStruct(new char[] {'X'}),
1242                 new TestPolyStruct(new String[] {"test"}),
1243                 new TestPolyStruct(new float[] {0.123f}),
1244                 new TestPolyStruct(new double[] {0.456d}),
1245                 new TestPolyStruct(new Object[] {new com.sun.star.lib.uno.helper.ComponentBase()}),
1246                 new TestPolyStruct(new com.sun.star.lang.XComponent[] {new com.sun.star.lib.uno.helper.ComponentBase()}),
1247                 new TestPolyStruct(new TestEnum[] {TestEnum.TWO}),
1248                 new TestPolyStruct(new TestPolyStruct2[] {new TestPolyStruct2(
1249                     new Character('X'), new Any[] {new Any(Type.BOOLEAN, Boolean.TRUE)})}),
1250                 new TestPolyStruct(new TestPolyStruct2[] {new TestPolyStruct2(
1251                     new TestPolyStruct(new Character('X')), new Any[] {new Any(Type.BOOLEAN, Boolean.TRUE)})}),
1252                 new TestPolyStruct(new int[][] { new int[] {Integer.MIN_VALUE} }),
1253                 new TestPolyStruct[]{ new TestPolyStruct(new Integer(Integer.MIN_VALUE))},
1254                 new TestPolyStruct[]{new TestPolyStruct(new TestPolyStruct2(
1255                     new Character('X'), new Any(Type.BOOLEAN, Boolean.TRUE)))},
1256                 new TestPolyStruct[]{new TestPolyStruct(new TestPolyStruct2(
1257                     new TestPolyStruct2(new Character('X'), new Any(Type.BOOLEAN, Boolean.TRUE)), "test"))},
1258                 new TestPolyStruct2[]{new TestPolyStruct2("test", new TestPolyStruct2(
1259                     new Character('X'), new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE))))},
1260                 new TestPolyStruct2[]{new TestPolyStruct2(new TestPolyStruct2(new Character('X'), new Any(
1261                     Type.BOOLEAN, Boolean.TRUE)),new TestPolyStruct(new Character('X')))},
1262                 new TestPolyStruct[][]{new TestPolyStruct[]{new TestPolyStruct(new Character('X'))}},
1263                 new TestPolyStruct[][]{new TestPolyStruct[]{
1264                     new TestPolyStruct(new TestPolyStruct2(new Character('X'), new Any(Type.BOOLEAN, Boolean.TRUE)))}},
1265                 new TestPolyStruct[][]{new TestPolyStruct[] {new TestPolyStruct(new TestPolyStruct2(
1266                     new TestPolyStruct2(new Character('X'),new Any(Type.BOOLEAN, Boolean.TRUE)), "test"))}},
1267                 new TestPolyStruct2[][]{new TestPolyStruct2[]{new TestPolyStruct2(
1268                     "test", new TestPolyStruct2(new Character('X'),new TestPolyStruct(new Any(Type.BOOLEAN, Boolean.TRUE))))}},
1269                 new TestPolyStruct2[][]{new TestPolyStruct2[]{new TestPolyStruct2(
1270                     new TestPolyStruct2(new Character('X'),new Any(Type.BOOLEAN, Boolean.TRUE)),
1271                         new TestPolyStruct(new Character('X')))}});
1272         }
1273 
getCurrentContextChecker()1274         public XCurrentContextChecker getCurrentContextChecker() {
1275             return new CurrentContextChecker();
1276         }
1277     }
1278 
1279     /**
1280      * Gives a factory for creating the service.
1281      * This method is called by the <code>JavaLoader</code>
1282      * <p>
1283      * @return  returns a <code>XSingleServiceFactory</code> for creating the component
1284      * @param   implName     the name of the implementation for which a service is desired
1285      * @param   multiFactory the service manager to be uses if needed
1286      * @param   regKey       the registryKey
1287      * @see                  com.sun.star.comp.loader.JavaLoader
1288      */
1289     public static XSingleServiceFactory __getServiceFactory(String implName,
1290                                                             XMultiServiceFactory multiFactory,
1291                                                             XRegistryKey regKey)
1292     {
1293         XSingleServiceFactory xSingleServiceFactory = null;
1294 
1295         if(implName.equals(_TestObject.class.getName()))
1296             xSingleServiceFactory = FactoryHelper.getServiceFactory(_TestObject.class,
1297                                                                     _TestObject.__serviceName,
1298                                                                     multiFactory,
1299                                                                     regKey);
1300 
1301         else if(implName.equals(_PerformancTestObject.class.getName()))
1302             xSingleServiceFactory = FactoryHelper.getServiceFactory(_PerformancTestObject.class,
1303                                                                     _PerformancTestObject.__serviceName,
1304                                                                     multiFactory,
1305                                                                     regKey);
1306 
1307         return xSingleServiceFactory;
1308     }
1309 }
1310