00023 {
00024
00025 try {
00026
00027 Class c = Class.forName("HxJava.CorbaLink.ObjectChoice."+tc.name()+"Choice");
00028 Class[] argsC = { TypeCode.class };
00029 java.lang.Object[] argsO = { tc };
00030 Constructor cons = c.getConstructor(argsC);
00031 java.lang.Object choice = cons.newInstance(argsO);
00032
00033 return (CorbaObjectChoice)choice;
00034 }catch(Exception e) {
00035
00036 }
00037
00038 if(tc.kind()==TCKind.tk_void) return new VoidChoice(tc);
00039 else if(tc.kind()==TCKind.tk_long) return new LongChoice(tc);
00040 else if(tc.kind()==TCKind.tk_double) return new DoubleChoice(tc);
00041 else if(tc.kind()==TCKind.tk_boolean) return new BooleanChoice(tc);
00042 else if(tc.kind()==TCKind.tk_octet) return new OctetChoice(tc);
00043 else if(tc.kind()==TCKind.tk_string) return new StringChoice(tc);
00044
00045 else if(tc.kind()==TCKind.tk_alias) return new AliasChoice(tc);
00046
00047 else if(tc.kind()==TCKind.tk_objref) return new InterfaceChoice(tc);
00048 else if(tc.kind()==TCKind.tk_struct) return new StructChoice(tc);
00049 else if(tc.kind()==TCKind.tk_sequence) return new SequenceChoice(tc);
00050 else if(tc.kind()==TCKind.tk_enum) return new EnumChoice(tc);
00051
00052 OutputStreamArea.println("Type "+tc.kind().value()+" not supported");
00053 return null;
00054 }