/* * JacORB - a free Java ORB * * Copyright (C) 1999-2014 Gerald Brose / The JacORB Team. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ package org.jacorb.ir.gui.remoteobject; import org.jacorb.ir.gui.typesystem.ModelBuilder; import org.jacorb.ir.gui.typesystem.TypeAssociator; import org.jacorb.ir.gui.typesystem.TypeSystemNode; import org.jacorb.ir.gui.typesystem.remote.IRInterface; import org.jacorb.ir.gui.typesystem.remote.IRStruct; import org.jacorb.ir.gui.typesystem.remote.RemoteTypeSystem; import org.omg.CORBA.Any; import org.omg.CORBA.InterfaceDef; import org.omg.CORBA.InterfaceDefHelper; import org.omg.CORBA.ORB; import org.omg.CORBA.PrimitiveDef; import org.omg.CORBA.PrimitiveKind; import org.omg.CORBA.Repository; import org.omg.CORBA.RepositoryHelper; import org.omg.CORBA.TCKind; /** * This class was generated by a SmartGuide. * */ public class ObjectRepresentantFactory { private static ORB orb = org.omg.CORBA.ORBSingleton.init(); /** * This method was created by a SmartGuide. * @return org.jacorb.ir;.gui.remoteobject.ObjectRepresentant * @param counterPart java.lang.Object * @param type TypeSystemNode * @param referencedBy TypeAssociator: the attribute containing the object (may be null) */ public static ObjectRepresentant create(java.lang.Object counterPart, TypeSystemNode type, TypeAssociator referencedBy) { // referencedBy is needed in case we should display the contents of the Attribute. // If we are this, then there is no referencedBy, but still a type (which we also need) String name = null; if (referencedBy!=null) { name = ((TypeSystemNode)referencedBy).getName(); } if (type instanceof IRInterface) { return new RemoteObject((org.omg.CORBA.Object)counterPart, type, name); } if (type instanceof IRStruct) { return new Struct(counterPart, (IRStruct)type, name); } /* if (counterPart instanceof TypeCode) { return new Struct(counterPart, null, name); } */ return new ObjectRepresentant(counterPart, type, name); } /** * This method was created by a SmartGuide. * @param counterPart org.omg.CORBA.Object */ public static ObjectRepresentant create(org.omg.CORBA.Object counterPart) { TypeSystemNode typeSystemNode = (IRInterface)RemoteTypeSystem.createTypeSystemNode( InterfaceDefHelper.narrow( counterPart._get_interface_def())); return create(counterPart,typeSystemNode,null); } /** * This method was created by a SmartGuide. * @param ior java.lang.String */ public static ObjectRepresentant createFromIOR (String ior) { org.omg.CORBA.Object obj = orb.string_to_object(ior); return create(obj); } /** * This method was created by a SmartGuide. */ protected static void insertFromString (Any result, String value, TCKind kind ) { switch (kind.value()) { case TCKind._tk_null: case TCKind._tk_void: case TCKind._tk_short: result.insert_short(Short.parseShort(value)); break; case TCKind._tk_long: result.insert_long(Integer.parseInt(value)); break; case TCKind._tk_ushort: result.insert_ushort(Short.parseShort(value)); break; case TCKind._tk_ulong: result.insert_ulong(Integer.parseInt(value)); break; case TCKind._tk_float: result.insert_float(new Float(value).floatValue()); break; case TCKind._tk_double: result.insert_double(new Double(value).doubleValue()); break; case TCKind._tk_boolean: result.insert_boolean(new Boolean(value).booleanValue()); break; case TCKind._tk_char: result.insert_char(value.charAt(0)); break; case TCKind._tk_octet: result.insert_octet(new Byte(value).byteValue()); break; /* case TCKind._tk_any: return any.insert_any(); case TCKind._tk_TypeCode: return any.insert_TypeCode(); case TCKind._tk_Principal: return any.insert_Principal(); */ case TCKind._tk_objref: result.insert_Object(orb.string_to_object(value)); break; /* case TCKind._tk_struct: return any.insert_struct(); // doesn't exist in standard mapping */ /* case TCKind._tk_union: return any.insert_union(); // doesn't exist in standard mapping */ case TCKind._tk_enum: result.insert_long(Integer.parseInt(value)); // wonder if that's compliant? break; case TCKind._tk_string: result.insert_string(value); break; /* case TCKind._tk_sequence: return any.insert_sequence(); // doesn't exist in standard mapping */ /* case TCKind._tk_array: return any.insert_array(); // doesn't exist in standard mapping */ /* case TCKind._tk_except: return any.insert_except(); // doesn't exist in standard mapping */ case TCKind._tk_longlong: result.insert_longlong(Long.parseLong(value)); break; case TCKind._tk_ulonglong: result.insert_ulonglong(Long.parseLong(value)); break; case TCKind._tk_wchar: result.insert_wchar(value.charAt(0)); break; case TCKind._tk_wstring: result.insert_wstring(value); break; default: } } /** * This method was created by a SmartGuide. * @param args java.lang.String[] */ public static void main(String args[]) { try { Repository rep = RepositoryHelper.narrow( orb.resolve_initial_references("InterfaceRepository")); PrimitiveDef prim = rep.get_primitive(PrimitiveKind.pk_short); InterfaceDef intf = InterfaceDefHelper.narrow( prim._get_interface_def()); ObjectRepresentant objr = ObjectRepresentantFactory.create(prim,RemoteTypeSystem.createTypeSystemNode(intf),null); ModelBuilder.getSingleton().buildTreeModelAsync(objr); } catch (Exception e) { e.printStackTrace(); } return; } /** * This method was created by a SmartGuide. * @return java.lang.Object * @param any org.omg.CORBA.Any */ public static java.lang.Object objectFromAny (Any any ) { switch (any.type().kind().value()) { case TCKind._tk_null: return null; case TCKind._tk_void: System.out.println("DII returned an Any of kind void?"); return null; case TCKind._tk_short: return new Short(any.extract_short()); case TCKind._tk_long: return new Integer(any.extract_long()); case TCKind._tk_ushort: return new Short(any.extract_ushort()); case TCKind._tk_ulong: return new Integer(any.extract_ulong()); case TCKind._tk_float: return new Float(any.extract_float()); case TCKind._tk_double: return new Double(any.extract_double()); case TCKind._tk_boolean: return new Boolean(any.extract_boolean()); case TCKind._tk_char: return new Character(any.extract_char()); case TCKind._tk_octet: return new Byte(any.extract_octet()); case TCKind._tk_any: return any.extract_any(); case TCKind._tk_TypeCode: return any.extract_TypeCode(); case TCKind._tk_Principal: return any.extract_Principal(); case TCKind._tk_objref: return any.extract_Object(); /* case TCKind._tk_struct: return any.extract_struct(); // doesn't exist in standard mapping */ /* case TCKind._tk_union: return any.extract_union(); // doesn't exist in standard mapping */ /* case TCKind._tk_enum: return any.extract_enum(); // doesn't exist in standard mapping */ case TCKind._tk_string: return any.extract_string(); /* case TCKind._tk_sequence: return any.extract_sequence(); // doesn't exist in standard mapping case TCKind._tk_array: return any.extract_array(); // doesn't exist in standard mapping case TCKind._tk_except: return any.extract_except(); // doesn't exist in standard mapping */ case TCKind._tk_longlong: return new Long(any.extract_longlong()); case TCKind._tk_ulonglong: return new Long(any.extract_ulonglong()); case TCKind._tk_wchar: return new Character(any.extract_wchar()); case TCKind._tk_wstring: return new String(any.extract_wstring()); } return null; } }