1:
37:
38:
39: package ;
40:
41: import ;
42: import ;
43:
44: import ;
45: import ;
46:
47:
52: public abstract class ValueMemberHelper
53: {
54:
57: private static TypeCode typeCode = null;
58:
59:
62: private static boolean active = false;
63:
64:
67: public static void insert(Any a, ValueMember that)
68: {
69: OutputStream out = a.create_output_stream();
70: a.type(type());
71: write(out, that);
72: a.read_value(out.create_input_stream(), type());
73: }
74:
75:
78: public static ValueMember extract(Any a)
79: {
80: return read(a.create_input_stream());
81: }
82:
83:
86: public static synchronized TypeCode type()
87: {
88: if (typeCode == null)
89: {
90: synchronized (TypeCode.class)
91: {
92: if (typeCode == null)
93: {
94: ORB orb = Restricted_ORB.Singleton;
95:
96: if (active)
97: {
98: return orb.create_recursive_tc(id());
99: }
100: active = true;
101:
102: StructMember[] members = new StructMember[ 7 ];
103: TypeCode member;
104: member = orb.create_string_tc(0);
105: member =
106: orb.create_alias_tc(IdentifierHelper.id(), "Identifier",
107: member
108: );
109: members [ 0 ] = new StructMember("name", member, null);
110: member = orb.create_string_tc(0);
111: member =
112: orb.create_alias_tc(RepositoryIdHelper.id(), "RepositoryId",
113: member
114: );
115: members [ 1 ] = new StructMember("id", member, null);
116: member = orb.create_string_tc(0);
117: member =
118: orb.create_alias_tc(RepositoryIdHelper.id(), "RepositoryId",
119: member
120: );
121: members [ 2 ] = new StructMember("defined_in", member, null);
122: member = orb.create_string_tc(0);
123: member =
124: orb.create_alias_tc(VersionSpecHelper.id(), "VersionSpec",
125: member
126: );
127: members [ 3 ] = new StructMember("version", member, null);
128: member = orb.create_string_tc(0);
129: member = orb.get_primitive_tc(TCKind.tk_TypeCode);
130: members [ 4 ] = new StructMember("type", member, null);
131: member = IDLTypeHelper.type();
132: members [ 5 ] = new StructMember("type_def", member, null);
133: member = orb.get_primitive_tc(TCKind.tk_short);
134: member =
135: orb.create_alias_tc(VisibilityHelper.id(), "Visibility",
136: member
137: );
138: members [ 6 ] = new StructMember("access", member, null);
139: typeCode =
140: orb.create_struct_tc(ValueMemberHelper.id(), "ValueMember",
141: members
142: );
143: active = false;
144: }
145: }
146: }
147: return typeCode;
148: }
149:
150:
155: public static String id()
156: {
157: return "IDL:omg.org/CORBA/ValueMember:1.0";
158: }
159:
160:
163: public static ValueMember read(InputStream istream)
164: {
165: try
166: {
167: ValueMember value = new ValueMember();
168: value.name = istream.read_string();
169: value.id = istream.read_string();
170: value.defined_in = istream.read_string();
171: value.version = istream.read_string();
172: value.type = TypeCodeHelper.read(istream);
173: value.type_def = IDLTypeHelper.read(istream);
174: value.access = istream.read_short();
175: return value;
176: }
177: catch (UserException ex)
178: {
179: MARSHAL m = new MARSHAL();
180: m.initCause(ex);
181: throw m;
182: }
183: }
184:
185:
188: public static void write(OutputStream ostream, ValueMember value)
189: {
190: try
191: {
192: ostream.write_string(value.name);
193: ostream.write_string(value.id);
194: ostream.write_string(value.defined_in);
195: ostream.write_string(value.version);
196: TypeCodeHelper.write(ostream, value.type);
197: IDLTypeHelper.write(ostream, value.type_def);
198: ostream.write_short(value.access);
199: }
200: catch (UserException ex)
201: {
202: MARSHAL m = new MARSHAL();
203: m.initCause(ex);
204: throw m;
205: }
206: }