diff options
author | Audrius Meskauskas <audriusa@Bioinformatics.org> | 2005-06-20 08:24:10 +0000 |
---|---|---|
committer | Audrius Meskauskas <audriusa@Bioinformatics.org> | 2005-06-20 08:24:10 +0000 |
commit | 2db5c95dc1eac298b81b9b8ec6921ec1956c8c12 (patch) | |
tree | 301579c026bd8bcf4c22f77c1c5dcb51cb24d724 /org | |
parent | fcfdbea410a8101b5ad6080eb79355e952b0dded (diff) | |
download | classpath-2db5c95dc1eac298b81b9b8ec6921ec1956c8c12.tar.gz |
2005-06-20 Audrius Meskauskas <AudriusA@Bioinformatics.org>
* org/omg/CORBA/PolicyHelper.java,
org/omg/CORBA/PolicyHolder.java,
org/omg/CORBA/_PolicyStub.java,
gnu/CORBA/_PolicyImplBase.java: New files.
Diffstat (limited to 'org')
-rw-r--r-- | org/omg/CORBA/PolicyHelper.java | 162 | ||||
-rw-r--r-- | org/omg/CORBA/PolicyHolder.java | 106 | ||||
-rw-r--r-- | org/omg/CORBA/_PolicyStub.java | 176 |
3 files changed, 444 insertions, 0 deletions
diff --git a/org/omg/CORBA/PolicyHelper.java b/org/omg/CORBA/PolicyHelper.java new file mode 100644 index 000000000..29836c075 --- /dev/null +++ b/org/omg/CORBA/PolicyHelper.java @@ -0,0 +1,162 @@ +/* PolicyHelper.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package org.omg.CORBA; + +import org.omg.CORBA.Any; +import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.ORB; +import org.omg.CORBA.StructMember; +import org.omg.CORBA.TCKind; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.CORBA.portable.OutputStream; + +/** +* The helper operations for the +* CORBA object {@link Policy}. +* +* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) +*/ +public abstract class PolicyHelper +{ + /** + * The cached {@link Policy} typecode, computed once. + */ + private static TypeCode typeCode; + + /** + * Get the type code of the {@link Policy}. + * + * @return interface typecode, named "Policy". + */ + public static TypeCode type() + { + if (typeCode == null) + typeCode = ORB.init().create_interface_tc(id(), "Policy"); + return typeCode; + } + + /** + * Insert the Policy into the given Any. + * + * @param any the Any to insert into. + * @param that the Policy to insert. + */ + public static void insert(Any any, Policy that) + { + any.insert_Streamable(new PolicyHolder(that)); + } + + /** + * Extract the Policy from given Any. + * + * @throws BAD_OPERATION if the passed Any does not contain Policy. + */ + public static Policy extract(Any any) + { + try + { + PolicyHolder h = (PolicyHolder) any.extract_Streamable(); + return h.value; + } + catch (ClassCastException ex) + { + throw new BAD_OPERATION("Policy expected"); + } + } + + /** + * Get the Policy repository id. + * + * @return "IDL:omg.org/CORBA/Policy:1.0", always. + */ + public static String id() + { + return "IDL:omg.org/CORBA/Policy:1.0"; + } + + /** + * Cast the passed object into the Policy. If the + * object has a different java type, create an instance + * of the _PolicyStub, using the same delegate, as for + * the passed parameter. Hence, unlike java type cast, + * this method may return a different object, than has been passed. + * + * @param obj the object to narrow. + * @return narrowed instance. + * @throws BAD_PARAM if the passed object is not a Policy. + */ + public static Policy narrow(org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof Policy) + return (Policy) obj; + else if (!obj._is_a(id())) + throw new BAD_PARAM("Not a Policy"); + else + { + Delegate delegate = ((ObjectImpl) obj)._get_delegate(); + return new _PolicyStub(delegate); + } + } + + /** + * Read the object from the CDR intput stream (IOR profile expected). + * + * @param input a org.omg.CORBA.portable stream to read from. + */ + public static Policy read(InputStream input) + { + return narrow(input.read_Object()); + } + + /** + * Write the object to the CDR output stream (as IOR profile). + * + * @param output a org.omg.CORBA.portable stream stream to write into. + * @param value a value to write. + */ + public static void write(OutputStream output, Policy value) + { + output.write_Object(value); + } +}
\ No newline at end of file diff --git a/org/omg/CORBA/PolicyHolder.java b/org/omg/CORBA/PolicyHolder.java new file mode 100644 index 000000000..79b32b3c9 --- /dev/null +++ b/org/omg/CORBA/PolicyHolder.java @@ -0,0 +1,106 @@ +/* PolicyHolder.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package org.omg.CORBA; + +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; + +/** +* A holder for the object {@link Policy}. +* +* @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) +*/ +public class PolicyHolder + implements Streamable +{ + /** + * The stored Policy value. + */ + public Policy value; + + /** + * Create the unitialised instance, leaving the value field + * with default <code>null</code> value. + */ + public PolicyHolder() + { + } + + /** + * Create the initialised instance. + * @param initialValue the value that will be assigned to + * the <code>value</code> field. + */ + public PolicyHolder(Policy initialValue) + { + value = initialValue; + } + + /** + * Fill in the {@link value} by data from the CDR stream. + * Delegates work to {@link PolicyHelper}. + * + * @param input the org.omg.CORBA.portable stream to read. + */ + public void _read(InputStream input) + { + value = PolicyHelper.read(input); + } + + /** + * Write the stored value into the CDR stream. + * Delegates work to {@link PolicyHelper}. + * + * @param output the org.omg.CORBA.portable stream to write. + */ + public void _write(OutputStream output) + { + PolicyHelper.write(output, value); + } + + /** + * Get the typecode of the Policy. + * Delegates work to {@link PolicyHelper}. + */ + public org.omg.CORBA.TypeCode _type() + { + return PolicyHelper.type(); + } +}
\ No newline at end of file diff --git a/org/omg/CORBA/_PolicyStub.java b/org/omg/CORBA/_PolicyStub.java new file mode 100644 index 000000000..ebc537cf2 --- /dev/null +++ b/org/omg/CORBA/_PolicyStub.java @@ -0,0 +1,176 @@ +/* _PolicyStub.java -- + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package org.omg.CORBA; + +import org.omg.CORBA.MARSHAL; +import org.omg.CORBA.ORB; +import org.omg.CORBA.ObjectHelper; +import org.omg.CORBA.portable.ApplicationException; +import org.omg.CORBA.portable.Delegate; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.ObjectImpl; +import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.RemarshalException; + +import java.io.Serializable; + +/** + * The Policy stub (proxy), used on the client side. + * The {@link Policy} methods contain the code for remote + * invocaton. + * + * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) + */ +public class _PolicyStub + extends ObjectImpl + implements Policy, Serializable +{ + /** + * Use serialVersionUID (v1.4) for interoperability. + */ + private static final long serialVersionUID = 2453656196708903849L; + + /** + * Create the Policy stub. To get the stub working, + * you must later set the delegate with + * {@link ObjectImpl#_set_delegate(Delegate)}. + */ + public _PolicyStub() + { + } + + /** + * Create the naming context stub with the given delegate. + */ + public _PolicyStub(Delegate delegate) + { + _set_delegate(delegate); + } + + /** + * Return the array of repository ids for this object. + */ + public String[] _ids() + { + return new String[] { PolicyHelper.id() }; + } + + /** {@inheritDoc} */ + public void destroy() + { + InputStream input = null; + try + { + OutputStream output = _request("destroy", true); + input = _invoke(output); + } + catch (ApplicationException ex) + { + input = ex.getInputStream(); + + String id = ex.getId(); + throw new MARSHAL(id); + } + catch (RemarshalException remarsh) + { + destroy(); + } + finally + { + _releaseReply(input); + } + } + + /** {@inheritDoc} */ + public Policy copy() + { + InputStream input = null; + try + { + OutputStream output = _request("copy", true); + input = _invoke(output); + return PolicyHelper.read(input); + } + catch (ApplicationException ex) + { + input = ex.getInputStream(); + + String id = ex.getId(); + throw new MARSHAL(id); + } + catch (RemarshalException remarsh) + { + return copy(); + } + finally + { + _releaseReply(input); + } + } + + /** {@inheritDoc} */ + public int policy_type() + { + InputStream input = null; + try + { + OutputStream output = _request("policy_type", true); + input = _invoke(output); + + int returns = input.read_long(); + + return returns; + } + catch (ApplicationException ex) + { + input = ex.getInputStream(); + + String id = ex.getId(); + throw new MARSHAL(id); + } + catch (RemarshalException remarsh) + { + return policy_type(); + } + finally + { + _releaseReply(input); + } + } +}
\ No newline at end of file |