1 26 27 package org.objectweb.openccm.corba; 28 29 import org.omg.CORBA.TCKind ; 31 32 40 public abstract class TypeCodeUtils 41 { 42 48 51 static private org.omg.CORBA.TypeCode tc_void_ = null; 52 53 59 62 private 63 TypeCodeUtils() 64 { 65 } 66 67 73 79 84 public static org.omg.CORBA.TypeCode 85 getTC_void() 86 { 87 if(tc_void_ == null) 88 { 89 tc_void_ = TheORB.getORB().get_primitive_tc( 90 org.omg.CORBA.TCKind.tk_void); 91 } 92 return tc_void_; 93 } 94 95 102 public static org.omg.CORBA.TypeCode 103 getOrigType(org.omg.CORBA.TypeCode tc) 104 { 105 try 106 { 107 while(tc.kind() == org.omg.CORBA.TCKind.tk_alias) 108 { 109 tc = tc.content_type(); 110 } 111 return tc; 112 } 113 catch(org.omg.CORBA.TypeCodePackage.BadKind exc) 114 { 115 throw new UserExceptionWrapper(exc); 117 } 118 119 } 120 121 130 public static String 131 toStringValue(org.omg.CORBA.TypeCode tc) 132 { 133 TCKind tk = tc.kind(); 134 135 try { 136 if (tk == TCKind.tk_null) 137 return "null"; 138 else if (tk == TCKind.tk_void) 139 return "void"; 140 else if (tk == TCKind.tk_short) 141 return "short"; 142 else if (tk == TCKind.tk_ushort) 143 return "unsigned short"; 144 else if (tk == TCKind.tk_long) 145 return "long"; 146 else if (tk == TCKind.tk_ulong) 147 return "unsigned long"; 148 else if (tk == TCKind.tk_longlong) 149 return "long long"; 150 else if (tk == TCKind.tk_ulonglong) 151 return "unsigned long long"; 152 else if (tk == TCKind.tk_float) 153 return "float"; 154 else if (tk == TCKind.tk_double) 155 return "double"; 156 else if (tk == TCKind.tk_longdouble) 157 return "long double"; 158 else if (tk == TCKind.tk_boolean) 159 return "boolean"; 160 else if (tk == TCKind.tk_char) 161 return "char"; 162 else if (tk == TCKind.tk_wchar) 163 return "wchar"; 164 else if (tk == TCKind.tk_octet) 165 return "octet"; 166 else if (tk == TCKind.tk_any) 167 return "any"; 168 else if (tk == TCKind.tk_Principal) 169 return "::CORBA::Principal"; 170 else if (tk == TCKind.tk_TypeCode) 171 return "::CORBA::TypeCode"; 172 else if (tk == TCKind.tk_objref) 173 return "Object"; 174 175 else if ( (tk == TCKind.tk_struct) || 178 (tk == TCKind.tk_union) || 179 (tk == TCKind.tk_enum) || 180 (tk == TCKind.tk_except) || 181 (tk == TCKind.tk_alias) || 182 (tk == TCKind.tk_value_box) || 183 (tk == TCKind.tk_value) || 184 (tk == TCKind.tk_native) || 185 (tk == TCKind.tk_abstract_interface) ) 186 { 187 return tc.name(); 188 } 189 else if (tk == TCKind.tk_string) 190 { 191 int l = tc.length(); 192 if (l==0) 193 return "string"; 194 return "string<"+l+">"; 195 } 196 else if (tk == TCKind.tk_wstring) 197 { 198 int l = tc.length(); 199 if (l==0) 200 return "wstring"; 201 return "wstring<"+l+">"; 202 } 203 else if (tk == TCKind.tk_sequence) 204 { 205 int l = tc.length(); 206 String str = toStringValue(tc.content_type()); 207 if (l==0) 208 return "sequence<"+str+">"; 209 return "sequence<"+str+","+l+">"; 210 } 211 else if (tk == TCKind.tk_array) 212 { 213 String str = toStringValue(tc.content_type()); 214 return str; 215 } 216 else if (tk == TCKind.tk_fixed) 217 { 218 return "fixed<"+tc.fixed_digits()+","+tc.fixed_scale()+">"; 219 } 220 else 221 return ""; 222 } catch (org.omg.CORBA.TypeCodePackage.BadKind ex) { 223 return ""; 225 } 226 } 227 } 228 | Popular Tags |