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