org.omg.CORBA.TypeDescription describe_struct() { org.jacorb.util.Debug.assert( defined, "Struct " + full_name + " not defined! "); return new org.omg.CORBA.TypeDescription(name(), id(), org.omg.CORBA.ContainedHelper.narrow( defined_in ).id(), version(), type()); }
public StructDef(Class c, String path, org.omg.CORBA.Container _defined_in, org.omg.CORBA.Repository ir) { def_kind = org.omg.CORBA.DefinitionKind.dk_Struct; containing_repository = ir; defined_in = _defined_in; this.path = path; Debug.assert( defined_in != null, "defined_in = null"); Debug.assert( containing_repository != null, "containing_repository = null"); try { String classId = c.getName(); myClass = c; version( "1.0" ); full_name = classId.replace('.', '/'); if( classId.indexOf('.') > 0 ) { name( classId.substring( classId.lastIndexOf('.')+1 ) ); absolute_name = org.omg.CORBA.ContainedHelper.narrow( defined_in ).absolute_name() + "::" + name; } else { name( classId ); absolute_name = "::" + name; } helperClass = RepositoryImpl.loader.loadClass( classId + "Helper") ; id( (String)helperClass.getDeclaredMethod( "id", null ).invoke( null, null )); type = TypeCodeUtil.getTypeCode( myClass, RepositoryImpl.loader, null, classId ); members = new org.omg.CORBA.StructMember[ type.member_count() ]; for( int i = 0; i < members.length; i++ ) { org.omg.CORBA.TypeCode type_code = type.member_type(i); String member_name = type.member_name(i); members[i] = new org.omg.CORBA.StructMember( member_name, type_code, null ); } /* get directory for nested definitions' classes */ File f = new File( path + fileSeparator + classId.replace('.', fileSeparator) + "Package" ); if( f.exists() && f.isDirectory() ) my_dir = f; org.jacorb.util.Debug.output(2, "StructDef: " + absolute_name ); } catch ( Exception e ) { e.printStackTrace(); throw new org.omg.CORBA.INTF_REPOS( ErrorMsg.IR_Not_Implemented, org.omg.CORBA.CompletionStatus.COMPLETED_NO); } }