1 package org.jacorb.ir.gui.typesystem.remote; 2 3 22 23 import org.omg.CORBA.*; 24 import javax.swing.tree.*; 25 import javax.swing.table.*; 26 27 import java.util.*; 28 29 import org.jacorb.ir.gui.typesystem.*; 30 31 35 36 public class RemoteTypeSystem 37 extends TypeSystem 38 { 39 Repository rep; 40 ORB orb = ORB.init( new String [0], null); 41 private static Hashtable knownIRObjects = new Hashtable(); 42 43 private static String test = ""; 44 private static int test2; 45 46 48 49 public RemoteTypeSystem () 50 { 51 try 52 { 53 this.rep = 54 RepositoryHelper.narrow( 55 orb.resolve_initial_references("InterfaceRepository")); 56 } 57 catch (Exception e) 58 { 59 e.printStackTrace(); 60 } 61 } 62 63 66 67 public RemoteTypeSystem (String ior) 68 { 69 org.omg.CORBA.Object obj = orb.string_to_object(ior); 70 try 71 { 72 rep = RepositoryHelper.narrow(obj); 73 } 74 catch( org.omg.CORBA.BAD_PARAM bp ) 75 { 76 System.out.println("IOR is not a Repository, sorry."); 77 System.exit(0); 78 } 79 } 80 81 89 90 public DefaultTreeModel createTreeModelRoot() 91 { 92 if (treeModel!=null) 93 { 94 return treeModel; 95 } 96 else 97 { 98 IRRepository startNode = new IRRepository(rep); 99 treeModel = 100 ModelBuilder.getSingleton().createTreeModelRoot(startNode); 101 return treeModel; 102 } 103 } 104 105 109 110 public static TypeSystemNode createTypeSystemNode(java.lang.Object obj) 111 { 112 if (obj == null) 113 { 114 return null; 116 } 117 IRObject irObject = null; 118 TypeSystemNode result = null; 119 120 System.out.flush(); 121 122 131 139 if ( obj instanceof IRObject ) 140 { 141 try 142 { 143 irObject = IRObjectHelper.narrow((org.omg.CORBA.Object )obj); 144 } 145 catch( org.omg.CORBA.BAD_PARAM bp ) 146 { 147 } 148 } 149 if( irObject != null ) 150 { 151 158 result = (TypeSystemNode)knownIRObjects.get(irObject); 159 160 if( result != null ) 161 { 162 return result; 165 } 166 167 try 169 { 170 Contained contained = 171 ContainedHelper.narrow((org.omg.CORBA.Object )irObject); 172 173 result = (TypeSystemNode)knownIRObjects.get(contained.id()); 174 if (result != null) 175 { 176 return result; 180 } 181 } 182 catch( org.omg.CORBA.BAD_PARAM bp ) 183 {} 184 185 try 186 { 187 switch(irObject.def_kind().value()) 188 { 189 case DefinitionKind._dk_Module: 191 result = new IRModule(irObject); 192 break; 193 case DefinitionKind._dk_Interface: 194 result = new IRInterface(irObject); 195 break; 196 case DefinitionKind._dk_Constant: 197 result = new IRConstant(irObject); 198 break; 199 case DefinitionKind._dk_Attribute: 200 result = new IRAttribute(irObject); 201 break; 202 case DefinitionKind._dk_Operation: 203 result = new IROperation(irObject); 204 break; 205 210 case DefinitionKind._dk_Exception: 211 result = new IRException(irObject); 212 break; 213 case DefinitionKind._dk_Struct: 214 result = new IRStruct(irObject); 215 break; 216 case DefinitionKind._dk_Union: 217 result = new IRUnion(irObject); 218 break; 219 case DefinitionKind._dk_Primitive: 220 result = new IRPrimitive(irObject); 221 break; 222 case DefinitionKind._dk_Fixed: 223 result = new IRFixed(irObject); 224 break; 225 case DefinitionKind._dk_String: 226 result = new IRString(irObject); 227 break; 228 case DefinitionKind._dk_Wstring: 229 result = new IRWstring(irObject); 230 break; 231 case DefinitionKind._dk_Alias: 232 result = new IRAlias(irObject); 233 break; 234 case DefinitionKind._dk_Sequence: 235 result = new IRSequence(irObject); 236 break; 237 case DefinitionKind._dk_Enum: 238 result = new IREnum(irObject); 239 break; 240 case DefinitionKind._dk_Array: 241 result = new IRArray(irObject); 242 break; 243 case DefinitionKind._dk_ValueBox: 244 result = new IRValueBox(irObject); 245 break; 246 case DefinitionKind._dk_Value: 247 result = new IRValue(irObject); 248 break; 249 case DefinitionKind._dk_ValueMember: 250 result = new IRValueMember(irObject); 251 break; 252 default: 253 System.out.println("Unknown/senseless DefinitionKind returned from Repository: "+irObject.def_kind().value()); 254 break; 255 } } 257 catch( Exception exc ) 258 { 259 } 261 262 if ( result instanceof IRInterface && 263 ((IRInterface)result).getName().equals("Container")) 264 { 265 int nanu = ((IRNode)result).irObject.hashCode(); 266 int nanu2 = irObject.hashCode(); 267 if (test.equals(((IRInterface)result).getAbsoluteName())) 268 { 269 System.out.println("bug!"); 270 } 271 test = ((IRInterface)result).getAbsoluteName(); 272 test2=((IRNode)result).irObject.hashCode(); 273 } 274 275 if (result != null) 276 { 277 knownIRObjects.put(irObject,result); 279 280 if (knownIRObjects.get(irObject) == null) 281 { 282 System.out.println( "wasislos?"); 283 } 284 285 if (result instanceof IRNode && 286 (!((IRNode)result).repositoryID.equals(""))) 287 { 288 knownIRObjects.put(((IRNode)result).repositoryID,result); 289 } 290 } 291 } else 293 { 294 if (knownIRObjects.get(obj)!=null) { 300 return (TypeSystemNode)knownIRObjects.get(obj); 301 } 302 303 if (obj instanceof StructMember) 304 { 305 StructMember structMember = (StructMember)obj; 307 if (knownIRObjects.get("structmember" + structMember.name + 308 structMember.type.kind().toString())!=null) 309 { 310 return (TypeSystemNode)knownIRObjects.get("structmember" + 311 structMember.name + 312 structMember.type.kind().toString()); 313 } 314 result = new IRStructMember((StructMember)obj); 315 knownIRObjects.put("structmember" + structMember.name + 316 structMember.type.kind().toString(),result); 317 } 318 else if (obj instanceof UnionMember) 319 { 320 UnionMember unionMember = (UnionMember)obj; 321 if (knownIRObjects.get("unionmember" + 322 unionMember.name + 323 unionMember.type.kind().toString())!=null) 324 { 325 return (TypeSystemNode)knownIRObjects.get("unionmember" + 326 unionMember.name + 327 unionMember.type.kind().toString()); 328 } 329 result = new IRUnionMember((UnionMember)obj); 330 knownIRObjects.put("unionmember" + unionMember.name + 331 unionMember.type.kind().toString(),result); 332 } 333 else 334 if (obj instanceof ParameterDescription) 335 { 336 ParameterDescription parDesc = (ParameterDescription)obj; 337 if (knownIRObjects.get("parameter" + parDesc.name + 338 parDesc.type.kind().toString())!=null) 339 { 340 return (TypeSystemNode)knownIRObjects.get("parameter" + 341 parDesc.name + 342 parDesc.type.kind().toString()); 343 } 344 result = new IRParameter(parDesc); 345 knownIRObjects.put("parameter" + parDesc.name + 346 parDesc.type.kind().toString(),result); 347 } 348 else if (obj instanceof String ) 349 { 350 if (knownIRObjects.get((String )obj)!=null) 351 { 352 return (IREnumMember)knownIRObjects.get((String )obj); 353 } 354 result = new IREnumMember((String )obj); 355 knownIRObjects.put(obj,result); 356 } 357 } 359 if( result != null ) 360 { 361 } 364 return result; 367 } 368 369 373 374 public DefaultTableModel getTableModel(DefaultMutableTreeNode treeNode) 375 { 376 DefaultTableModel tableModel = new DefaultTableModel(); 377 java.lang.Object [] colIdentifiers = {"Item","Type","Name"}; 378 379 tableModel.setColumnIdentifiers(colIdentifiers); 380 381 if (treeNode!=null) 382 { 383 if (treeNode.getUserObject() instanceof AbstractContainer) 384 { 385 for (int i=0; i<treeModel.getChildCount(treeNode); i++) 386 { 387 TypeSystemNode childNode = 388 (TypeSystemNode)((DefaultMutableTreeNode)(treeNode.getChildAt(i))).getUserObject(); 389 String type = ""; 390 if (childNode instanceof TypeAssociator) 391 { 392 type = ((TypeAssociator)childNode).getAssociatedType(); 393 } 394 java.lang.Object [] row = {new NodeMapper(childNode,childNode.getInstanceNodeTypeName()), 395 new NodeMapper(childNode,type), 396 new NodeMapper(childNode,childNode.getName())}; 397 tableModel.addRow(row); 398 } 399 } 400 } 401 return tableModel; 402 } 403 404 408 public javax.swing.event.TreeExpansionListener getTreeExpansionListener(TreeModel treeModel) { 409 return ModelBuilder.getSingleton().getTreeExpansionListener(treeModel); 410 } 411 412 416 417 public TreeModel getTreeModel() 418 { 419 if (treeModel!=null) 420 { 421 return treeModel; 422 } 423 else 424 { 425 try 426 { 427 IRRepository startNode = new IRRepository(rep); 428 treeModel = ModelBuilder.getSingleton().buildTreeModelAsync(startNode); 429 return treeModel; 430 } 431 catch (Exception e) 432 { 433 e.printStackTrace(); 434 } 435 } 436 return null; 437 } 438 439 442 443 public static void main(String args[]) 444 { 445 TreeModel dummy = new RemoteTypeSystem().getTreeModel(); 446 return; 447 } 448 449 } 450 | Popular Tags |