diff options
Diffstat (limited to 'src/java.corba/share/classes/org')
269 files changed, 35931 insertions, 0 deletions
diff --git a/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java new file mode 100644 index 0000000..b733453 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The <code>ACTIVITY_COMPLETED</code> system exception may be raised on any + * method for which Activity context is accessed. It indicates that the + * Activity context in which the method call was made has been completed due + * to a timeout of either the Activity itself or a transaction that encompasses + * the Activity, or that the Activity completed in a manner other than that + * originally requested. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class ACTIVITY_COMPLETED extends SystemException { + + /** + * Constructs an <code>ACTIVITY_COMPLETED</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public ACTIVITY_COMPLETED() { + this(""); + } + + /** + * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public ACTIVITY_COMPLETED(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public ACTIVITY_COMPLETED(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>ACTIVITY_COMPLETED</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public ACTIVITY_COMPLETED(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java new file mode 100644 index 0000000..1e31993 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The <code>ACTIVITY_REQUIRED</code> system exception may be raised on any + * method for which an Activity context is required. It indicates that an + * Activity context was necessary to perform the invoked operation, but one + * was not found associated with the calling thread. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class ACTIVITY_REQUIRED extends SystemException { + + /** + * Constructs an <code>ACTIVITY_REQUIRED</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public ACTIVITY_REQUIRED() { + this(""); + } + + /** + * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public ACTIVITY_REQUIRED(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public ACTIVITY_REQUIRED(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>ACTIVITY_REQUIRED</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public ACTIVITY_REQUIRED(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java new file mode 100644 index 0000000..14d415e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_IN.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Signifies an "input" argument to an invocation, + * meaning that the argument is being passed from the client to + * the server. + * <code>ARG_IN.value</code> is one of the possible values used to + * indicate the direction in + * which a parameter is being passed during an invocation performed + * using the Dynamic Invocation Interface (DII). + * <P> + * The code fragment below shows a typical usage: + * <PRE> + * ORB orb = ORB.init(args, null); + * org.omg.CORBA.NamedValue nv = orb.create_named_value( + * "IDLArgumentIdentifier", myAny, org.omg.CORBA.ARG_IN.value); + * </PRE> + * + * @see org.omg.CORBA.NamedValue + * @since JDK1.2 + */ +public interface ARG_IN { + + /** + * The value indicating an input argument. + */ + int value = 1; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java new file mode 100644 index 0000000..b33b8c0 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_INOUT.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Signifies an argument used for both input and output in an invocation, + * meaning that the argument is being passed from the client to + * the server and then back from the server to the client. + * <code>ARG_INOUT.value</code> is one of the possible values used to + * indicate the direction in + * which a parameter is being passed during a dynamic invocation + * using the Dynamic Invocation Interface (DII). + * <P> + * The code fragment below shows a typical usage: + * <PRE> + * ORB orb = ORB.init(args, null); + * org.omg.CORBA.NamedValue nv = orb.create_named_value( + * "argumentIdentifier", myAny, org.omg.CORBA.ARG_INOUT.value); + * </PRE> + * + * @see org.omg.CORBA.NamedValue + * @since JDK1.2 + */ +public interface ARG_INOUT { + +/** + * The constant value indicating an argument used for both + * input and output. + */ + int value = 3; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java b/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java new file mode 100644 index 0000000..8d4443b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ARG_OUT.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A constant that signifies an "output" argument to an invocation, + * meaning that the argument is being passed from the server to + * the client. + * <code>ARG_OUT.value</code> is one of the possible values used + * to indicate the direction in + * which a parameter is being passed during a dynamic invocation + * using the Dynamic Invocation Interface (DII). + * <P> + * The code fragment below shows a typical usage: + * <PRE> + * ORB orb = ORB.init(args, null); + * org.omg.CORBA.NamedValue nv = orb.create_named_value( + * "argumentIdentifier", myAny, org.omg.CORBA.ARG_OUT.value); + * </PRE> + * + * @see org.omg.CORBA.NamedValue + * @since JDK1.2 + */ +public interface ARG_OUT { + +/** + * The constant value indicating an output argument. + */ + int value = 2; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Any.java b/src/java.corba/share/classes/org/omg/CORBA/Any.java new file mode 100644 index 0000000..c02b4fa --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Any.java @@ -0,0 +1,721 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.IDLEntity; + +/** + * Serves as a container for any data that can be + * described in IDL or for any IDL primitive type. + * An <code>Any</code> object is used as a component of a + * <code>NamedValue</code> object, which provides information about + * arguments or return values in requests, and which is used to define + * name/value pairs in <code>Context</code> objects. + <p> + * + * An <code>Any</code> object consists of two parts: + * <OL> + * <LI>a data value + * <LI>a <code>TypeCode</code> object describing the type of the data + * value contained in the <code>Any</code> object. For example, + * a <code>TypeCode</code> object for an array contains + * a field for the length of the array and a field for + * the type of elements in the array. (Note that in this case, the + * second field of the <code>TypeCode</code> object is itself a + * <code>TypeCode</code> object.) + * </OL> + * + * <P> + * <a id="anyOps"></a> + * A large part of the <code>Any</code> class consists of pairs of methods + * for inserting values into and extracting values from an + * <code>Any</code> object. + * <P> + * For a given primitive type X, these methods are: + * <dl> + * <dt><code><b>void insert_X(X x)</b></code> + * <dd> This method allows the insertion of + * an instance <code>x</code> of primitive type <code>X</code> + * into the <code>value</code> field of the <code>Any</code> object. + * Note that the method + * <code>insert_X</code> also resets the <code>Any</code> object's + * <code>type</code> field if necessary. + * <dt> <code><b>X extract_X()</b></code> + * <dd> This method allows the extraction of an instance of + * type <code>X</code> from the <code>Any</code> object. + * <BR> + * <P> + * This method throws the exception <code>BAD_OPERATION</code> under two conditions: + * <OL> + * <LI> the type of the element contained in the <code>Any</code> object is not + * <code>X</code> + * <LI> the method <code>extract_X</code> is called before + * the <code>value</code> field of the <code>Any</code> object + * has been set + * </OL> + * </dl> + * <P> + * There are distinct method pairs for each + * primitive IDL data type (<code>insert_long</code> and <code>extract_long</code>, + * <code>insert_string</code> and <code>extract_string</code>, and so on).<BR> + * <P> + * The class <code>Any</code> also has methods for + * getting and setting the type code, + * for testing two <code>Any</code> objects for equality, + * and for reading an <code>Any</code> object from a stream or + * writing it to a stream. + * <BR> + * @since JDK1.2 + */ +abstract public class Any implements IDLEntity { + + /** + * Checks for equality between this <code>Any</code> object and the + * given <code>Any</code> object. Two <code>Any</code> objects are + * equal if both their values and type codes are equal. + * + * @param a the <code>Any</code> object to test for equality + * @return <code>true</code> if the <code>Any</code> objects are equal; + * <code>false</code> otherwise + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + abstract public boolean equal(Any a); + + /** + * Returns type information for the element contained in this + * <code>Any</code> object. + * + * @return the <code>TypeCode</code> object containing type information + * about the value contained in this <code>Any</code> object + */ + abstract public TypeCode type(); + + /** + * Sets this <code>Any</code> object's <code>type</code> field + * to the given <code>TypeCode</code> object and clears its value. + * <P> + * Note that using this method to set the type code wipes out the + * value if there is one. The method + * is provided primarily so that the type may be set properly for + * IDL <code>out</code> parameters. Generally, setting the type + * is done by the <code>insert_X</code> methods, which will set the type + * to X if it is not already set to X. + * + * @param t the <code>TypeCode</code> object giving + * information for the value in + * this <code>Any</code> object + */ + abstract public void type(TypeCode t); + + /////////////////////////////////////////////////////////////////////////// + // marshalling/unmarshalling routines + + /** + * Reads off (unmarshals) the value of an <code>Any</code> object from + * the given input stream using the given typecode. + * + * @param is the <code>org.omg.CORBA.portable.InputStream</code> + * object from which to read + * the value contained in this <code>Any</code> object + * + * @param t a <code>TypeCode</code> object containing type information + * about the value to be read + * + * @exception MARSHAL when the given <code>TypeCode</code> object is + * not consistent with the value that was contained + * in the input stream + */ + abstract public void read_value(InputStream is, TypeCode t) + throws MARSHAL; + + /** + * Writes out the value of this <code>Any</code> object + * to the given output stream. If both <code>typecode</code> + * and <code>value</code> need to be written, use + * <code>create_output_stream()</code> to create an <code>OutputStream</code>, + * then use <code>write_any</code> on the <code>OutputStream</code>. + * <P> + * If this method is called on an <code>Any</code> object that has not + * had a value inserted into its <code>value</code> field, it will throw + * the exception <code>java.lang.NullPointerException</code>. + * + * @param os the <code>org.omg.CORBA.portable.OutputStream</code> + * object into which to marshal the value + * of this <code>Any</code> object + * + */ + abstract public void write_value(OutputStream os); + + /** + * Creates an output stream into which this <code>Any</code> object's + * value can be marshalled. + * + * @return the newly-created <code>OutputStream</code> + */ + abstract public OutputStream create_output_stream(); + + /** + * Creates an input stream from which this <code>Any</code> object's value + * can be unmarshalled. + * + * @return the newly-created <code>InputStream</code> + */ + abstract public InputStream create_input_stream(); + + /////////////////////////////////////////////////////////////////////////// + // basic insertion/extraction methods + + /** + * Extracts the <code>short</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>short</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>short</code> or the + * <code>value</code> field has not yet been set + */ + abstract public short extract_short() throws BAD_OPERATION; + + /** + * Inserts the given <code>short</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param s the <code>short</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_short(short s); + + /** + * Extracts the <code>int</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>int</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than an <code>int</code> or the + * <code>value</code> field has not yet been set + */ + abstract public int extract_long() throws BAD_OPERATION; + + /** + * Inserts the given <code>int</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param l the <code>int</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_long(int l); + + + /** + * Extracts the <code>long</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>long</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>long</code> or the + * <code>value</code> field has not yet been set + */ + abstract public long extract_longlong() throws BAD_OPERATION; + + /** + * Inserts the given <code>long</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param l the <code>long</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_longlong(long l); + + /** + * Extracts the <code>short</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>short</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>short</code> or the + * <code>value</code> field has not yet been set + */ + abstract public short extract_ushort() throws BAD_OPERATION; + + /** + * Inserts the given <code>short</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param s the <code>short</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_ushort(short s); + + /** + * Extracts the <code>int</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>int</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than an <code>int</code> or the + * <code>value</code> field has not yet been set + */ + abstract public int extract_ulong() throws BAD_OPERATION; + + /** + * Inserts the given <code>int</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param l the <code>int</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_ulong(int l); + + /** + * Extracts the <code>long</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>long</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>long</code> or the + * <code>value</code> field has not yet been set + */ + abstract public long extract_ulonglong() throws BAD_OPERATION; + + /** + * Inserts the given <code>long</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param l the <code>long</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_ulonglong(long l); + + /** + * Extracts the <code>float</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>float</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>float</code> or the + * <code>value</code> field has not yet been set + */ + abstract public float extract_float() throws BAD_OPERATION; + + /** + * Inserts the given <code>float</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param f the <code>float</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_float(float f); + + /** + * Extracts the <code>double</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>double</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>double</code> or the + * <code>value</code> field has not yet been set + */ + abstract public double extract_double() throws BAD_OPERATION; + + /** + * Inserts the given <code>double</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param d the <code>double</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_double(double d); + + /** + * Extracts the <code>boolean</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>boolean</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>boolean</code> or the + * <code>value</code> field has not yet been set + */ + abstract public boolean extract_boolean() throws BAD_OPERATION; + + /** + * Inserts the given <code>boolean</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param b the <code>boolean</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_boolean(boolean b); + + /** + * Extracts the <code>char</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>char</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>char</code> or the + * <code>value</code> field has not yet been set + */ + abstract public char extract_char() throws BAD_OPERATION; + + /** + * Inserts the given <code>char</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param c the <code>char</code> to insert into this + * <code>Any</code> object + * @exception DATA_CONVERSION if there is a data conversion + * error + */ + abstract public void insert_char(char c) throws DATA_CONVERSION; + + /** + * Extracts the <code>char</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>char</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>char</code> or the + * <code>value</code> field has not yet been set + */ + abstract public char extract_wchar() throws BAD_OPERATION; + + /** + * Inserts the given <code>char</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param c the <code>char</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_wchar(char c); + + /** + * Extracts the <code>byte</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>byte</code> stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>byte</code> or the + * <code>value</code> field has not yet been set + */ + abstract public byte extract_octet() throws BAD_OPERATION; + + /** + * Inserts the given <code>byte</code> + * into this <code>Any</code> object's <code>value</code> field. + * + * @param b the <code>byte</code> to insert into this + * <code>Any</code> object + */ + abstract public void insert_octet(byte b); + + /** + * Extracts the <code>Any</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>Any</code> object stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than an <code>Any</code> object or the + * <code>value</code> field has not yet been set + */ + abstract public Any extract_any() throws BAD_OPERATION; + + /** + * Inserts the given <code>Any</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param a the <code>Any</code> object to insert into this + * <code>Any</code> object + */ + abstract public void insert_any(Any a); + + /** + * Extracts the <code>org.omg.CORBA.Object</code> in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>org.omg.CORBA.Object</code> stored in + * this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than an + * <code>org.omg.CORBA.Object</code> or the + * <code>value</code> field has not yet been set + */ + abstract public org.omg.CORBA.Object extract_Object() throws BAD_OPERATION; + + /** + * Inserts the given <code>org.omg.CORBA.Object</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param o the <code>org.omg.CORBA.Object</code> object to insert into this + * <code>Any</code> object + */ + abstract public void insert_Object(org.omg.CORBA.Object o); + + /** + * Extracts the <code>java.io.Serializable</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>java.io.Serializable</code> object stored in + * this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>java.io.Serializable</code> + * object or the + * <code>value</code> field has not yet been set + */ + abstract public java.io.Serializable extract_Value() throws BAD_OPERATION ; + + /** + * Inserts the given <code>java.io.Serializable</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param v the <code>java.io.Serializable</code> object to insert into this + * <code>Any</code> object + */ + abstract public void insert_Value(java.io.Serializable v) ; + + /** + * Inserts the given <code>java.io.Serializable</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param v the <code>java.io.Serializable</code> object to insert into this + * <code>Any</code> object + * @param t the <code>TypeCode</code> object that is to be inserted into + * this <code>Any</code> object's <code>type</code> field + * and that describes the <code>java.io.Serializable</code> + * object being inserted + * @throws MARSHAL if the ORB has a problem marshalling or + * unmarshalling parameters + */ + abstract public void insert_Value(java.io.Serializable v, TypeCode t) + throws MARSHAL ; +/** + * Inserts the given <code>org.omg.CORBA.Object</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param o the <code>org.omg.CORBA.Object</code> instance to insert into this + * <code>Any</code> object + * @param t the <code>TypeCode</code> object that is to be inserted into + * this <code>Any</code> object and that describes + * the <code>Object</code> being inserted + * @exception BAD_OPERATION if this method is invalid for this + * <code>Any</code> object + * + */ + abstract public void insert_Object(org.omg.CORBA.Object o, TypeCode t) + throws BAD_PARAM; + + /** + * Extracts the <code>String</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>String</code> object stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>String</code> object or the + * <code>value</code> field has not yet been set + */ + abstract public String extract_string() throws BAD_OPERATION; + + /** + * Inserts the given <code>String</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param s the <code>String</code> object to insert into this + * <code>Any</code> object + * @exception DATA_CONVERSION if there is a data conversion error + * @exception MARSHAL if the ORB has a problem marshalling or + * unmarshalling parameters + */ + abstract public void insert_string(String s) throws DATA_CONVERSION, MARSHAL; + + /** + * Extracts the <code>String</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>String</code> object stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>String</code> object or the + * <code>value</code> field has not yet been set + */ + abstract public String extract_wstring() throws BAD_OPERATION; + + /** + * Inserts the given <code>String</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param s the <code>String</code> object to insert into this + * <code>Any</code> object + * @exception MARSHAL if the ORB has a problem marshalling or + * unmarshalling parameters + */ + abstract public void insert_wstring(String s) throws MARSHAL; + + /** + * Extracts the <code>TypeCode</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>TypeCode</code> object stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a <code>TypeCode</code> object or the + * <code>value</code> field has not yet been set + */ + abstract public TypeCode extract_TypeCode() throws BAD_OPERATION; + + /** + * Inserts the given <code>TypeCode</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param t the <code>TypeCode</code> object to insert into this + * <code>Any</code> object + */ + abstract public void insert_TypeCode(TypeCode t); + + /** + * Extracts the <code>Principal</code> object in this + * <code>Any</code> object's <code>value</code> field. + * Note that the class <code>Principal</code> has been deprecated. + * + * @return the <code>Principal</code> object stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a + * <code>Principal</code> object or the + * <code>value</code> field has not yet been set + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public Principal extract_Principal() throws BAD_OPERATION { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } + + /** + * Inserts the given <code>Principal</code> object + * into this <code>Any</code> object's <code>value</code> field. + * Note that the class <code>Principal</code> has been deprecated. + * + * @param p the <code>Principal</code> object to insert into this + * <code>Any</code> object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public void insert_Principal(Principal p) { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } + + /////////////////////////////////////////////////////////////////////////// + // insertion/extraction of streamables + + /** + * Extracts a <code>Streamable</code> from this <code>Any</code> object's + * <code>value</code> field. This method allows the extraction of + * non-primitive IDL types. + * + * @return the <code>Streamable</code> stored in the <code>Any</code> object. + * @throws BAD_INV_ORDER if the caller has invoked operations in the wrong order + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.portable.Streamable extract_Streamable() + throws org.omg.CORBA.BAD_INV_ORDER { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } + + /** + * Inserts the given <code>Streamable</code> object + * into this <code>Any</code> object's <code>value</code> field. + * This method allows the insertion of non-primitive IDL types. + * + * @param s the <code>Streamable</code> object to insert into this + * <code>Any</code> object; may be a non-primitive + * IDL type + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void insert_Streamable(Streamable s) { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } + + /** + * Extracts the <code>java.math.BigDecimal</code> object in this + * <code>Any</code> object's <code>value</code> field. + * + * @return the <code>java.math.BigDecimal</code> object + * stored in this <code>Any</code> object + * @exception BAD_OPERATION if this <code>Any</code> object + * contains something other than a + * <code>java.math.BigDecimal</code> object or the + * <code>value</code> field has not yet been set + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public java.math.BigDecimal extract_fixed() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Throws an <a href="package-summary.html#NO_IMPLEMENT"> + * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception. + * <P> + * Inserts the given <code>java.math.BigDecimal</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param value the <code>java.math.BigDecimal</code> object + * to insert into this <code>Any</code> object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void insert_fixed(java.math.BigDecimal value) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Throws an <a href="package-summary.html#NO_IMPLEMENT"> + * <code>org.omg.CORBA.NO_IMPLEMENT</code></a> exception. + * <P> + * Inserts the given <code>java.math.BigDecimal</code> object + * into this <code>Any</code> object's <code>value</code> field. + * + * @param value the <code>java.math.BigDecimal</code> object + * to insert into this <code>Any</code> object + * @param type the <code>TypeCode</code> object that is to be inserted into + * this <code>Any</code> object's <code>type</code> field + * and that describes the <code>java.math.BigDecimal</code> + * object being inserted + * @throws org.omg.CORBA.BAD_INV_ORDER if this method is invoked improperly + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void insert_fixed(java.math.BigDecimal value, org.omg.CORBA.TypeCode type) + throws org.omg.CORBA.BAD_INV_ORDER + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java b/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java new file mode 100644 index 0000000..fed1979 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/AnyHolder.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Any}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for {@code Any} objects + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code any} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code AnyHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myAnyHolder} is an instance of {@code AnyHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myAnyHolder.value}. + * + * @since JDK1.2 + */ +public final class AnyHolder implements Streamable { + /** + * The {@code Any} value held by this {@code AnyHolder} object. + */ + + public Any value; + + /** + * Constructs a new {@code AnyHolder} object with its + * {@code value} field initialized to {@code null}. + */ + public AnyHolder() { + } + + /** + * Constructs a new {@code AnyHolder} object for the given + * {@code Any} object. + * @param initial the {@code Any} object with which to initialize + * the {@code value} field of the new + * {@code AnyHolder} object + */ + public AnyHolder(Any initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in the Holder + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire. + */ + public void _read(InputStream input) { + value = input.read_any(); + } + + /** + * Marshals to {@code output} the value in + * this {@code AnyHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data. + */ + public void _write(OutputStream output) { + output.write_any(value); + } + + /** + * Returns the {@code TypeCode} object corresponding to the value + * held in this {@code AnyHolder} object. + * + * @return the TypeCode of the value held in + * this {@code AnyHolder} object + */ + public TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_any); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java new file mode 100644 index 0000000..1897a8e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHelper.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code AnySeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/AnySeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class AnySeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/AnySeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Any[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.Any[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.AnySeqHelper.id (), "AnySeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Any[] read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.Any value[] = null; + int _len0 = istream.read_long (); + value = new org.omg.CORBA.Any[_len0]; + for (int _o1 = 0;_o1 < value.length; ++_o1) + value[_o1] = istream.read_any (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Any[] value) + { + ostream.write_long (value.length); + for (int _i0 = 0;_i0 < value.length; ++_i0) + ostream.write_any (value[_i0]); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java new file mode 100644 index 0000000..4f5dd59 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/AnySeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code AnySeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/AnySeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class AnySeqHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.Any value[] = null; + + public AnySeqHolder () + { + } + + public AnySeqHolder (org.omg.CORBA.Any[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.AnySeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.AnySeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.AnySeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java new file mode 100644 index 0000000..f32f686 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_CONTEXT.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when an operation is invoked by a client but the passed + * context does not contain the context values required by the operation.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class BAD_CONTEXT extends SystemException { + + /** + * Constructs a <code>BAD_CONTEXT</code> exception + * with a default minor code + * of 0 and a completion state of COMPLETED_NO. + */ + public BAD_CONTEXT() { + this(""); + } + + /** + * Constructs a <code>BAD_CONTEXT</code> exception + * with the specified detail message, a minor code + * of 0 and a completion state of COMPLETED_NO. + * @param s a <code>String</code> object containing a detail message + */ + public BAD_CONTEXT(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>BAD_CONTEXT</code> exception + * with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> indicating + * the completion status + */ + public BAD_CONTEXT(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>BAD_CONTEXT</code> exception + * with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> indicating + * the completion status + */ + public BAD_CONTEXT(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java new file mode 100644 index 0000000..1830428 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_INV_ORDER.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates that the caller has invoked operations in + * the wrong order. For example, it can be raised by an ORB if an + * application makes an ORB-related call without having correctly + * initialized the ORB first.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class BAD_INV_ORDER extends SystemException { + + /** + * Constructs a <code>BAD_INV_ORDER</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public BAD_INV_ORDER() { + this(""); + } + + /** + * Constructs a <code>BAD_INV_ORDER</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the String containing a detail message + */ + public BAD_INV_ORDER(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>BAD_INV_ORDER</code> exceptionBAD_INV_ORDER with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> indicating + * the completion status + */ + public BAD_INV_ORDER(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>BAD_INV_ORDER</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public BAD_INV_ORDER(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java new file mode 100644 index 0000000..44ce517 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_OPERATION.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when an object reference denotes an existing object, + * but that the object does not support the operation that was invoked.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class BAD_OPERATION extends SystemException { + + /** + * Constructs a <code>BAD_OPERATION</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public BAD_OPERATION() { + this(""); + } + + /** + * Constructs a <code>BAD_OPERATION</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public BAD_OPERATION(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>BAD_OPERATION</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> indicating + * the completion status + */ + public BAD_OPERATION(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>BAD_OPERATION</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> indicating + * the completion status + */ + public BAD_OPERATION(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java new file mode 100644 index 0000000..cdeee3b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_PARAM.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown + * when a parameter passed to a call is out of range or + * otherwise considered illegal. An ORB may raise this exception + * if null values or null pointers are passed to an operation (for + * language mappings where the concept of a null pointers or null + * values applies). BAD_PARAM can also be raised as a result of a + * client generating requests with incorrect parameters using the DII. <P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}, + * {@extLink jidlexception_minorcodes meaning of minor codes} + * </p> + * @since JDK1.2 + */ + +public final class BAD_PARAM extends SystemException { + + /** + * Constructs a <code>BAD_PARAM</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public BAD_PARAM() { + this(""); + } + + /** + * Constructs a <code>BAD_PARAM</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the String containing a detail message describing this + * exception + */ + public BAD_PARAM(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>BAD_PARAM</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public BAD_PARAM(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>BAD_PARAM</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a <code>String</code> that describes + * this particular exception. + * + * @param s the <code>String</code> containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public BAD_PARAM(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java new file mode 100644 index 0000000..91ff0f6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; +/** + * A {@code PolicyErrorCode} which would be filled in + * the {@code PolicyError} exception. + * + * @author rip-dev + */ + +public interface BAD_POLICY { + /** + * The Error code in PolicyError exception. + */ + final short value = (short) (0L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java new file mode 100644 index 0000000..532797d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A {@code PolicyErrorCode} which would be filled in + * the {@code PolicyError} exception. + * + * @author rip-dev + */ +public interface BAD_POLICY_TYPE { + /** + * The Error code in PolicyError exception. + */ + final short value = (short) (2L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java new file mode 100644 index 0000000..94ff3e2 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** +* Contains the value used to indicate a policy value that is +* incorrect for a valid policy type in a call to the +* <code>create_policy</code> method defined in the ORB class. +* +*/ +public interface BAD_POLICY_VALUE { + /** + * The value used to represent a bad policy value error + * in a <code>PolicyError</code> exception. + * @see org.omg.CORBA.PolicyError + */ + final short value = (short) (3L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java new file mode 100644 index 0000000..c21b30a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_QOS.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The <code>BAD_QOS</code> exception is raised whenever an object cannot + * support the quality of service required by an invocation parameter that + * has a quality of service semantics associated with it. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class BAD_QOS extends SystemException { + + /** + * Constructs an <code>BAD_QOS</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public BAD_QOS() { + this(""); + } + + /** + * Constructs an <code>BAD_QOS</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public BAD_QOS(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>BAD_QOS</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public BAD_QOS(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>BAD_QOS</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public BAD_QOS(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java b/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java new file mode 100644 index 0000000..076aea3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BAD_TYPECODE.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when the ORB has encountered a malformed type code + * (for example, a type code with an invalid {@code TCKind} value).<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class BAD_TYPECODE extends SystemException { + + /** + * Constructs a {@code BAD_TYPECODE} exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public BAD_TYPECODE() { + this(""); + } + + /** + * Constructs a {@code BAD_TYPECODE} exception with the specified detail, + * a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the String containing a detail message + */ + public BAD_TYPECODE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a {@code BAD_TYPECODE} exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of {@code CompletionStatus} indicating + * the completion status + */ + public BAD_TYPECODE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a {@code BAD_TYPECODE} exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of {@code CompletionStatus} indicating + * the completion status + */ + public BAD_TYPECODE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java new file mode 100644 index 0000000..f0f14e6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanHolder.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + + +/** + * The Holder for {@code Boolean}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code boolean} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code boolean} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code BooleanHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myBooleanHolder} is an instance of {@code BooleanHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myBooleanHolder.value}. + * + * @since JDK1.2 + */ +public final class BooleanHolder implements Streamable { + + /** + * The {@code boolean} value held by this {@code BooleanHolder} + * object. + */ + public boolean value; + + /** + * Constructs a new {@code BooleanHolder} object with its + * {@code value} field initialized to {@code false}. + */ + public BooleanHolder() { + } + + /** + * Constructs a new {@code BooleanHolder} object with its + * {@code value} field initialized with the given {@code boolean}. + * @param initial the {@code boolean} with which to initialize + * the {@code value} field of the newly-created + * {@code BooleanHolder} object + */ + public BooleanHolder(boolean initial) { + value = initial; + } + + /** + * Reads unmarshalled data from {@code input} and assigns it to this + * {@code BooleanHolder} object's {@code value} field. + * + * @param input the {@code InputStream} object containing + * CDR formatted data from the wire + */ + public void _read(InputStream input) { + value = input.read_boolean(); + } + + /** + * Marshals the value in this {@code BooleanHolder} object's + * {@code value} field to the output stream {@code output}. + * + * @param output the OutputStream which will contain the CDR formatted data + */ + public void _write(OutputStream output) { + output.write_boolean(value); + } + + /** + * Retrieves the {@code TypeCode} object that corresponds to the + * value held in this {@code BooleanHolder} object. + * + * @return the {@code TypeCode} for the value held + * in this {@code BooleanHolder} object + */ + public TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_boolean); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java new file mode 100644 index 0000000..c072b5f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code BooleanSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/BooleanSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class BooleanSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/BooleanSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, boolean[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static boolean[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_boolean); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.BooleanSeqHelper.id (), "BooleanSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static boolean[] read (org.omg.CORBA.portable.InputStream istream) + { + boolean value[] = null; + int _len0 = istream.read_long (); + value = new boolean[_len0]; + istream.read_boolean_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, boolean[] value) + { + ostream.write_long (value.length); + ostream.write_boolean_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java new file mode 100644 index 0000000..0c45eff --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BooleanSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code BooleanSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/BooleanSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class BooleanSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public boolean value[] = null; + + public BooleanSeqHolder () + { + } + + public BooleanSeqHolder (boolean[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.BooleanSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.BooleanSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.BooleanSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Bounds.java b/src/java.corba/share/classes/org/omg/CORBA/Bounds.java new file mode 100644 index 0000000..3c6c023 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Bounds.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A user exception thrown when a parameter is not within + * the legal bounds for the object that a method is trying + * to access. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class Bounds extends org.omg.CORBA.UserException { + + /** + * Constructs an <code>Bounds</code> with no specified detail message. + */ + public Bounds() { + super(); + } + + /** + * Constructs an <code>Bounds</code> with the specified detail message. + * + * @param reason the detail message. + */ + public Bounds(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java b/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java new file mode 100644 index 0000000..0d5d6cc --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + + +/** + * This Helper class is used to facilitate the marshalling of {@code Bounds}. + * For more information on Helper files, see + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>. + */ + +abstract public class BoundsHelper +{ + private static String _id = "IDL:omg.org/CORBA/Bounds:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Bounds that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.Bounds extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.BoundsHelper.id (), "Bounds", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Bounds read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.Bounds value = new org.omg.CORBA.Bounds (); + // read and discard the repository ID + istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Bounds value) + { + // write the repository ID + ostream.write_string (id ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java new file mode 100644 index 0000000..75c76c5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ByteHolder.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Byte}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code byte} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code octet} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code ByteHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myByteHolder} is an instance of {@code ByteHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myByteHolder.value}. + * + * @since JDK1.2 + */ +public final class ByteHolder implements Streamable { + /** + * The {@code byte} value held by this {@code ByteHolder} + * object. + */ + + public byte value; + + /** + * Constructs a new {@code ByteHolder} object with its + * {@code value} field initialized to 0. + */ + public ByteHolder() { + } + + /** + * Constructs a new {@code ByteHolder} object for the given + * {@code byte}. + * @param initial the {@code byte} with which to initialize + * the {@code value} field of the new + * {@code ByteHolder} object + */ + public ByteHolder(byte initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in + * this {@code ByteHolder} object + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire. + */ + public void _read(InputStream input) { + value = input.read_octet(); + } + + /** + * Marshals to {@code output} the value in + * this {@code ByteHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data. + */ + public void _write(OutputStream output) { + output.write_octet(value); + } + + /** + * Returns the TypeCode corresponding to the value held in + * this {@code ByteHolder} object. + * + * @return the TypeCode of the value held in + * this {@code ByteHolder} object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_octet); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java b/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java new file mode 100644 index 0000000..5b1e465 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception is raised whenever meaningful communication is not possible + * between client and server native code sets. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class CODESET_INCOMPATIBLE extends SystemException { + + /** + * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public CODESET_INCOMPATIBLE() { + this(""); + } + + /** + * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public CODESET_INCOMPATIBLE(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public CODESET_INCOMPATIBLE(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>CODESET_INCOMPATIBLE</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public CODESET_INCOMPATIBLE(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java b/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java new file mode 100644 index 0000000..b85c267 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/COMM_FAILURE.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception is raised if communication is lost while an operation + * is in progress, after the request was sent by the client, but before + * the reply from the server has been returned to the client.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class COMM_FAILURE extends SystemException { + + /** + * Constructs a <code>COMM_FAILURE</code> exception with + * a default minor code of 0 and a completion state of COMPLETED_NO. + */ + public COMM_FAILURE() { + this(""); + } + + /** + * Constructs a <code>COMM_FAILURE</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the <code>String</code> containing a detail message describing + * this exception + */ + public COMM_FAILURE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>COMM_FAILURE</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status, which must be one of + * <code>COMPLETED_YES</code>, <code>COMPLETED_NO</code>, or + * <code>COMPLETED_MAYBE</code>. + */ + public COMM_FAILURE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>COMM_FAILURE</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status, which must be one of + * <code>COMPLETED_YES</code>, <code>COMPLETED_NO</code>, or + * <code>COMPLETED_MAYBE</code>. + */ + public COMM_FAILURE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java b/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java new file mode 100644 index 0000000..dbfa9f8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A flag that can be used as the second parameter to the method + * <code>Context.get_values</code> to restrict the search scope. + * When this flag is used, it restricts the search for + * context values to this particular <code>Context</code> object + * or to the scope specified in the first parameter to + * <code>Context.get_values</code>. + * <P> + * Usage: + * <PRE> + * NVList props = myContext.get_values("_USER", + * CTX_RESTRICT_SCOPE.value, "id*"); + * </PRE> + * + * @see org.omg.CORBA.Context#get_values(String, int, String) + * @since JDK1.2 + */ +public interface CTX_RESTRICT_SCOPE { + +/** + * The field containing the <code>int</code> value of a + * <code>CTX_RESTRICT_SCOPE</code> flag. + */ + int value = 15; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java new file mode 100644 index 0000000..35ce03c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CharHolder.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Char}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code char} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code char} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code CharHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myCharHolder} is an instance of {@code CharHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myCharHolder.value}. + * + * @since JDK1.2 + */ +public final class CharHolder implements Streamable { + + /** + * The {@code char} value held by this {@code CharHolder} + * object. + */ + public char value; + + /** + * Constructs a new {@code CharHolder} object with its + * {@code value} field initialized to {@code 0}. + */ + public CharHolder() { + } + + /** + * Constructs a new {@code CharHolder} object for the given + * {@code char}. + * @param initial the {@code char} with which to initialize + * the {@code value} field of the new + * {@code CharHolder} object + */ + public CharHolder(char initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in + * this {@code CharHolder} object + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire + */ + public void _read(InputStream input) { + value = input.read_char(); + } + + /** + * Marshals to {@code output} the value in + * this {@code CharHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data + */ + public void _write(OutputStream output) { + output.write_char(value); + } + + /** + * Returns the {@code TypeCode} object corresponding + * to the value held in + * this {@code CharHolder} object. + * + * @return the TypeCode of the value held in + * this {@code CharHolder} object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_char); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java new file mode 100644 index 0000000..2a0f112 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code CharSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/CharSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class CharSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/CharSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, char[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static char[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_char); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.CharSeqHelper.id (), "CharSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static char[] read (org.omg.CORBA.portable.InputStream istream) + { + char value[] = null; + int _len0 = istream.read_long (); + value = new char[_len0]; + istream.read_char_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, char[] value) + { + ostream.write_long (value.length); + ostream.write_char_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java new file mode 100644 index 0000000..739a128 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CharSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code CharSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/CharSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class CharSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public char value[] = null; + + public CharSeqHolder () + { + } + + public CharSeqHolder (char[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.CharSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.CharSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.CharSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java new file mode 100644 index 0000000..a8ad47d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatus.java @@ -0,0 +1,142 @@ +/* + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** + * An object that indicates whether a method had completed running + * when a <code>SystemException</code> was thrown. + * <P> + * The class <code>CompletionStatus</code> + * contains three <code>CompletionStatus</code> instances, which are constants + * representing each + * possible completion status: <code>COMPLETED_MAYBE</code>, + * <code>COMPLETED_NO</code>, and <code>COMPLETED_YES</code>. + * It also contains + * three <code>int</code> members, each a constant corresponding to one of + * the <code>CompletionStatus</code> instances. These <code>int</code> + * members make it possible to use a <code>switch</code> statement. + * <P> + * The class also contains two methods: + * <UL> + * <LI><code>public int <b>value</b>()</code> -- which accesses the + * <code>value</code> field of a <code>CompletionStatus</code> object + * <LI><code>public static CompletionStatus + * <b>from_int</b>(int i)</code> -- + * for creating an instance from one of the <code>int</code> members + * </UL> + * @see org.omg.CORBA.SystemException + * @since JDK1.2 + */ + +public final class CompletionStatus implements org.omg.CORBA.portable.IDLEntity +{ +/** + * The constant indicating that a method completed running + * before a <code>SystemException</code> was thrown. + */ + public static final int _COMPLETED_YES = 0, + +/** + * The constant indicating that a method had not completed running + * when a <code>SystemException</code> was thrown. + */ + _COMPLETED_NO = 1, + +/** + * The constant indicating that it is unknown whether a method had + * completed running when a <code>SystemException</code> was thrown. + */ + _COMPLETED_MAYBE = 2; + + +/** + * An instance of <code>CompletionStatus</code> initialized with + * the constant <code>_COMPLETED_YES</code>. + */ + public static final CompletionStatus COMPLETED_YES = new CompletionStatus(_COMPLETED_YES); + +/** + * An instance of <code>CompletionStatus</code> initialized with + * the constant <code>_COMPLETED_NO</code>. + */ + public static final CompletionStatus COMPLETED_NO = new CompletionStatus(_COMPLETED_NO); + + /** + * An instance of <code>CompletionStatus</code> initialized with + * the constant <code>_COMPLETED_MAYBE</code>. + */ + public static final CompletionStatus COMPLETED_MAYBE = new CompletionStatus(_COMPLETED_MAYBE); + + /** + * Retrieves the value of this <code>CompletionStatus</code> object. + * + * @return one of the possible <code>CompletionStatus</code> values: + * <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or + * <code>_COMPLETED_MAYBE</code> + * + */ + public int value() { return _value; } + +/** + * Creates a <code>CompletionStatus</code> object from the given <code>int</code>. + * + * @param i one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or + * <code>_COMPLETED_MAYBE</code> + * + * @return one of the possible <code>CompletionStatus</code> objects + * with values: + * <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or + * <code>_COMPLETED_MAYBE</code> + * + * @exception org.omg.CORBA.BAD_PARAM if the argument given is not one of the + * <code>int</code> constants defined in <code>CompletionStatus</code> + */ + public static CompletionStatus from_int(int i) { + switch (i) { + case _COMPLETED_YES: + return COMPLETED_YES; + case _COMPLETED_NO: + return COMPLETED_NO; + case _COMPLETED_MAYBE: + return COMPLETED_MAYBE; + default: + throw new org.omg.CORBA.BAD_PARAM(); + } + } + + +/** + * Creates a <code>CompletionStatus</code> object from the given <code>int</code>. + * + * @param _value one of <code>_COMPLETED_YES</code>, <code>_COMPLETED_NO</code>, or + * <code>_COMPLETED_MAYBE</code> + * + */ + private CompletionStatus(int _value) { + this._value = _value; + } + + private int _value; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java new file mode 100644 index 0000000..1be74d5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CompletionStatusHelper.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code CompletionStatus}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/CompletionStatusHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * 03 June 1999 11:52:03 o'clock GMT+00:00 + */ + +abstract public class CompletionStatusHelper +{ + private static String _id = "IDL:omg.org/CORBA/CompletionStatus:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.CompletionStatus that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.CompletionStatus extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.CompletionStatusHelper.id (), "CompletionStatus", new String[] { "COMPLETED_YES", "COMPLETED_NO", "COMPLETED_MAYBE"} ); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.CompletionStatus read (org.omg.CORBA.portable.InputStream istream) + { + return org.omg.CORBA.CompletionStatus.from_int (istream.read_long ()); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.CompletionStatus value) + { + ostream.write_long (value.value ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Context.java b/src/java.corba/share/classes/org/omg/CORBA/Context.java new file mode 100644 index 0000000..60c7e7d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Context.java @@ -0,0 +1,244 @@ +/* + * Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object used in <code>Request</code> operations + * to specify the context object in which context strings + * must be resolved before being sent along with the request invocation. + * A <code>Context</code> object + * contains a list of properties in the form of <code>NamedValue</code> + * objects. These properties represent information + * about the client, the environment, or the circumstances of a request + * and generally are properties that might be inconvenient + * to pass as parameters. + * <P> + * A <code>Context</code> object is created by first calling the + * <code>ORB</code> method <code>get_default_context</code> + * and then calling the method <code>create_child</code> on the + * default context. + * <P> + * Each property in a <code>Context</code> object is represented by + * a <code>NamedValue</code> object. The property name is contained + * in the <code>NamedValue</code> object's <code>name</code> field, and + * the value associated with the name is contained in the <code>Any</code> + * object that was assigned to the <code>NamedValue</code> object's + * <code>value</code> field. + * <P> + * <code>Context</code> properties can represent a portion of a client's + * or application's environment that is meant to be propagated to + * (and made implicitly part of) a server's environment. + * (Examples might be a window identifier or user preference information). + * Once a server has been invoked (that is, after the properties are + * propagated), the server may query its <code>Context</code> object + * for these properties using the method <code>get_values</code>. + * + *<P> + * When an operation declaration includes a context clause, + * the stubs and skeletons will have an additional argument + * added for the context. When an operation invocation occurs, + * the ORB causes the properties that were named in the operation + * definition in IDL and + * that are present in the client's <code>Context</code> object + * to be provided in the <code>Context</code> object parameter to + * the invoked method. + * <P> + * <code>Context</code> property names (which are strings) + * typically have the form of an OMG IDL identifier or + * a series of OMG IDL identifiers separated by periods. + * A context property name pattern is either a property name + * or a property name followed by a single "*". A property + * name pattern without a trailing "*" is said to match only + * itself. A property name pattern of the form "<name>*" matches any + * property name that starts with <name> and continues with zero + * or more additional characters. + * <P> + * Property name patterns are used in the context clause of + * an operation definition and as a parameter for the + * method <code>Context.get_values</code>. + * <P> + * <code>Context</code> objects may be "chained" together to achieve a + * particular defaulting behavior. A <code>Context</code> + * object created with the method <code>create_child</code> will + * be chained to its parent (the <code>Context</code> object + * that created it), and that means that the parent will be searched + * after the child in a search for property names. + *<P> + * Properties defined in a particular <code>Context</code> object + * effectively override those properties in the next higher level. + * The scope used in a search for properties may be restricted by specifying a + * starting scope and by using the flag <code>CTX_RESTRICT_SCOPE</code> + * when invoking the method <code>get_values</code>. + * <P> + * A <code>Context</code> object may be named for purposes of specifying + * a starting search scope. + * + * @since JDK1.2 + */ + +public abstract class Context { + + /** + * Retrieves the name of this <code>Context</code> object. + * + * @return the name of this <code>Context</code> object + */ + + public abstract String context_name(); + + + /** + * Retrieves the parent of this <code>Context</code> object. + * + * @return the <code>Context</code> object that is the + * parent of this <code>Context</code> object + */ + + public abstract Context parent(); + + /** + * Creates a <code>Context</code> object with the given string as its + * name and with this <code>Context</code> object set as its parent. + * <P> + * The new <code>Context</code> object is chained into its parent + * <code>Context</code> object. This means that in a search for + * matching property names, if a match is not found in this context, + * the search will continue in the parent. If that is not successful, + * the search will continue in the grandparent, if there is one, and + * so on. + * + * + * @param child_ctx_name the <code>String</code> object to be set as + * the name of the new <code>Context</code> object + * @return the newly-created child <code>Context</code> object + * initialized with the specified name + */ + + public abstract Context create_child(String child_ctx_name); + + /** + * Creates a <code>NamedValue</code> object and adds it to this + * <code>Context</code> object. The <code>name</code> field of the + * new <code>NamedValue</code> object is set to the given string, + * the <code>value</code> field is set to the given <code>Any</code> + * object, and the <code>flags</code> field is set to zero. + * + * @param propname the name of the property to be set + * @param propvalue the <code>Any</code> object to which the + * value of the property will be set. The + * <code>Any</code> object's <code>value</code> + * field contains the value to be associated + * with the given propname; the + * <code>kind</code> field must be set to + * <code>TCKind.tk_string</code>. + */ + + public abstract void set_one_value(String propname, Any propvalue); + + /** + I Sets one or more property values in this <code>Context</code> + * object. The <code>NVList</code> supplied to this method + * contains one or more <code>NamedValue</code> objects. + * In each <code>NamedValue</code> object, + * the <code>name</code> field holds the name of the property, and + * the <code>flags</code> field must be set to zero. + * The <code>NamedValue</code> object's <code>value</code> field + * contains an <code>Any</code> object, which, in turn, contains the value + * for the property. Since the value is always a string, + * the <code>Any</code> object must have the <code>kind</code> + * field of its <code>TypeCode</code> set to <code>TCKind.tk_string</code>. + * + * @param values an NVList containing the property + * names and associated values to be set + * + * @see #get_values + * @see org.omg.CORBA.NamedValue + * @see org.omg.CORBA.Any + */ + + public abstract void set_values(NVList values); + + /** + * Deletes from this <code>Context</code> object the + * <code>NamedValue</code> object(s) whose + * <code>name</code> field matches the given property name. + * If the <code>String</code> object supplied for + * <code>propname</code> has a + * trailing wildcard character ("*"), then + * all <code>NamedValue</code> objects whose <code>name</code> + * fields match will be deleted. The search scope is always + * limited to this <code>Context</code> object. + * <P> + * If no matching property is found, an exception is returned. + * + * @param propname name of the property to be deleted + */ + + public abstract void delete_values(String propname); + + /** + * Retrieves the <code>NamedValue</code> objects whose + * <code>name</code> field matches the given name or name + * pattern. This method allows for wildcard searches, + * which means that there can be multiple matches and + * therefore multiple values returned. If the + * property is not found at the indicated level, the search + * continues up the context object tree until a match is found or + * all <code>Context</code> objects in the chain have been exhausted. + * <P> + * If no match is found, an error is returned and no property list + * is returned. + * + * @param start_scope a <code>String</code> object indicating the + * context object level at which to initiate the + * search for the specified properties + * (for example, "_USER", "_GROUP", "_SYSTEM"). Valid scope + * names are implementation-specific. If a + * scope name is omitted, the search + * begins with the specified context + * object. If the specified scope name is + * not found, an exception is returned. + * @param op_flags an operation flag. The one flag + * that may be specified is <code>CTX_RESTRICT_SCOPE</code>. + * If this flag is specified, searching is limited to the + * specified <code>start_scope</code> or this + * <code>Context</code> object. + * @param pattern the property name whose values are to + * be retrieved. <code>pattern</code> may be a + * name or a name with a + * trailing wildcard character ("*"). + * + * @return an <code>NVList</code> containing all the property values + * (in the form of <code>NamedValue</code> objects) + * whose associated property name matches the given name or + * name pattern + * @see #set_values + * @see org.omg.CORBA.NamedValue + */ + + abstract public NVList get_values(String start_scope, int op_flags, + String pattern); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/ContextList.java b/src/java.corba/share/classes/org/omg/CORBA/ContextList.java new file mode 100644 index 0000000..46cb764 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ContextList.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object containing a modifiable list of <code>String</code> objects + * that represent property names. + * This class is used in <code>Request</code> operations to + * describe the contexts that need to be resolved and sent with the + * invocation. (A context is resolved by giving a property name + * and getting back the value associated with it.) This is done + * by calling the <code>Context</code> method + * <code>get_values</code> and supplying a string from a + * <code>ContextList</code> object as the third parameter. + * The method <code>get_values</code> returns an <code>NVList</code> + * object containing the <code>NamedValue</code> objects that hold + * the value(s) identified by the given string. + * <P> + * A <code>ContextList</code> object is created by the ORB, as + * illustrated here: + * <PRE> + * ORB orb = ORB.init(args, null); + * org.omg.CORBA.ContextList ctxList = orb.create_context_list(); + * </PRE> + * The variable <code>ctxList</code> represents an empty + * <code>ContextList</code> object. Strings are added to + * the list with the method <code>add</code>, accessed + * with the method <code>item</code>, and removed with the + * method <code>remove</code>. + * + * @see Context + * @since JDK1.2 + */ + +public abstract class ContextList { + + /** + * Returns the number of <code>String</code> objects in this + * <code>ContextList</code> object. + * + * @return an <code>int</code> representing the number of + * <code>String</code>s in this <code>ContextList</code> object + */ + + public abstract int count(); + + /** + * Adds a <code>String</code> object to this <code>ContextList</code> + * object. + * + * @param ctx the <code>String</code> object to be added + */ + + public abstract void add(String ctx); + + /** + * Returns the <code>String</code> object at the given index. + * + * @param index the index of the string desired, with 0 being the + index of the first string + * @return the string at the given index + * @exception org.omg.CORBA.Bounds if the index is greater than + * or equal to the number of strings in this + * <code>ContextList</code> object + */ + + public abstract String item(int index) throws org.omg.CORBA.Bounds; + + /** + * Removes the <code>String</code> object at the given index. Note that + * the indices of all strings following the one removed are + * shifted down by one. + * + * @param index the index of the <code>String</code> object to be removed, + * with 0 designating the first string + * @exception org.omg.CORBA.Bounds if the index is greater than + * or equal to the number of <code>String</code> objects in + * this <code>ContextList</code> object + */ + + public abstract void remove(int index) throws org.omg.CORBA.Bounds; + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Current.java b/src/java.corba/share/classes/org/omg/CORBA/Current.java new file mode 100644 index 0000000..a713349 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Current.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* Interfaces derived from the {@code Current} interface enable ORB and CORBA +* services to provide access to information (context) associated with +* the thread of execution in which they are running. This information +* is accessed in a structured manner using interfaces derived from the +* {@code Current} interface defined in the CORBA module. +* +* <P>Each ORB or CORBA service that needs its own context derives an +* interface from the CORBA module's {@code Current}. Users of the +* service can obtain an instance of the appropriate {@code Current} +* interface by invoking {@code ORB::resolve_initial_references}.<P> +* +* org/omg/CORBA/Current.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl +* Saturday, July 17, 1999 12:26:21 AM PDT. +*/ + +public interface Current extends CurrentOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity +{ +} // interface Current diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java new file mode 100644 index 0000000..f838de5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentHelper.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code Current}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/CurrentHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:21 AM PDT + */ + +abstract public class CurrentHelper +{ + private static String _id = "IDL:omg.org/CORBA/Current:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Current that) + { + throw new org.omg.CORBA.MARSHAL() ; + } + + public static org.omg.CORBA.Current extract (org.omg.CORBA.Any a) + { + throw new org.omg.CORBA.MARSHAL() ; + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.CurrentHelper.id (), "Current"); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Current read (org.omg.CORBA.portable.InputStream istream) + { + throw new org.omg.CORBA.MARSHAL() ; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Current value) + { + throw new org.omg.CORBA.MARSHAL() ; + } + + public static org.omg.CORBA.Current narrow (org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof org.omg.CORBA.Current) + return (org.omg.CORBA.Current)obj; + else + throw new org.omg.CORBA.BAD_PARAM (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java new file mode 100644 index 0000000..74f16d3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentHolder.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** + * The Holder for {@code Current}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/CurrentHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:21 AM PDT + */ + +public final class CurrentHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.Current value = null; + + public CurrentHolder () + { + } + + public CurrentHolder (org.omg.CORBA.Current initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.CurrentHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.CurrentHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.CurrentHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java b/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java new file mode 100644 index 0000000..f058e66 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CurrentOperations.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The interface for {@code Current}. For more information on + * Operations interfaces, see <a href="doc-files/generatedfiles.html"> + * "Generated Files"</a>. + * + * org/omg/CORBA/CurrentOperations.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:21 AM PDT. + */ + +public interface CurrentOperations +{ +} // interface CurrentOperations diff --git a/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java b/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java new file mode 100644 index 0000000..7937391 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/CustomMarshal.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.DataOutputStream; +import org.omg.CORBA.DataInputStream; + +/** + * An abstract value type that is meant to + * be used by the ORB, not the user. Semantically it is treated + * as a custom value type's implicit base class, although the custom + * valuetype does not actually inherit it in IDL. The implementer + * of a custom value type shall provide an implementation of the + * {@code CustomMarshal} operations. The manner in which this is done is + * specified in the IDL to Java langauge mapping. Each custom + * marshaled value type shall have its own implementation. + * @see DataInputStream + */ +public interface CustomMarshal { + /** + * Marshal method has to be implemented by the Customized Marshal class. + * This is the method invoked for Marshalling. + * + * @param os a DataOutputStream + */ + void marshal(DataOutputStream os); + /** + * Unmarshal method has to be implemented by the Customized Marshal class. + * This is the method invoked for Unmarshalling. + * + * @param is a DataInputStream + */ + void unmarshal(DataInputStream is); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java b/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java new file mode 100644 index 0000000..3a58ea7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DATA_CONVERSION.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception is raised if an ORB cannot convert the representation + * of data as marshaled into its native representation or vice-versa. + * For example, DATA_CONVERSION can be raised if wide character codeset + * conversion fails, or if an ORB cannot convert floating point values + * between different representations.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class DATA_CONVERSION extends SystemException { + + /** + * Constructs a <code>DATA_CONVERSION</code> exception with a default minor code + * of 0 and a completion state of COMPLETED_NO. + */ + public DATA_CONVERSION() { + this(""); + } + + /** + * Constructs a <code>DATA_CONVERSION</code> exception with the specified detail. + * @param s the String containing a detail message + */ + public DATA_CONVERSION(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>DATA_CONVERSION</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public DATA_CONVERSION(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>DATA_CONVERSION</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public DATA_CONVERSION(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java b/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java new file mode 100644 index 0000000..d90792a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DataInputStream.java @@ -0,0 +1,344 @@ +/* + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** Defines the methods used to read primitive data types from input streams +* for unmarshaling custom value types. This interface is used by user +* written custom unmarshaling code for custom value types. +* @see org.omg.CORBA.DataOutputStream +* @see org.omg.CORBA.CustomMarshal +*/ +public interface DataInputStream extends org.omg.CORBA.portable.ValueBase +{ + /** Reads an IDL <code>Any</code> value from the input stream. + * @return the <code>Any</code> read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + org.omg.CORBA.Any read_any (); + + /** Reads an IDL boolean value from the input stream. + * @return the boolean read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + boolean read_boolean (); + + /** Reads an IDL character value from the input stream. + * @return the character read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + char read_char (); + + /** Reads an IDL wide character value from the input stream. + * @return the wide character read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + char read_wchar (); + + /** Reads an IDL octet value from the input stream. + * @return the octet value read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + byte read_octet (); + + /** Reads an IDL short from the input stream. + * @return the short read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + short read_short (); + + /** Reads an IDL unsigned short from the input stream. + * @return the unsigned short read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + short read_ushort (); + + /** Reads an IDL long from the input stream. + * @return the long read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + int read_long (); + + /** Reads an IDL unsigned long from the input stream. + * @return the unsigned long read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + int read_ulong (); + + /** Reads an IDL long long from the input stream. + * @return the long long read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + long read_longlong (); + + /** Reads an unsigned IDL long long from the input stream. + * @return the unsigned long long read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + long read_ulonglong (); + + /** Reads an IDL float from the input stream. + * @return the float read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + float read_float (); + + /** Reads an IDL double from the input stream. + * @return the double read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + double read_double (); + // read_longdouble not supported by IDL/Java mapping + + /** Reads an IDL string from the input stream. + * @return the string read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + String read_string (); + + /** Reads an IDL wide string from the input stream. + * @return the wide string read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + String read_wstring (); + + /** Reads an IDL CORBA::Object from the input stream. + * @return the CORBA::Object read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + org.omg.CORBA.Object read_Object (); + + /** Reads an IDL Abstract interface from the input stream. + * @return the Abstract interface read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + java.lang.Object read_Abstract (); + + /** Reads an IDL value type from the input stream. + * @return the value type read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + java.io.Serializable read_Value (); + + /** Reads an IDL typecode from the input stream. + * @return the typecode read. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + org.omg.CORBA.TypeCode read_TypeCode (); + + /** Reads array of IDL Anys from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_any_array (org.omg.CORBA.AnySeqHolder seq, int offset, int length); + + /** Reads array of IDL booleans from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_boolean_array (org.omg.CORBA.BooleanSeqHolder seq, int offset, int length); + + /** Reads array of IDL characters from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_char_array (org.omg.CORBA.CharSeqHolder seq, int offset, int length); + + /** Reads array of IDL wide characters from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_wchar_array (org.omg.CORBA.WCharSeqHolder seq, int offset, int length); + + /** Reads array of IDL octets from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_octet_array (org.omg.CORBA.OctetSeqHolder seq, int offset, int length); + + /** Reads array of IDL shorts from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_short_array (org.omg.CORBA.ShortSeqHolder seq, int offset, int length); + + /** Reads array of IDL unsigned shorts from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_ushort_array (org.omg.CORBA.UShortSeqHolder seq, int offset, int length); + + /** Reads array of IDL longs from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_long_array (org.omg.CORBA.LongSeqHolder seq, int offset, int length); + + /** Reads array of IDL unsigned longs from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_ulong_array (org.omg.CORBA.ULongSeqHolder seq, int offset, int length); + + /** Reads array of IDL unsigned long longs from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_ulonglong_array (org.omg.CORBA.ULongLongSeqHolder seq, int offset, int length); + + /** Reads array of IDL long longs from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_longlong_array (org.omg.CORBA.LongLongSeqHolder seq, int offset, int length); + + /** Reads array of IDL floats from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_float_array (org.omg.CORBA.FloatSeqHolder seq, int offset, int length); + + /** Reads array of IDL doubles from offset for length elements from the + * input stream. + * @param seq The out parameter holder for the array to be read. + * @param offset The index into seq of the first element to read from the + * input stream. + * @param length The number of elements to read from the input stream. + * @throws org.omg.CORBA.MARSHAL + * If an inconsistency is detected, including not having registered + * a streaming policy, then the standard system exception MARSHAL is raised. + */ + void read_double_array (org.omg.CORBA.DoubleSeqHolder seq, int offset, int length); +} // interface DataInputStream diff --git a/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java new file mode 100644 index 0000000..c6ea054 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DataOutputStream.java @@ -0,0 +1,283 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** Defines the methods used to write primitive data types to output streams +* for marshalling custom value types. This interface is used by user +* written custom marshalling code for custom value types. +* @see org.omg.CORBA.DataInputStream +* @see org.omg.CORBA.CustomMarshal +*/ +public interface DataOutputStream extends org.omg.CORBA.portable.ValueBase +{ + /** + * Writes the Any value to the output stream. + * @param value The value to be written. + */ + void write_any (org.omg.CORBA.Any value); + + /** + * Writes the boolean value to the output stream. + * @param value The value to be written. + */ + void write_boolean (boolean value); + + /** + * Writes the IDL character value to the output stream. + * @param value The value to be written. + */ + void write_char (char value); + + /** + * Writes the IDL wide character value to the output stream. + * @param value The value to be written. + */ + void write_wchar (char value); + + /** + * Writes the IDL octet value (represented as a Java byte) to the output stream. + * @param value The value to be written. + */ + void write_octet (byte value); + + /** + * Writes the IDL short value to the output stream. + * @param value The value to be written. + */ + void write_short (short value); + + /** + * Writes the IDL unsigned short value (represented as a Java short + * value) to the output stream. + * @param value The value to be written. + */ + void write_ushort (short value); + + /** + * Writes the IDL long value (represented as a Java int) to the output stream. + * @param value The value to be written. + */ + void write_long (int value); + + /** + * Writes the IDL unsigned long value (represented as a Java int) to the output stream. + * @param value The value to be written. + */ + void write_ulong (int value); + + /** + * Writes the IDL long long value (represented as a Java long) to the output stream. + * @param value The value to be written. + */ + void write_longlong (long value); + + /** + * Writes the IDL unsigned long long value (represented as a Java long) + * to the output stream. + * @param value The value to be written. + */ + void write_ulonglong (long value); + + /** + * Writes the IDL float value to the output stream. + * @param value The value to be written. + */ + void write_float (float value); + + /** + * Writes the IDL double value to the output stream. + * @param value The value to be written. + */ + void write_double (double value); + + // write_longdouble not supported by IDL/Java mapping + + /** + * Writes the IDL string value to the output stream. + * @param value The value to be written. + */ + void write_string (String value); + + /** + * Writes the IDL wide string value (represented as a Java String) to the output stream. + * @param value The value to be written. + */ + void write_wstring (String value); + + /** + * Writes the IDL CORBA::Object value to the output stream. + * @param value The value to be written. + */ + void write_Object (org.omg.CORBA.Object value); + + /** + * Writes the IDL Abstract interface type to the output stream. + * @param value The value to be written. + */ + void write_Abstract (java.lang.Object value); + + /** + * Writes the IDL value type value to the output stream. + * @param value The value to be written. + */ + void write_Value (java.io.Serializable value); + + /** + * Writes the typecode to the output stream. + * @param value The value to be written. + */ + void write_TypeCode (org.omg.CORBA.TypeCode value); + + /** + * Writes the array of IDL Anys from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_any_array (org.omg.CORBA.Any[] seq, int offset, int length); + + /** + * Writes the array of IDL booleans from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_boolean_array (boolean[] seq, int offset, int length); + + /** + * Writes the array of IDL characters from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_char_array (char[] seq, int offset, int length); + + /** + * Writes the array of IDL wide characters from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_wchar_array (char[] seq, int offset, int length); + + /** + * Writes the array of IDL octets from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_octet_array (byte[] seq, int offset, int length); + + /** + * Writes the array of IDL shorts from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_short_array (short[] seq, int offset, int length); + + /** + * Writes the array of IDL unsigned shorts (represented as Java shorts) + * from offset for length elements to the output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_ushort_array (short[] seq, int offset, int length); + + /** + * Writes the array of IDL longs from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_long_array (int[] seq, int offset, int length); + + /** + * Writes the array of IDL unsigned longs (represented as Java ints) + * from offset for length elements to the output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_ulong_array (int[] seq, int offset, int length); + + /** + * Writes the array of IDL unsigned long longs (represented as Java longs) + * from offset for length elements to the output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_ulonglong_array (long[] seq, int offset, int length); + + /** + * Writes the array of IDL long longs from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_longlong_array (long[] seq, int offset, int length); + + /** + * Writes the array of IDL floats from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_float_array (float[] seq, int offset, int length); + + /** + * Writes the array of IDL doubles from offset for length elements to the + * output stream. + * @param seq The array to be written. + * @param offset The index into seq of the first element to write to the + * output stream. + * @param length The number of elements to write to the output stream. + */ + void write_double_array (double[] seq, int offset, int length); +} // interface DataOutputStream diff --git a/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java new file mode 100644 index 0000000..5abed1d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKind.java @@ -0,0 +1,501 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * File: ./org/omg/CORBA/DefinitionKind.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** +* The class that provides the constants used to identify the type of an +* Interface Repository object. This class contains two kinds of constants, +* those that are an <code>int</code> and those that are an instance of the class +* <code>DefinitionKind</code>. This class provides the method +* <code>from_int</code>, which given one +* of the <code>int</code> constants, creates the corresponding +* <code>DefinitionKind</code> instance. It also provides the method +* <code>value</code>, which returns the <code>int</code> constant that +* is the value for a <code>DefinitionKind</code> instance. +* +* @see IRObject +*/ + +public class DefinitionKind implements org.omg.CORBA.portable.IDLEntity { + +/** + * The constant that indicates that an Interface Repository object + * does not have a definition kind. + */ + public static final int _dk_none = 0, + +/** + * The constant that indicates that the type of an Interface Repository object + * may be any type. + */ + _dk_all = 1, + +/** + * The constant that indicates that an Interface Repository object is an + * attribute. + */ + _dk_Attribute = 2, + +/** + * The constant that indicates that an Interface Repository object is a + * constant. + */ + _dk_Constant = 3, + +/** + * The constant that indicates that an Interface Repository object is an + * exception. + */ + + _dk_Exception = 4, + +/** + * The constant that indicates that an Interface Repository object is an + * interface. + */ + + _dk_Interface = 5, + +/** + * The constant that indicates that an Interface Repository object is a + * module. + */ + + _dk_Module = 6, + +/** + * The constant that indicates that an Interface Repository object is an + * operation. + */ + + _dk_Operation = 7, + +/** + * The constant that indicates that an Interface Repository object is a + * Typedef. + */ + + _dk_Typedef = 8, + +/** + * The constant that indicates that an Interface Repository object is an + * Alias. + */ + + _dk_Alias = 9, + +/** + * The constant that indicates that an Interface Repository object is a + * Struct. + */ + + _dk_Struct = 10, + +/** + * The constant that indicates that an Interface Repository object is a + * Union. + */ + + _dk_Union = 11, + +/** + * The constant that indicates that an Interface Repository object is an + * Enum. + */ + + _dk_Enum = 12, + +/** + * The constant that indicates that an Interface Repository object is a + * Primitive. + */ + + _dk_Primitive = 13, + +/** + * The constant that indicates that an Interface Repository object is a + * String. + */ + + _dk_String = 14, + +/** + * The constant that indicates that an Interface Repository object is a + * Sequence. + */ + + _dk_Sequence = 15, + +/** + * The constant that indicates that an Interface Repository object is an + * Array. + */ + + _dk_Array = 16, + +/** + * The constant that indicates that an Interface Repository object is a + * Repository. + */ + + _dk_Repository = 17, + +/** + * The constant that indicates that an Interface Repository object is a + * Wstring. + */ + + _dk_Wstring = 18, + +/** + * The constant that indicates that an Interface Repository object is of type + * Fixed. + */ + + _dk_Fixed = 19, + +/** + * The constant that indicates that an Interface Repository object is a + * Value. + */ + + _dk_Value = 20, + +/** + * The constant that indicates that an Interface Repository object is a + * ValueBox. + */ + + _dk_ValueBox = 21, + +/** + * The constant that indicates that an Interface Repository object is a + * ValueMember. + */ + + _dk_ValueMember = 22, + +/** + * The constant that indicates that an Interface Repository object is of type + * Native. + */ + + _dk_Native = 23, + +/** + * The constant that indicates that an Interface Repository object + * is representing an abstract interface. + */ + _dk_AbstractInterface = 24; + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object has no definition kind. + */ + + public static final DefinitionKind dk_none = new DefinitionKind(_dk_none); + + /** + * The wildcard <code>DefinitionKind</code> constant, useful + * in all occasions where any + * <code>DefinitionKind</code> is appropriate. The Container's + * <code>contents</code> method + * makes use of this constant to return all contained definitions of any kind. + */ + + public static final DefinitionKind dk_all = new DefinitionKind(_dk_all); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Attribute. + */ + + public static final DefinitionKind dk_Attribute = new DefinitionKind(_dk_Attribute); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a constant. + */ + + public static final DefinitionKind dk_Constant = new DefinitionKind(_dk_Constant); + + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Exception. + */ + + public static final DefinitionKind dk_Exception = new DefinitionKind(_dk_Exception); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Interface. + */ + + public static final DefinitionKind dk_Interface = new DefinitionKind(_dk_Interface); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Module. + */ + + public static final DefinitionKind dk_Module = new DefinitionKind(_dk_Module); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Operation. + */ + + public static final DefinitionKind dk_Operation = new DefinitionKind(_dk_Operation); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Typedef. + */ + + public static final DefinitionKind dk_Typedef = new DefinitionKind(_dk_Typedef); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Alias. + */ + + public static final DefinitionKind dk_Alias = new DefinitionKind(_dk_Alias); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Struct. + */ + + public static final DefinitionKind dk_Struct = new DefinitionKind(_dk_Struct); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Union. + */ + + public static final DefinitionKind dk_Union = new DefinitionKind(_dk_Union); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Enum. + */ + + public static final DefinitionKind dk_Enum = new DefinitionKind(_dk_Enum); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Primitive. + */ + + public static final DefinitionKind dk_Primitive = new DefinitionKind(_dk_Primitive); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a String. + */ + + public static final DefinitionKind dk_String = new DefinitionKind(_dk_String); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Sequence. + */ + + public static final DefinitionKind dk_Sequence = new DefinitionKind(_dk_Sequence); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is an Array. + */ + + public static final DefinitionKind dk_Array = new DefinitionKind(_dk_Array); + + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Repository. + */ + + public static final DefinitionKind dk_Repository = new DefinitionKind(_dk_Repository); + + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Wstring. + */ + + public static final DefinitionKind dk_Wstring = new DefinitionKind(_dk_Wstring); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Fixed value. + */ + + public static final DefinitionKind dk_Fixed = new DefinitionKind(_dk_Fixed); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Value. + */ + + public static final DefinitionKind dk_Value = new DefinitionKind(_dk_Value); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a ValueBox. + */ + + public static final DefinitionKind dk_ValueBox = new DefinitionKind(_dk_ValueBox); + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a ValueMember. + */ + + public static final DefinitionKind dk_ValueMember = new DefinitionKind(_dk_ValueMember); + + +/** + * The static instance of <code>DefinitionKind</code> indicating that an + * Interface Repository object is a Native value. + */ + + public static final DefinitionKind dk_Native = new DefinitionKind(_dk_Native); + + +/** +* The static instance of <code>DefinitionKind</code> indicating that an +* Interface Repository object represents an abstract interface. +*/ + public static final DefinitionKind dk_AbstractInterface = new DefinitionKind(_dk_AbstractInterface); + + + /** + * Returns the <code>int</code> constant identifying the type of an IR object. + * @return the <code>int</code> constant from the class + * <code>DefinitionKind</code> that is the value of this + * <code>DefinitionKind</code> instance + */ + + public int value() { + return _value; + } + + + /** + * Creates a <code>DefinitionKind</code> instance corresponding to the given code +. + * @param i one of the <code>int</code> constants from the class + * <code>DefinitionKind</code> + * @return the <code>DefinitionKind</code> instance corresponding + * to the given code + * @throws org.omg.CORBA.BAD_PARAM if the given parameter is not + one + * of the <code>int</code> constants from the class + * <code>DefinitionKind</code> + */ + + public static DefinitionKind from_int(int i) { + switch (i) { + case _dk_none: + return dk_none; + case _dk_all: + return dk_all; + case _dk_Attribute: + return dk_Attribute; + case _dk_Constant: + return dk_Constant; + case _dk_Exception: + return dk_Exception; + case _dk_Interface: + return dk_Interface; + case _dk_Module: + return dk_Module; + case _dk_Operation: + return dk_Operation; + case _dk_Typedef: + return dk_Typedef; + case _dk_Alias: + return dk_Alias; + case _dk_Struct: + return dk_Struct; + case _dk_Union: + return dk_Union; + case _dk_Enum: + return dk_Enum; + case _dk_Primitive: + return dk_Primitive; + case _dk_String: + return dk_String; + case _dk_Sequence: + return dk_Sequence; + case _dk_Array: + return dk_Array; + case _dk_Repository: + return dk_Repository; + case _dk_Wstring: + return dk_Wstring; + case _dk_Fixed: + return dk_Fixed; + case _dk_Value: + return dk_Value; + case _dk_ValueBox: + return dk_ValueBox; + case _dk_ValueMember: + return dk_ValueMember; + case _dk_Native: + return dk_Native; + default: + throw new org.omg.CORBA.BAD_PARAM(); + } + } + + /** + * Constructs a <code>DefinitionKind</code> object with its <code>_value</code> + * field initialized with the given value. + * @param _value one of the <code>int</code> constants defined in the + * class <code>DefinitionKind</code> + */ + + protected DefinitionKind(int _value){ + this._value = _value; + } + + /** + * The field that holds a value for a <code>DefinitionKind</code> object. + * @serial + */ + + private int _value; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java new file mode 100644 index 0000000..945ceeb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DefinitionKindHelper.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code DefinitionKind}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/DefinitionKindHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ir.idl + * 03 June 1999 11:33:43 o'clock GMT+00:00 + */ + +abstract public class DefinitionKindHelper +{ + private static String _id = "IDL:omg.org/CORBA/DefinitionKind:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.DefinitionKind that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.DefinitionKind extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.DefinitionKindHelper.id (), "DefinitionKind", new String[] { "dk_none", "dk_all", "dk_Attribute", "dk_Constant", "dk_Exception", "dk_Interface", "dk_Module", "dk_Operation", "dk_Typedef", "dk_Alias", "dk_Struct", "dk_Union", "dk_Enum", "dk_Primitive", "dk_String", "dk_Sequence", "dk_Array", "dk_Repository", "dk_Wstring", "dk_Fixed", "dk_Value", "dk_ValueBox", "dk_ValueMember", "dk_Native"} ); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.DefinitionKind read (org.omg.CORBA.portable.InputStream istream) + { + return org.omg.CORBA.DefinitionKind.from_int (istream.read_long ()); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.DefinitionKind value) + { + ostream.write_long (value.value ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java b/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java new file mode 100644 index 0000000..2bdc89f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DomainManager.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Provides mechanisms for establishing and navigating relationships to + * superior and subordinate domains, as well as for creating and accessing + * policies. The {@code DomainManager} has associated with it the policy + * objects for a particular domain. + * The domain manager also records the membership of + * the domain and provides the means to add and remove members. The domain + * manager is itself a member of a domain, possibly the domain it manages. + * The domain manager provides mechanisms for establishing and navigating + * relationships to superior and subordinate domains and + * creating and accessing policies. + */ + +public interface DomainManager extends DomainManagerOperations, + org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity +{ +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java b/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java new file mode 100644 index 0000000..4324b1b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DomainManagerOperations.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Provides the {@code DomainManager} with the means to access policies. + * <P> + * The {@code DomainManager} has associated with it the policy objects for a + * particular domain. The domain manager also records the membership of + * the domain and provides the means to add and remove members. The domain + * manager is itself a member of a domain, possibly the domain it manages. + * The domain manager provides mechanisms for establishing and navigating + * relationships to superior and subordinate domains and + * creating and accessing policies. + */ + +public interface DomainManagerOperations +{ + /** + * This returns the policy of the specified type for objects in + * this domain. The types of policies available are domain specific. + * See the CORBA specification for a list of standard ORB policies. + * + * @param policy_type Type of policy to request + */ + public org.omg.CORBA.Policy get_domain_policy(int policy_type); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java new file mode 100644 index 0000000..3d1cd73 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleHolder.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Double}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code double} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code double} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code DoubleHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myDoubleHolder} is an instance of {@code DoubleHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myDoubleHolder.value}. + * + * @since JDK1.2 + */ +public final class DoubleHolder implements Streamable { + + /** + * The {@code double} value held by this {@code DoubleHolder} + * object. + */ + + public double value; + + /** + * Constructs a new {@code DoubleHolder} object with its + * {@code value} field initialized to 0.0. + */ + public DoubleHolder() { + } + + /** + * Constructs a new {@code DoubleHolder} object for the given + * {@code double}. + * @param initial the {@code double} with which to initialize + * the {@code value} field of the new + * {@code DoubleHolder} object + */ + public DoubleHolder(double initial) { + value = initial; + } + + /** + * Read a double value from the input stream and store it in the + * value member. + * + * @param input the {@code InputStream} to read from. + */ + public void _read(InputStream input) { + value = input.read_double(); + } + + /** + * Write the double value stored in this holder to an + * {@code OutputStream}. + * + * @param output the {@code OutputStream} to write into. + */ + public void _write(OutputStream output) { + output.write_double(value); + } + + /** + * Return the {@code TypeCode} of this holder object. + * + * @return the {@code TypeCode} object. + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_double); + } + + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java new file mode 100644 index 0000000..5c63c49 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code DoubleSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/DoubleSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:37 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class DoubleSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/DoubleSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, double[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static double[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_double); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.DoubleSeqHelper.id (), "DoubleSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static double[] read (org.omg.CORBA.portable.InputStream istream) + { + double value[] = null; + int _len0 = istream.read_long (); + value = new double[_len0]; + istream.read_double_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, double[] value) + { + ostream.write_long (value.length); + ostream.write_double_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java new file mode 100644 index 0000000..d71651c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DoubleSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code DoubleSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/DoubleSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:37 o'clock GMT+00:00 + */ + +public final class DoubleSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public double value[] = null; + + public DoubleSeqHolder () + { + } + + public DoubleSeqHolder (double[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.DoubleSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.DoubleSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.DoubleSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAny.java b/src/java.corba/share/classes/org/omg/CORBA/DynAny.java new file mode 100644 index 0000000..0d45b25 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAny.java @@ -0,0 +1,732 @@ +/* + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + + +/** + * Enables {@code org.omg.CORBA.Any} values to be dynamically + * interpreted (traversed) and + * constructed. A {@code DynAny} object is associated with a data value + * which may correspond to a copy of the value inserted into an {@code Any}. + * The {@code DynAny} APIs enable traversal of the data value associated with an + * Any at runtime and extraction of the primitive constituents of the + * data value. + * @deprecated Use the new <a href="../DynamicAny/DynAny.html">DynAny</a> instead + */ +@Deprecated +public interface DynAny extends org.omg.CORBA.Object +{ + /** + * Returns the {@code TypeCode} of the object inserted into + * this {@code DynAny}. + * + * @return the {@code TypeCode} object. + */ + public org.omg.CORBA.TypeCode type() ; + + /** + * Copy the contents from one Dynamic Any into another. + * + * @param dyn_any the {@code DynAny} object whose contents + * are assigned to this {@code DynAny}. + * @throws org.omg.CORBA.DynAnyPackage.Invalid if the source + * {@code DynAny} is invalid + */ + public void assign(org.omg.CORBA.DynAny dyn_any) + throws org.omg.CORBA.DynAnyPackage.Invalid; + + /** + * Make a {@code DynAny} object from an {@code Any} + * object. + * + * @param value the {@code Any} object. + * @throws org.omg.CORBA.DynAnyPackage.Invalid if the source + * {@code Any} object is empty or bad + */ + public void from_any(org.omg.CORBA.Any value) + throws org.omg.CORBA.DynAnyPackage.Invalid; + + /** + * Convert a {@code DynAny} object to an {@code Any} + * object. + * + * @return the {@code Any} object. + * @throws org.omg.CORBA.DynAnyPackage.Invalid if this + * {@code DynAny} is empty or bad. + * created or does not contain a meaningful value + */ + public org.omg.CORBA.Any to_any() + throws org.omg.CORBA.DynAnyPackage.Invalid; + + /** + * Destroys this {@code DynAny} object and frees any resources + * used to represent the data value associated with it. This method + * also destroys all {@code DynAny} objects obtained from it. + * <p> + * Destruction of {@code DynAny} objects should be handled with + * care, taking into account issues dealing with the representation of + * data values associated with {@code DynAny} objects. A programmer + * who wants to destroy a {@code DynAny} object but still be able + * to manipulate some component of the data value associated with it, + * should first create a {@code DynAny} object for the component + * and then make a copy of the created {@code DynAny} object. + */ + public void destroy() ; + + /** + * Clones this {@code DynAny} object. + * + * @return a copy of this {@code DynAny} object + */ + public org.omg.CORBA.DynAny copy() ; + + /** + * Inserts the given {@code boolean} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code boolean} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_boolean(boolean value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code byte} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code byte} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_octet(byte value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code char} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code char} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_char(char value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code short} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code short} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_short(short value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code short} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code short} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_ushort(short value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code int} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code int} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_long(int value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code int} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code int} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_ulong(int value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code float} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code float} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_float(float value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code double} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code double} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_double(double value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code String} object as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code String} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_string(String value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code org.omg.CORBA.Object} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code org.omg.CORBA.Object} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_reference(org.omg.CORBA.Object value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code org.omg.CORBA.TypeCode} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code org.omg.CORBA.TypeCode} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_typecode(org.omg.CORBA.TypeCode value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code long} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code long} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_longlong(long value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code long} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code long} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_ulonglong(long value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code char} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code char} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_wchar(char value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code String} as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code String} to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_wstring(String value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Inserts the given {@code org.omg.CORBA.Any} object as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code org.omg.CORBA.Any} object to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_any(org.omg.CORBA.Any value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + // orbos 98-01-18: Objects By Value -- begin + + /** + * Inserts the given {@code java.io.Serializable} object as the value for this + * {@code DynAny} object. + * + * <p> If this method is called on a constructed {@code DynAny} + * object, it initializes the next component of the constructed data + * value associated with this {@code DynAny} object. + * + * @param value the {@code java.io.Serializable} object to insert into this + * {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue + * if the value inserted is not consistent with the type + * of the accessed component in this {@code DynAny} object + */ + public void insert_val(java.io.Serializable value) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; + + /** + * Retrieves the {@code java.io.Serializable} object contained + * in this {@code DynAny} object. + * + * @return the {@code java.io.Serializable} object that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code java.io.Serializable} object + */ + public java.io.Serializable get_val() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + // orbos 98-01-18: Objects By Value -- end + + /** + * Retrieves the {@code boolean} contained + * in this {@code DynAny} object. + * + * @return the {@code boolean} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code boolean} + */ + public boolean get_boolean() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code byte} contained + * in this {@code DynAny} object. + * + * @return the {@code byte} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code byte} + */ + public byte get_octet() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + /** + * Retrieves the {@code char} contained + * in this {@code DynAny} object. + * + * @return the {@code char} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code char} + */ + public char get_char() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code short} contained + * in this {@code DynAny} object. + * + * @return the {@code short} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code short} + */ + public short get_short() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code short} contained + * in this {@code DynAny} object. + * + * @return the {@code short} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code short} + */ + public short get_ushort() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code int} contained + * in this {@code DynAny} object. + * + * @return the {@code int} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code int} + */ + public int get_long() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code int} contained + * in this {@code DynAny} object. + * + * @return the {@code int} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code int} + */ + public int get_ulong() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code float} contained + * in this {@code DynAny} object. + * + * @return the {@code float} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code float} + */ + public float get_float() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code double} contained + * in this {@code DynAny} object. + * + * @return the {@code double} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code double} + */ + public double get_double() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code String} contained + * in this {@code DynAny} object. + * + * @return the {@code String} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code String} + */ + public String get_string() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code org.omg.CORBA.Other} contained + * in this {@code DynAny} object. + * + * @return the {@code org.omg.CORBA.Other} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for an {@code org.omg.CORBA.Other} + */ + public org.omg.CORBA.Object get_reference() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code org.omg.CORBA.TypeCode} contained + * in this {@code DynAny} object. + * + * @return the {@code org.omg.CORBA.TypeCode} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code org.omg.CORBA.TypeCode} + */ + public org.omg.CORBA.TypeCode get_typecode() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code long} contained + * in this {@code DynAny} object. + * + * @return the {@code long} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code long} + */ + public long get_longlong() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code long} contained + * in this {@code DynAny} object. + * + * @return the {@code long} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code long} + */ + public long get_ulonglong() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code char} contained + * in this {@code DynAny} object. + * + * @return the {@code char} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code char} + */ + public char get_wchar() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code String} contained + * in this {@code DynAny} object. + * + * @return the {@code String} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for a {@code String} + */ + public String get_wstring() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + + /** + * Retrieves the {@code org.omg.CORBA.Any} contained + * in this {@code DynAny} object. + * + * @return the {@code org.omg.CORBA.Any} that is the + * value for this {@code DynAny} object + * @throws org.omg.CORBA.DynAnyPackage.TypeMismatch + * if the type code of the accessed component in this + * {@code DynAny} object is not equivalent to + * the type code for an {@code org.omg.CORBA.Any} + */ + public org.omg.CORBA.Any get_any() + throws org.omg.CORBA.DynAnyPackage.TypeMismatch; + + /** + * Returns a {@code DynAny} object reference that can + * be used to get/set the value of the component currently accessed. + * The appropriate {@code insert} method + * can be called on the resulting {@code DynAny} object + * to initialize the component. + * The appropriate {@code get} method + * can be called on the resulting {@code DynAny} object + * to extract the value of the component. + * + * @return a {@code DynAny} object reference that can be + * used to retrieve or set the value of the component currently + * accessed + */ + public org.omg.CORBA.DynAny current_component() ; + + /** + * Moves to the next component of this {@code DynAny} object. + * This method is used for iterating through the components of + * a constructed type, effectively moving a pointer from one + * component to the next. The pointer starts out on the first + * component when a {@code DynAny} object is created. + * + * @return {@code true} if the pointer points to a component; + * {@code false} if there are no more components or this + * {@code DynAny} is associated with a basic type rather than + * a constructed type + */ + public boolean next() ; + + /** + * Moves the internal pointer to the given index. Logically, this method + * sets a new offset for this pointer. + * + * @param index an {@code int} indicating the position to which + * the pointer should move. The first position is 0. + * @return {@code true} if the pointer points to a component; + * {@code false} if there is no component at the designated + * index. If this {@code DynAny} object is associated with a + * basic type, this method returns {@code false} for any index + * other than 0. + */ + public boolean seek(int index) ; + + /** + * Moves the internal pointer to the first component. + */ + public void rewind() ; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java new file mode 100644 index 0000000..9b87ab5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.DynAnyPackage; + +/** + * Invalid is thrown by dynamic any operations when a bad + * <code>DynAny</code> or <code>Any</code> is passed as a parameter. + */ +public final class Invalid + extends org.omg.CORBA.UserException { + + /** + * Constructs an <code>Invalid</code> object. + */ + public Invalid() { + super(); + } + + /** + * Constructs an <code>Invalid</code> object. + * @param reason a <code>String</code> giving more information + * regarding the bad parameter passed to a dynamic any operation. + */ + public Invalid(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java new file mode 100644 index 0000000..399eab5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.DynAnyPackage; + +/** + * The InvalidSeq exception is thrown by all operations on dynamic + * anys that take a sequence (Java array) as an argument, when that + * sequence is invalid. + */ +public final class InvalidSeq + extends org.omg.CORBA.UserException { + + /** + * Constructs an <code>InvalidSeq</code> object. + */ + public InvalidSeq() { + super(); + } + + /** + * Constructs an <code>InvalidSeq</code> object. + * @param reason a <code>String</code> giving more information + * regarding the exception. + */ + public InvalidSeq(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java new file mode 100644 index 0000000..ea42c83 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.DynAnyPackage; + +/** + * @author unattributed + * + * Dynamic Any insert operations raise the <code>InvalidValue</code> + * exception if the value inserted is not consistent with the type + * of the accessed component in the <code>DynAny</code> object. + */ +public final class InvalidValue + extends org.omg.CORBA.UserException { + + /** + * Constructs an <code>InvalidValue</code> object. + */ + public InvalidValue() { + super(); + } + + /** + * Constructs an <code>InvalidValue</code> object. + * @param reason a <code>String</code> giving more information + * regarding the exception. + */ + public InvalidValue(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java new file mode 100644 index 0000000..698be59 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.DynAnyPackage; + +/** + * TypeMismatch is thrown by dynamic any accessor methods when + * type of the actual contents do not match what is trying to be + * accessed. + */ +public final class TypeMismatch + extends org.omg.CORBA.UserException { + + /** + * Constructs a <code>TypeMismatch</code> object. + */ + public TypeMismatch() { + super(); + } + + /** + * Constructs a <code>TypeMismatch</code> object. + * @param reason a <code>String</code> giving more information + * regarding the exception. + */ + public TypeMismatch(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html new file mode 100644 index 0000000..0908e64 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynAnyPackage/package.html @@ -0,0 +1,42 @@ + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. +--> +</head> +<body bgcolor="white"> + +Provides the exceptions used with the <code>DynAny</code> interface +(<code>InvalidValue</code>, +<code>Invalid</code>, <code>InvalidSeq</code>, and +<code>TypeMismatch</code>). + + + +@since JDK1.2 +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynArray.java b/src/java.corba/share/classes/org/omg/CORBA/DynArray.java new file mode 100644 index 0000000..83236a0 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynArray.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + + +/** + * Represents a {@code DynAny} object associated with an array. + * + * @deprecated Use the new <a href="../DynamicAny/DynArray.html">DynArray</a> instead + */ +@Deprecated +public interface DynArray extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + /** + * Returns the value of all the elements of this array. + * + * @return the array of <code>Any</code> objects that is the value + * for this <code>DynArray</code> object + * @see #set_elements + */ + public org.omg.CORBA.Any[] get_elements(); + + /** + * Sets the value of this + * <code>DynArray</code> object to the given array. + * + * @param value the array of <code>Any</code> objects + * @exception org.omg.CORBA.DynAnyPackage.InvalidSeq if the + * sequence is bad + * @see #get_elements + */ + public void set_elements(org.omg.CORBA.Any[] value) + throws org.omg.CORBA.DynAnyPackage.InvalidSeq; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java b/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java new file mode 100644 index 0000000..d98957c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynEnum.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * Represents a {@code DynAny} object associated with an IDL enum. + * + * @deprecated Use the new <a href="../DynamicAny/DynEnum.html">DynEnum</a> instead + */ +@Deprecated +public interface DynEnum extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + /** + * Return the value of the IDL enum stored in this + * {@code DynEnum} as a string. + * + * @return the stringified value. + */ + public String value_as_string(); + + /** + * Set a particular enum in this {@code DynEnum}. + * + * @param arg the string corresponding to the value. + */ + public void value_as_string(String arg); + + /** + * Return the value of the IDL enum as a Java int. + * + * @return the integer value. + */ + public int value_as_ulong(); + + /** + * Set the value of the IDL enum. + * + * @param arg the int value of the enum. + */ + public void value_as_ulong(int arg); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java b/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java new file mode 100644 index 0000000..7cf872e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynFixed.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * Represents a <code>DynAny</code> object that is associated + * with an IDL fixed type. + * @deprecated Use the new <a href="../DynamicAny/DynFixed.html">DynFixed</a> instead + */ +@Deprecated +public interface DynFixed extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + /** + * Returns the value of the fixed type represented in this + * <code>DynFixed</code> object. + * + * @return the value as a byte array + * @see #set_value + */ + public byte[] get_value(); + + /** + * Sets the given fixed type instance as the value for this + * <code>DynFixed</code> object. + * + * @param val the value of the fixed type as a byte array + * @throws org.omg.CORBA.DynAnyPackage.InvalidValue if the given + * argument is bad + * @see #get_value + */ + public void set_value(byte[] val) + throws org.omg.CORBA.DynAnyPackage.InvalidValue; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java b/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java new file mode 100644 index 0000000..c536183 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynSequence.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * The representation of a <code>DynAny</code> object that is associated + * with an IDL sequence. + * @deprecated Use the new <a href="../DynamicAny/DynSequence.html">DynSequence</a> instead + */ +@Deprecated +public interface DynSequence extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + + /** + * Returns the length of the sequence represented by this + * <code>DynFixed</code> object. + * + * @return the length of the sequence + */ + public int length(); + + /** + * Sets the length of the sequence represented by this + * <code>DynFixed</code> object to the given argument. + * + * @param arg the length of the sequence + */ + public void length(int arg); + + /** + * Returns the value of every element in this sequence. + * + * @return an array of <code>Any</code> objects containing the values in + * the sequence + * @see #set_elements + */ + public org.omg.CORBA.Any[] get_elements(); + + /** + * Sets the values of all elements in this sequence with the given + * array. + * + * @param value the array of <code>Any</code> objects to be set + * @exception org.omg.CORBA.DynAnyPackage.InvalidSeq if the array + * of values is bad + * @see #get_elements + */ + public void set_elements(org.omg.CORBA.Any[] value) + throws org.omg.CORBA.DynAnyPackage.InvalidSeq; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java b/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java new file mode 100644 index 0000000..448f158 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynStruct.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * The representation of a <code>DynAny</code> object that is associated + * with an IDL struct. + * @deprecated Use the new <a href="../DynamicAny/DynStruct.html">DynStruct</a> instead + */ +@Deprecated +public interface DynStruct extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + /** + * During a traversal, returns the name of the current member. + * + * @return the string name of the current member + */ + public String current_member_name(); + + /** + * Returns the <code>TCKind</code> object that describes the kind of + * the current member. + * + * @return the <code>TCKind</code> object that describes the current member + */ + public org.omg.CORBA.TCKind current_member_kind(); + + /** + * Returns an array containing all the members of the stored struct. + * + * @return the array of name-value pairs + * @see #set_members + */ + public org.omg.CORBA.NameValuePair[] get_members(); + + /** + * Set the members of the struct. + * + * @param value the array of name-value pairs. + * @throws org.omg.CORBA.DynAnyPackage.InvalidSeq if the given argument + * is invalid + * @see #get_members + */ + public void set_members(org.omg.CORBA.NameValuePair[] value) + throws org.omg.CORBA.DynAnyPackage.InvalidSeq; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java b/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java new file mode 100644 index 0000000..6ce271d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynUnion.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * The <code>DynUnion</code> interface represents a <code>DynAny</code> object + * that is associated with an IDL union. + * Union values can be traversed using the operations defined in <code>DynAny</code>. + * The first component in the union corresponds to the discriminator; + * the second corresponds to the actual value of the union. + * Calling the method <code>next()</code> twice allows you to access both components. + * @deprecated Use the new <a href="../DynamicAny/DynUnion.html">DynUnion</a> instead + */ +@Deprecated +public interface DynUnion extends org.omg.CORBA.Object, org.omg.CORBA.DynAny +{ + /** + * Determines whether the discriminator associated with this union has been assigned + * a valid default value. + * @return <code>true</code> if the discriminator has a default value; + * <code>false</code> otherwise + */ + public boolean set_as_default(); + + /** + * Determines whether the discriminator associated with this union gets assigned + * a valid default value. + * @param arg <code>true</code> if the discriminator gets assigned a default value + */ + public void set_as_default(boolean arg); + + /** + * Returns a DynAny object reference that must be narrowed to the type + * of the discriminator in order to insert/get the discriminator value. + * @return a <code>DynAny</code> object reference representing the discriminator value + */ + public org.omg.CORBA.DynAny discriminator(); + + /** + * Returns the TCKind object associated with the discriminator of this union. + * @return the <code>TCKind</code> object associated with the discriminator of this union + */ + public org.omg.CORBA.TCKind discriminator_kind(); + + /** + * Returns a DynAny object reference that is used in order to insert/get + * a member of this union. + * @return the <code>DynAny</code> object representing a member of this union + */ + public org.omg.CORBA.DynAny member(); + + /** + * Allows for the inspection of the name of this union member + * without checking the value of the discriminator. + * @return the name of this union member + */ + public String member_name(); + + /** + * Allows for the assignment of the name of this union member. + * @param arg the new name of this union member + */ + public void member_name(String arg); + + /** + * Returns the TCKind associated with the member of this union. + * @return the <code>TCKind</code> object associated with the member of this union + */ + public org.omg.CORBA.TCKind member_kind(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynValue.java b/src/java.corba/share/classes/org/omg/CORBA/DynValue.java new file mode 100644 index 0000000..40972ae --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynValue.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The representation of a <code>DynAny</code> object that is associated + * with an IDL value type. + * @deprecated Use the new <a href="../DynamicAny/DynValue.html">DynValue</a> instead + */ +@Deprecated +public interface DynValue extends org.omg.CORBA.Object, org.omg.CORBA.DynAny { + + /** + * Returns the name of the current member while traversing a + * <code>DynAny</code> object that represents a Value object. + * + * @return the name of the current member + */ + String current_member_name(); + + /** + * Returns the <code>TCKind</code> object that describes the current member. + * + * @return the <code>TCKind</code> object corresponding to the current + * member + */ + TCKind current_member_kind(); + + /** + * Returns an array containing all the members of the value object + * stored in this <code>DynValue</code>. + * + * @return an array of name-value pairs. + * @see #set_members + */ + org.omg.CORBA.NameValuePair[] get_members(); + + /** + * Sets the members of the value object this <code>DynValue</code> + * object represents to the given array of <code>NameValuePair</code> + * objects. + * + * @param value the array of name-value pairs to be set + * @throws org.omg.CORBA.DynAnyPackage.InvalidSeq + * if an inconsistent value is part of the given array + * @see #get_members + */ + void set_members(NameValuePair[] value) + throws org.omg.CORBA.DynAnyPackage.InvalidSeq; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java b/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java new file mode 100644 index 0000000..b7c547e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/DynamicImplementation.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.ObjectImpl; + +/** + * @deprecated org.omg.CORBA.DynamicImplementation + */ +@Deprecated +public class DynamicImplementation extends org.omg.CORBA.portable.ObjectImpl { + + /** + * @deprecated Deprecated by Portable Object Adapter + */ + @Deprecated + public void invoke(ServerRequest request) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + public String[] _ids() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Environment.java b/src/java.corba/share/classes/org/omg/CORBA/Environment.java new file mode 100644 index 0000000..77548e5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Environment.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A container (holder) for an exception that is used in <code>Request</code> + * operations to make exceptions available to the client. An + * <code>Environment</code> object is created with the <code>ORB</code> + * method <code>create_environment</code>. + * + * @since JDK1.2 + */ + +public abstract class Environment { + + /** + * Retrieves the exception in this <code>Environment</code> object. + * + * @return the exception in this <code>Environment</code> object + */ + + public abstract java.lang.Exception exception(); + + /** + * Inserts the given exception into this <code>Environment</code> object. + * + * @param except the exception to be set + */ + + public abstract void exception(java.lang.Exception except); + + /** + * Clears this <code>Environment</code> object of its exception. + */ + + public abstract void clear(); + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java b/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java new file mode 100644 index 0000000..5e7e3f1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ExceptionList.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object used in <code>Request</code> operations to + * describe the exceptions that can be thrown by a method. It maintains a + * modifiable list of <code>TypeCode</code>s of the exceptions. + * <P> + * The following code fragment demonstrates creating + * an <code>ExceptionList</code> object: + * <PRE> + * ORB orb = ORB.init(args, null); + * org.omg.CORBA.ExceptionList excList = orb.create_exception_list(); + * </PRE> + * The variable <code>excList</code> represents an <code>ExceptionList</code> + * object with no <code>TypeCode</code> objects in it. + * <P> + * To add items to the list, you first create a <code>TypeCode</code> object + * for the exception you want to include, using the <code>ORB</code> method + * <code>create_exception_tc</code>. Then you use the <code>ExceptionList</code> + * method <code>add</code> to add it to the list. + * The class <code>ExceptionList</code> has a method for getting + * the number of <code>TypeCode</code> objects in the list, and after + * items have been added, it is possible to call methods for accessing + * or deleting an item at a designated index. + * + * @since JDK1.2 + */ + +public abstract class ExceptionList { + + /** + * Retrieves the number of <code>TypeCode</code> objects in this + * <code>ExceptionList</code> object. + * + * @return the number of <code>TypeCode</code> objects in this + * <code>ExceptionList</code> object + */ + + public abstract int count(); + + /** + * Adds a <code>TypeCode</code> object describing an exception + * to this <code>ExceptionList</code> object. + * + * @param exc the <code>TypeCode</code> object to be added + */ + + public abstract void add(TypeCode exc); + + /** + * Returns the <code>TypeCode</code> object at the given index. The first + * item is at index 0. + * + * @param index the index of the <code>TypeCode</code> object desired. + * This must be an <code>int</code> between 0 and the + * number of <code>TypeCode</code> objects + * minus one, inclusive. + * @return the <code>TypeCode</code> object at the given index + * @exception org.omg.CORBA.Bounds if the index given is greater than + * or equal to the number of <code>TypeCode</code> objects + * in this <code>ExceptionList</code> object + */ + + public abstract TypeCode item(int index) + throws org.omg.CORBA.Bounds; + + /** + * Removes the <code>TypeCode</code> object at the given index. + * Note that the indices of all the <code>TypeCoded</code> objects + * following the one deleted are shifted down by one. + * + * @param index the index of the <code>TypeCode</code> object to be + * removed. + * This must be an <code>int</code> between 0 and the + * number of <code>TypeCode</code> objects + * minus one, inclusive. + * + * @exception org.omg.CORBA.Bounds if the index is greater than + * or equal to the number of <code>TypeCode</code> objects + * in this <code>ExceptionList</code> object + */ + + public abstract void remove(int index) + throws org.omg.CORBA.Bounds; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java b/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java new file mode 100644 index 0000000..6196a7c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FREE_MEM.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown + * when the ORB failed in an attempt to free dynamic memory, for example + * because of heap corruption or memory segments being locked.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class FREE_MEM extends SystemException { + /** + * Constructs a <code>FREE_MEM</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public FREE_MEM() { + this(""); + } + + /** + * Constructs a <code>FREE_MEM</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the String containing a detail message + */ + public FREE_MEM(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>FREE_MEM</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public FREE_MEM(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>FREE_MEM</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public FREE_MEM(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java b/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java new file mode 100644 index 0000000..9e97bca --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FieldNameHelper.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code FieldName}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/FieldNameHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * 03 June 1999 11:52:03 o'clock GMT+00:00 + */ + +abstract public class FieldNameHelper +{ + private static String _id = "IDL:omg.org/CORBA/FieldName:1.0"; + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FieldNameHelper.id (), "FieldName", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + String value = null; + value = istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + ostream.write_string (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java new file mode 100644 index 0000000..c51e902 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FixedHolder.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + + +/** + * The Holder for {@code Fixed}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * FixedHolder is a container class for values of IDL type "fixed", + * which is mapped to the Java class java.math.BigDecimal. + * It is usually used to store "out" and "inout" IDL method parameters. + * If an IDL method signature has a fixed as an "out" or "inout" parameter, + * the programmer must pass an instance of FixedHolder as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the contained + * value corresponding to the "out" value returned from the server. + * + */ +public final class FixedHolder implements Streamable { + /** + * The value held by the FixedHolder + */ + public java.math.BigDecimal value; + + /** + * Construct the FixedHolder without initializing the contained value. + */ + public FixedHolder() { + } + + /** + * Construct the FixedHolder and initialize it with the given value. + * @param initial the value used to initialize the FixedHolder + */ + public FixedHolder(java.math.BigDecimal initial) { + value = initial; + } + + /** + * Read a fixed point value from the input stream and store it in + * the value member. + * + * @param input the {@code InputStream} to read from. + */ + public void _read(InputStream input) { + value = input.read_fixed(); + } + + /** + * Write the fixed point value stored in this holder to an + * {@code OutputStream}. + * + * @param output the {@code OutputStream} to write into. + */ + public void _write(OutputStream output) { + output.write_fixed(value); + } + + + /** + * Return the {@code TypeCode} of this holder object. + * + * @return the {@code TypeCode} object. + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_fixed); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java new file mode 100644 index 0000000..3199974 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FloatHolder.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + + +/** + * The Holder for {@code Float}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code float} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code float} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code FloatHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myFloatHolder} is an instance of {@code FloatHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myFloatHolder.value}. + * + * @since JDK1.2 + */ +public final class FloatHolder implements Streamable { + /** + * The {@code float} value held by this {@code FloatHolder} + * object. + */ + public float value; + + /** + * Constructs a new {@code FloatHolder} object with its + * {@code value} field initialized to 0.0. + */ + public FloatHolder() { + } + + /** + * Constructs a new {@code FloatHolder} object for the given + * {@code float}. + * @param initial the {@code float} with which to initialize + * the {@code value} field of the new + * {@code FloatHolder} object + */ + public FloatHolder(float initial) { + value = initial; + } + + /** + * Read a float from an input stream and initialize the value + * member with the float value. + * + * @param input the {@code InputStream} to read from. + */ + public void _read(InputStream input) { + value = input.read_float(); + } + + /** + * Write the float value into an output stream. + * + * @param output the {@code OutputStream} to write into. + */ + public void _write(OutputStream output) { + output.write_float(value); + } + + /** + * Return the {@code TypeCode} of this Streamable. + * + * @return the {@code TypeCode} object. + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_float); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java new file mode 100644 index 0000000..a8684b5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code FloatSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/FloatSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:37 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class FloatSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/FloatSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, float[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static float[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_float); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FloatSeqHelper.id (), "FloatSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static float[] read (org.omg.CORBA.portable.InputStream istream) + { + float value[] = null; + int _len0 = istream.read_long (); + value = new float[_len0]; + istream.read_float_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, float[] value) + { + ostream.write_long (value.length); + ostream.write_float_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java new file mode 100644 index 0000000..645bbb9 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/FloatSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code FloatSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/FloatSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:37 o'clock GMT+00:00 + */ + +public final class FloatSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public float value[] = null; + + public FloatSeqHolder () + { + } + + public FloatSeqHolder (float[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.FloatSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.FloatSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.FloatSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLType.java b/src/java.corba/share/classes/org/omg/CORBA/IDLType.java new file mode 100644 index 0000000..dbd4595 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IDLType.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/IDLType.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; +/** +* tempout/org/omg/CORBA/IDLType.java +* Generated by the IBM IDL-to-Java compiler, version 1.0 +* from ../../Lib/ir.idl +* Thursday, February 25, 1999 2:11:23 o'clock PM PST +*/ + +/** + * An abstract interface inherited by all Interface Repository + * (IR) objects that represent OMG IDL types. It provides access + * to the <code>TypeCode</code> object describing the type and is used in defining the + * other interfaces wherever definitions of <code>IDLType</code> must be referenced. + */ + +public interface IDLType extends IDLTypeOperations, org.omg.CORBA.IRObject, org.omg.CORBA.portable.IDLEntity +{ +} // interface IDLType diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java new file mode 100644 index 0000000..76bdbe4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeHelper.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code IDLType}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/IDLTypeHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ir.idl + * 03 June 1999 11:33:44 o'clock GMT+00:00 + */ + +abstract public class IDLTypeHelper +{ + private static String _id = "IDL:omg.org/CORBA/IDLType:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.IDLType that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.IDLType extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.IDLTypeHelper.id (), "IDLType"); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.IDLType read (org.omg.CORBA.portable.InputStream istream) + { + return narrow (istream.read_Object (_IDLTypeStub.class)); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.IDLType value) + { + ostream.write_Object ((org.omg.CORBA.Object) value); + } + + public static org.omg.CORBA.IDLType narrow (org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof org.omg.CORBA.IDLType) + return (org.omg.CORBA.IDLType)obj; + else if (!obj._is_a (id ())) + throw new org.omg.CORBA.BAD_PARAM (); + else + { + org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); + return new org.omg.CORBA._IDLTypeStub (delegate); + } + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java new file mode 100644 index 0000000..ac2eaba --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IDLTypeOperations.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** + * The interface for {@code IDLType}. For more information on + * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations"> + * "Generated Files: Operations files"</a>. + */ + +/* + tempout/org/omg/CORBA/IDLTypeOperations.java + Generated by the IBM IDL-to-Java compiler, version 1.0 + from ../../Lib/ir.idl + Thursday, February 25, 1999 2:11:23 o'clock PM PST +*/ + +/** + * This interface must be implemented by all IDLType objects. + * The IDLType is inherited by all IR objects that + * represent IDL types, including interfaces, typedefs, and + * anonymous types. + * @see IDLType + * @see IRObject + * @see IRObjectOperations + */ + +public interface IDLTypeOperations extends org.omg.CORBA.IRObjectOperations +{ + /** + * The type attribute describes the type defined by an object + * derived from {@code IDLType}. + * @return the {@code TypeCode} defined by this object. + */ + org.omg.CORBA.TypeCode type (); +} // interface IDLTypeOperations diff --git a/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java b/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java new file mode 100644 index 0000000..93df8e3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IMP_LIMIT.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates that an implementation limit was + * exceeded in the ORB run time. For example, an ORB may reach + * the maximum number of references it can hold simultaneously + * in an address space, the size of a parameter may have + * exceeded the allowed maximum, or an ORB may impose a maximum + * on the number of clients or servers that can run simultaneously.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + + +public final class IMP_LIMIT extends SystemException { + /** + * Constructs an <code>IMP_LIMIT</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public IMP_LIMIT() { + this(""); + } + + /** + * Constructs an <code>IMP_LIMIT</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * + * @param s the String containing a detail message + */ + public IMP_LIMIT(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>IMP_LIMIT</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public IMP_LIMIT(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>IMP_LIMIT</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public IMP_LIMIT(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java b/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java new file mode 100644 index 0000000..9768d98 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INITIALIZE.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown + * when an ORB has encountered a failure during its initialization, + * such as failure to acquire networking resources or detecting a + * configuration error.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INITIALIZE extends SystemException { + /** + * Constructs an <code>INITIALIZE</code> exception with a default + * minor code of 0 and a completion state of + * <code>CompletionStatus.COMPLETED_NO</code>. + */ + public INITIALIZE() { + this(""); + } + + /** + * Constructs an <code>INITIALIZE</code> exception with the specified detail + * message, a minor code of 0, and a completion state of + * <code>CompletionStatus.COMPLETED_NO</code>. + * @param s the String containing a detail message + */ + public INITIALIZE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INITIALIZE</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * indicating the completion status of the method + * that threw this exception + */ + public INITIALIZE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INITIALIZE</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * indicating the completion status of the method + * that threw this exception + */ + public INITIALIZE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java b/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java new file mode 100644 index 0000000..bec91d6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INTERNAL.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates an internal failure in an ORB, for + * example, if an ORB has detected corruption of its internal + * data structures.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes meaning of minor codes} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INTERNAL extends SystemException { + /** + * Constructs an <code>INTERNAL</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public INTERNAL() { + this(""); + } + + /** + * Constructs an <code>INTERNAL</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public INTERNAL(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INTERNAL</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * that indicates the completion status of the method + * that threw this exception + */ + public INTERNAL(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INTERNAL</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * that indicates the completion status of the method + * that threw this exception + */ + public INTERNAL(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java b/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java new file mode 100644 index 0000000..ef06d42 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INTF_REPOS.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception raised + * when an ORB cannot reach the interface + * repository, or some other failure relating to the interface repository + * is detected.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INTF_REPOS extends SystemException { + /** + * Constructs an <code>INTF_REPOS</code> exception with a default minor code + * of 0 and a completion state of COMPLETED_NO. + */ + public INTF_REPOS() { + this(""); + } + + /** + * Constructs an <code>INTF_REPOS</code> exception with the specified detail. + * @param s the String containing a detail message + */ + public INTF_REPOS(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INTF_REPOS</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public INTF_REPOS(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INTF_REPOS</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public INTF_REPOS(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java b/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java new file mode 100644 index 0000000..12a13f8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The <code>INVALID_ACTIVITY</code> system exception may be raised on the + * Activity or Transaction services' resume methods if a transaction or + * Activity is resumed in a context different to that from which it was + * suspended. It is also raised when an attempted invocation is made that + * is incompatible with the Activity's current state. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class INVALID_ACTIVITY extends SystemException { + + /** + * Constructs an <code>INVALID_ACTIVITY</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public INVALID_ACTIVITY() { + this(""); + } + + /** + * Constructs an <code>INVALID_ACTIVITY</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public INVALID_ACTIVITY(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INVALID_ACTIVITY</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public INVALID_ACTIVITY(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>INVALID_ACTIVITY</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public INVALID_ACTIVITY(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java b/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java new file mode 100644 index 0000000..219c549 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown + * when the request carried an invalid transaction context. + * For example, this exception could be raised if an error + * occurred when trying to register a resource.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + * + */ + +public final class INVALID_TRANSACTION extends SystemException { + /** + * Constructs an <code>INVALID_TRANSACTION</code> exception with a default minor code + * of 0 and a completion state of COMPLETED_NO. + */ + public INVALID_TRANSACTION() { + this(""); + } + + /** + * Constructs an <code>INVALID_TRANSACTION</code> exception + * with the specified detail message. + * @param s the String containing a detail message + */ + public INVALID_TRANSACTION(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INVALID_TRANSACTION</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public INVALID_TRANSACTION(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INVALID_TRANSACTION</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + public INVALID_TRANSACTION(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java b/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java new file mode 100644 index 0000000..6ad485c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INV_FLAG.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown + * when an invalid flag was passed to an operation (for example, when + * creating a DII request).<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INV_FLAG extends SystemException { + /** + * Constructs an <code>INV_FLAG</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public INV_FLAG() { + this(""); + } + + /** + * Constructs an <code>INV_FLAG</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public INV_FLAG(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INV_FLAG</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * indicating the completion status + */ + public INV_FLAG(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INV_FLAG</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed an instance of <code>CompletionStatus</code> + * indicating the completion status + */ + public INV_FLAG(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java b/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java new file mode 100644 index 0000000..167ff5f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INV_IDENT.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates that an IDL identifier is syntactically + * invalid. It may be raised if, for example, an identifier passed + * to the interface repository does not conform to IDL identifier + * syntax, or if an illegal operation name is used with the DII.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INV_IDENT extends SystemException { + /** + * Constructs an <code>INV_IDENT</code> exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public INV_IDENT() { + this(""); + } + + /** + * Constructs an <code>INV_IDENT</code> exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public INV_IDENT(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>INV_IDENT</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed a <code>CompletionStatus</code> object indicating + * the completion status + */ + public INV_IDENT(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>INV_IDENT</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed a <code>CompletionStatus</code> object indicating + * the completion status + */ + public INV_IDENT(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java b/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java new file mode 100644 index 0000000..821ffcf --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INV_OBJREF.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates that an object reference is internally + * malformed. For example, the repository ID may have incorrect + * syntax or the addressing information may be invalid. This + * exception is raised by ORB::string_to_object if the passed + * string does not decode correctly. An ORB may choose to detect + * calls via nil references (but is not obliged to do detect them). + * {@code INV_OBJREF} is used to indicate this.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class INV_OBJREF extends SystemException { + /** + * Constructs an {@code INV_OBJREF} exception with a default + * minor code of 0 and a completion state of COMPLETED_NO. + */ + public INV_OBJREF() { + this(""); + } + + /** + * Constructs an {@code INV_OBJREF} exception with the specified detail + * message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public INV_OBJREF(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an {@code INV_OBJREF} exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed a {@code CompletionStatus} instance indicating + * the completion status + */ + public INV_OBJREF(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an {@code INV_OBJREF} exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param s the String containing a detail message + * @param minor the minor code + * @param completed a {@code CompletionStatus} instance indicating + * the completion status + */ + public INV_OBJREF(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java new file mode 100644 index 0000000..5eea852 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/INV_POLICY.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Standard exception thrown + * when an invocation cannot be made because of an incompatibility between + * {@code Policy} overrides that apply to the particular invocation. + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class INV_POLICY extends SystemException { + /** + * Constructs a {@code INV_POLICY} exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public INV_POLICY() { + this(""); + } + + /** + * Constructs a {@code INV_POLICY} exception with the + * specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public INV_POLICY(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a {@code INV_POLICY} exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public INV_POLICY(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a {@code INV_POLICY} exception with the + * specified description message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public INV_POLICY(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/IRObject.java b/src/java.corba/share/classes/org/omg/CORBA/IRObject.java new file mode 100644 index 0000000..b60694a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IRObject.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/IRObject.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; +/** +An IRObject IDL interface represents the most generic interface +from which all other Interface Repository interfaces are derived, +even the Repository itself. +*/ + +public interface IRObject extends IRObjectOperations, org.omg.CORBA.Object, + org.omg.CORBA.portable.IDLEntity +{ +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java b/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java new file mode 100644 index 0000000..bd38f6b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IRObjectOperations.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The interface for {@code IRObject}. For more information on + * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations"> + * "Generated Files: Operations files"</a>. + */ + +/* + tempout/org/omg/CORBA/IRObjectOperations.java + Generated by the IBM IDL-to-Java compiler, version 1.0 + from ../../Lib/ir.idl + Thursday, February 25, 1999 2:11:21 o'clock PM PST +*/ + +/** + * This is the Operations interface for the mapping from {@code IRObject}. + * Several interfaces are used as base interfaces for objects in + * the Interface Repository (IR). These base interfaces are not instantiable. + * A common set of operations is used to locate objects within the + * Interface Repository. Some of these operations are defined in + * the IRObject. All IR objects inherit from the IRObject interface, + * which provides an operation for identifying the actual type of + * the object. (The IDL base interface IRObject represents the most + * generic interface from which all other Interface Repository interfaces + * are derived, even the Repository itself.) All java implementations of + * IR objects must implement the IRObjectOperations interface. + * @see IDLTypeOperations + * @see IDLType + * @see IRObject + */ +public interface IRObjectOperations +{ + + // read interface + /** + * Returns the {@code DefinitionKind} corresponding to this Interface Repository object. + * @return the {@code DefinitionKind} corresponding to this Interface Repository object. + */ + org.omg.CORBA.DefinitionKind def_kind (); + + // write interface + /** + * Destroys this object. If the object is a Container, + * this method is applied to all its contents. If the object contains an IDLType + * attribute for an anonymous type, that IDLType is destroyed. + * If the object is currently contained in some other object, it is removed. + * If the method is invoked on a {@code Repository} or on a {@code PrimitiveDef} + * then the {@code BAD_INV_ORDER} exception is raised with minor value 2. + * An attempt to destroy an object that would leave the repository in an + * incoherent state causes {@code BAD_INV_ORDER} exception to be raised + * with the minor code 1. + * @exception BAD_INV_ORDER if this method is invoked on a repository or + * {@code PrimitiveDef}, or if an attempt to destroy an + * object would leave the repository in an incoherent state + */ + void destroy (); +} // interface IRObjectOperations diff --git a/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java b/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java new file mode 100644 index 0000000..665e23c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IdentifierHelper.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code Identifier}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/IdentifierHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ir.idl + * 03 June 1999 11:33:42 o'clock GMT+00:00 + */ + +abstract public class IdentifierHelper +{ + private static String _id = "IDL:omg.org/CORBA/Identifier:1.0"; + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + String value = null; + value = istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + ostream.write_string (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java b/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java new file mode 100644 index 0000000..2b43131 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/IntHolder.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Int}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for an {@code int} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code long} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code IntHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myIntHolder} is an instance of {@code IntHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myIntHolder.value}. + * + * @since JDK1.2 + */ +public final class IntHolder implements Streamable { + + /** + * The {@code int} value held by this {@code IntHolder} + * object in its {@code value} field. + */ + public int value; + + /** + * Constructs a new {@code IntHolder} object with its + * {@code value} field initialized to {@code 0}. + */ + public IntHolder() { + } + + /** + * Constructs a new {@code IntHolder} object with its + * {@code value} field initialized to the given + * {@code int}. + * @param initial the {@code int} with which to initialize + * the {@code value} field of the newly-created + * {@code IntHolder} object + */ + public IntHolder(int initial) { + value = initial; + } + + /** + * Reads unmarshalled data from {@code input} and assigns it to + * the {@code value} field in this {@code IntHolder} object. + * + * @param input the {@code InputStream} object containing CDR + * formatted data from the wire + */ + public void _read(InputStream input) { + value = input.read_long(); + } + + /** + * Marshals the value in this {@code IntHolder} object's + * {@code value} field to the output stream {@code output}. + * + * @param output the {@code OutputStream} object that will contain + * the CDR formatted data + */ + public void _write(OutputStream output) { + output.write_long(value); + } + + /** + * Retrieves the {@code TypeCode} object that corresponds + * to the value held in this {@code IntHolder} object's + * {@code value} field. + * + * @return the type code for the value held in this {@code IntHolder} + * object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_long); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java b/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java new file mode 100644 index 0000000..fedbead --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LocalObject.java @@ -0,0 +1,514 @@ +/* + * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; +import org.omg.CORBA.portable.*; + + +/** + * Used as a base class for implementation of a local IDL interface in the + * Java language mapping. It is a class which implements all the operations + * in the {@code org.omg.CORBA.Object} interface. + * <P>Local interfaces are implemented by using CORBA::LocalObject + * to provide implementations of {@code Object} pseudo + * operations and any other ORB-specific support mechanisms that are + * appropriate for such objects. Object implementation techniques are + * inherently language-mapping specific. Therefore, the + * {@code LocalObject} type is not defined in IDL, but is specified + * in each language mapping. + * <P>Methods that do not apply to local objects throw + * an {@code org.omg.CORBA.NO_IMPLEMENT} exception with the message, + * "This is a locally contrained object." Attempting to use a + * {@code LocalObject} to create a DII request results in NO_IMPLEMENT + * system exception. Attempting to marshal or stringify a + * {@code LocalObject} results in a MARSHAL system exception. Narrowing + * and widening references to {@code LocalObjects} must work as for regular + * object references. + * <P>{@code LocalObject} is to be used as the base class of locally + * constrained objects, such as those in the PortableServer module. + * The specification here is based on the CORBA Components + * Volume I - orbos/99-07-01 + * + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + +public class LocalObject implements org.omg.CORBA.Object +{ + private static String reason = "This is a locally constrained object."; + + /** + * Constructs a default {@code LocalObject} instance. + */ + public LocalObject() {} + + /** + * Determines whether the two object references are equivalent, + * so far as the ORB can easily determine. Two object references are equivalent + * if they are identical. Two distinct object references which in fact refer to + * the same object are also equivalent. However, ORBs are not required + * to attempt determination of whether two distinct object references + * refer to the same object, since such determination could be impractically + * expensive. + * <P>Default implementation of the org.omg.CORBA.Object method. + * + * @param that the object reference with which to check for equivalence + * @return {@code true} if this object reference is known to be + * equivalent to the given object reference. + * Note that {@code false} indicates only that the two + * object references are distinct, not necessarily that + * they reference distinct objects. + */ + public boolean _is_equivalent(org.omg.CORBA.Object that) { + return equals(that) ; + } + + /** + * Always returns {@code false}. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @return {@code false} + */ + public boolean _non_existent() { + return false; + } + + /** + * Returns a hash value that is consistent for the + * lifetime of the object, using the given number as the maximum. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param maximum an {@code int} identifying maximum value of + * the hashcode + * @return this instance's hashcode + */ + public int _hash(int maximum) { + return hashCode() ; + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param repository_id a {@code String} + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public boolean _is_a(String repository_id) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @return a duplicate of this {@code LocalObject} instance. + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.Object _duplicate() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void _release() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param operation a {@code String} giving the name of an operation + * to be performed by the request that is returned + * @return a {@code Request} object with the given operation + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public Request _request(String operation) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param ctx a {@code Context} object containing + * a list of properties + * @param operation the {@code String} representing the name of the + * method to be invoked + * @param arg_list an {@code NVList} containing the actual arguments + * to the method being invoked + * @param result a {@code NamedValue} object to serve as a + * container for the method's return value + * @return a new {@code Request} object initialized with the given + * arguments + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param ctx a {@code Context} object containing + * a list of properties + * @param operation the name of the method to be invoked + * @param arg_list an {@code NVList} containing the actual arguments + * to the method being invoked + * @param result a {@code NamedValue} object to serve as a + * container for the method's return value + * @param exceptions an {@code ExceptionList} object containing a + * list of possible exceptions the method can throw + * @param contexts a {@code ContextList} object containing a list of + * context strings that need to be resolved and sent + * with the + * {@code Request} instance + * @return the new {@code Request} object initialized with the given + * arguments + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result, + ExceptionList exceptions, + ContextList contexts) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.Object _get_interface() + { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.Object _get_interface_def() + { + // First try to call the delegate implementation class's + // "Object get_interface_def(..)" method (will work for JDK1.2 + // ORBs). + // Else call the delegate implementation class's + // "InterfaceDef get_interface(..)" method using reflection + // (will work for pre-JDK1.2 ORBs). + + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * @return the ORB instance that created the Delegate contained in this + * {@code ObjectImpl} + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.ORB _orb() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param policy_type an {@code int} + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.Policy _get_policy(int policy_type) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.DomainManager[] _get_domain_managers() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param policies an array + * @param set_add a flag + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public org.omg.CORBA.Object + _set_policy_override(org.omg.CORBA.Policy[] policies, + org.omg.CORBA.SetOverrideType set_add) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method.<P> + * Returns {@code true} for this {@code LocalObject} instance. + * + * @return {@code true} always + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public boolean _is_local() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param operation a {@code String} indicating which operation + * to preinvoke + * @param expectedType the class of the type of operation mentioned above + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public ServantObject _servant_preinvoke(String operation, + Class expectedType) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @param servant the servant object on which to post-invoke + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void _servant_postinvoke(ServantObject servant) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /* + * The following methods were added by orbos/98-04-03: Java to IDL + * Mapping. These are used by RMI over IIOP. + */ + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * <P>Called by a stub to obtain an OutputStream for + * marshaling arguments. The stub must supply the operation name, + * and indicate if a response is expected (i.e is this a oneway call). + * + * @param operation the name of the operation being requested + * @param responseExpected {@code true} if a response is expected, + * {@code false} if it is a one-way call + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public OutputStream _request(String operation, + boolean responseExpected) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * <P>Called to invoke an operation. The stub provides an + * {@code OutputStream} that was previously returned by a + * {@code _request()} + * call. {@code _invoke} returns an {@code InputStream} which + * contains the + * marshaled reply. If an exception occurs, {@code _invoke} may throw an + * {@code ApplicationException} object which contains an + * {@code InputStream} from + * which the user exception state may be unmarshaled. + * + * @param output the {@code OutputStream} to invoke + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @throws ApplicationException If an exception occurs, + * {@code _invoke} may throw an + * {@code ApplicationException} object which contains + * an {@code InputStream} from + * which the user exception state may be unmarshaled. + * @throws RemarshalException If an exception occurs, + * {@code _invoke} may throw an + * {@code ApplicationException} object which contains + * an {@code InputStream} from + * which the user exception state may be unmarshaled. + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public InputStream _invoke(OutputStream output) + throws ApplicationException, RemarshalException + { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * <P>May optionally be called by a stub to release a + * reply stream back to the ORB when the unmarshaling has + * completed. The stub passes the {@code InputStream} returned by + * {@code _invoke()} or + * {@code ApplicationException.getInputStream()}. + * A null + * value may also be passed to {@code _releaseReply}, in which case the + * method is a no-op. + * + * @param input the reply stream back to the ORB or null + * @exception NO_IMPLEMENT + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public void _releaseReply(InputStream input) { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } + + /** + * Throws an {@code org.omg.CORBA.NO_IMPLEMENT} exception with + * the message "This is a locally constrained object." This method + * does not apply to local objects and is therefore not implemented. + * This method is the default implementation of the + * {@code org.omg.CORBA.Object} method. + * + * @return NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @exception NO_IMPLEMENT because this is a locally constrained object + * and this method does not apply to local objects + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + + public boolean validate_connection() { + throw new org.omg.CORBA.NO_IMPLEMENT(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java new file mode 100644 index 0000000..670bec5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LongHolder.java @@ -0,0 +1,108 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Long}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code long} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code long long} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code LongHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myLongHolder} is an instance of {@code LongHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myLongHolder.value}. + * + * @since JDK1.2 + */ +public final class LongHolder implements Streamable { + + /** + * The {@code long} value held by this {@code LongHolder} + * object. + */ + public long value; + + /** + * Constructs a new {@code LongHolder} object with its + * {@code value} field initialized to {@code 0}. + */ + public LongHolder() { + } + + /** + * Constructs a new {@code LongHolder} object with its + * {@code value} field initialized to the given + * {@code long}. + * @param initial the {@code long} with which to initialize + * the {@code value} field of the newly-created + * {@code LongHolder} object + */ + public LongHolder(long initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in the Holder + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire + */ + public void _read(InputStream input) { + value = input.read_longlong(); + } + + /** + * Marshals to {@code output} the value in the Holder. + * + * @param output the OutputStream which will contain the CDR formatted data + */ + public void _write(OutputStream output) { + output.write_longlong(value); + } + + /** + * Returns the {@code TypeCode} object + * corresponding to the value held in the Holder. + * + * @return the TypeCode of the value held in the holder + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_longlong); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java new file mode 100644 index 0000000..63b77c4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code LongLongSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/LongLongSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:37 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class LongLongSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/LongLongSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, long[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static long[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_longlong); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.LongLongSeqHelper.id (), "LongLongSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static long[] read (org.omg.CORBA.portable.InputStream istream) + { + long value[] = null; + int _len0 = istream.read_long (); + value = new long[_len0]; + istream.read_longlong_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, long[] value) + { + ostream.write_long (value.length); + ostream.write_longlong_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java new file mode 100644 index 0000000..abc0123 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LongLongSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code LongLongSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/LongLongSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class LongLongSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public long value[] = null; + + public LongLongSeqHolder () + { + } + + public LongLongSeqHolder (long[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.LongLongSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.LongLongSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.LongLongSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java new file mode 100644 index 0000000..2c9eb2a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code LongSeqHelper}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/LongSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class LongSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/LongSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, int[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static int[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_long); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.LongSeqHelper.id (), "LongSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static int[] read (org.omg.CORBA.portable.InputStream istream) + { + int value[] = null; + int _len0 = istream.read_long (); + value = new int[_len0]; + istream.read_long_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, int[] value) + { + ostream.write_long (value.length); + ostream.write_long_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java new file mode 100644 index 0000000..6ff9e6a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/LongSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code LongSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/LongSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class LongSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public int value[] = null; + + public LongSeqHolder () + { + } + + public LongSeqHolder (int[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.LongSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.LongSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.LongSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java b/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java new file mode 100644 index 0000000..adec5d6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/MARSHAL.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A request or reply from the network is structurally invalid. + * This error typically indicates a bug in either the client-side + * or server-side run time. For example, if a reply from the server + * indicates that the message contains 1000 bytes, but the actual + * message is shorter or longer than 1000 bytes, the ORB raises + * this exception. {@code MARSHAL} can also be caused by using + * the DII or DSI incorrectly, for example, if the type of the + * actual parameters sent does not agree with IDL signature of an + * operation.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * @since JDK1.2 + */ + +public final class MARSHAL extends SystemException { + /** + * Constructs a {@code MARSHAL} exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public MARSHAL() { + this(""); + } + + /** + * Constructs a {@code MARSHAL} exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description of the exception + */ + public MARSHAL(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a {@code MARSHAL} exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public MARSHAL(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a {@code MARSHAL} exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public MARSHAL(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java b/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java new file mode 100644 index 0000000..6beff5b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NO_IMPLEMENT.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates that even though the operation that + * was invoked exists (it has an IDL definition), no implementation + * for that operation exists. {@code NO_IMPLEMENT} can, for + * example, be raised by an ORB if a client asks for an object's + * type definition from the interface repository, but no interface + * repository is provided by the ORB.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * @since JDK1.2 + */ + +public final class NO_IMPLEMENT extends SystemException { + /** + * Constructs a {@code NO_IMPLEMENT} exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public NO_IMPLEMENT() { + this(""); + } + + /** + * Constructs a {@code NO_IMPLEMENT} exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description of the exception + */ + public NO_IMPLEMENT(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a {@code NO_IMPLEMENT} exception with the specified + * minor code and completion status. + * @param minor an {@code int} specifying the minor code + * @param completed a {@code CompletionStatus} instance indicating + * the completion status + */ + public NO_IMPLEMENT(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a {@code NO_IMPLEMENT} exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor an {@code int} specifying the minor code + * @param completed a {@code CompletionStatus} instance indicating + * the completion status + */ + public NO_IMPLEMENT(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java b/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java new file mode 100644 index 0000000..b88a926 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NO_MEMORY.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when the ORB run time has run out of memory. + * <P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class NO_MEMORY extends SystemException { + /** + * Constructs a <code>NO_MEMORY</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public NO_MEMORY() { + this(""); + } + + /** + * Constructs a <code>NO_MEMORY</code> exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public NO_MEMORY(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>NO_MEMORY</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public NO_MEMORY(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>NO_MEMORY</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public NO_MEMORY(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java b/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java new file mode 100644 index 0000000..a2dadde --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NO_PERMISSION.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when an invocation failed because the caller + * has insufficient privileges.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class NO_PERMISSION extends SystemException { + /** + * Constructs a <code>NO_PERMISSION</code> exception with a default minor code + * of 0 and a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public NO_PERMISSION() { + this(""); + } + + /** + * Constructs a <code>NO_PERMISSION</code> exception with the specified description, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public NO_PERMISSION(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>NO_PERMISSION</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public NO_PERMISSION(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>NO_PERMISSION</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public NO_PERMISSION(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java b/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java new file mode 100644 index 0000000..82552ad --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NO_RESOURCES.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when the ORB has encountered some general resource + * limitation. For example, the run time may have reached the maximum + * permissible number of open connections.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class NO_RESOURCES extends SystemException { + /** + * Constructs a <code>NO_RESOURCES</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public NO_RESOURCES() { + this(""); + } + + /** + * Constructs a <code>NO_RESOURCES</code> exception with the specified description, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public NO_RESOURCES(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>NO_RESOURCES</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public NO_RESOURCES(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>NO_RESOURCES</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public NO_RESOURCES(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java b/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java new file mode 100644 index 0000000..759986c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NO_RESPONSE.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception is raised if a client attempts to retrieve the result + * of a deferred synchronous call, but the response for the request is + * not yet available.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class NO_RESPONSE extends SystemException { + /** + * Constructs a <code>NO_RESPONSE</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public NO_RESPONSE() { + this(""); + } + + /** + * Constructs a <code>NO_RESPONSE</code> exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public NO_RESPONSE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>NO_RESPONSE</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public NO_RESPONSE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>NO_RESPONSE</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public NO_RESPONSE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NVList.java b/src/java.corba/share/classes/org/omg/CORBA/NVList.java new file mode 100644 index 0000000..e60a7e3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NVList.java @@ -0,0 +1,177 @@ +/* + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A modifiable list containing <code>NamedValue</code> objects. + * <P> + * The class <code>NVList</code> is used as follows: + * <UL> + * <LI>to describe arguments for a <code>Request</code> object + * in the Dynamic Invocation Interface and + * the Dynamic Skeleton Interface + * <LI>to describe context values in a <code>Context</code> object + * </UL> + * <P> + * Each <code>NamedValue</code> object consists of the following: + * <UL> + * <LI>a name, which is a <code>String</code> object + * <LI>a value, as an <code>Any</code> object + * <LI>an argument mode flag + * </UL> + * <P> + * An <code>NVList</code> object + * may be created using one of the following + * <code>ORB</code> methods: + * <OL> + * <LI><code>org.omg.CORBA.ORB.create_list</code> + * <PRE> + * org.omg.CORBA.NVList nv = orb.create_list(3); + * </PRE> + * The variable <code>nv</code> represents a newly-created + * <code>NVList</code> object. The argument is a memory-management + * hint to the orb and does not imply the actual length of the list. + * If, for example, you want to use an <code>NVList</code> object + * in a request, and the method being invoked takes three parameters, + * you might optimize by supplying 3 to the method + * <code>create_list</code>. Note that the new <code>NVList</code> + * will not necessarily have a length of 3; it + * could have a length of 2 or 4, for instance. + * Note also that you can add any number of + * <code>NamedValue</code> objects to this list regardless of + * its original length. + * <LI><code>org.omg.CORBA.ORB.create_operation_list</code> + * <PRE> + * org.omg.CORBA.NVList nv = orb.create_operation_list(myOperationDef); + * </PRE> + * The variable <code>nv</code> represents a newly-created + * <code>NVList</code> object that contains descriptions of the + * arguments to the method described in the given + * <code>OperationDef</code> object. + * </OL> + * <P> + * The methods in the class <code>NVList</code> all deal with + * the <code>NamedValue</code> objects in the list. + * There are three methods for adding a <code>NamedValue</code> object, + * a method for getting the count of <code>NamedValue</code> objects in + * the list, a method for retrieving a <code>NamedValue</code> object + * at a given index, and a method for removing a <code>NamedValue</code> object + * at a given index. + * + * @see org.omg.CORBA.Request + * @see org.omg.CORBA.ServerRequest + * @see org.omg.CORBA.NamedValue + * @see org.omg.CORBA.Context + * + * @since JDK1.2 + */ + +public abstract class NVList { + + /** + * Returns the number of <code>NamedValue</code> objects that have + * been added to this <code>NVList</code> object. + * + * @return an <code>int</code> indicating the number of + * <code>NamedValue</code> objects in this <code>NVList</code>. + */ + + public abstract int count(); + + /** + * Creates a new <code>NamedValue</code> object initialized with the given flag + * and adds it to the end of this <code>NVList</code> object. + * The flag can be any one of the argument passing modes: + * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or + * <code>ARG_INOUT.value</code>. + * + * @param flags one of the argument mode flags + * @return the newly-created <code>NamedValue</code> object + */ + + public abstract NamedValue add(int flags); + + /** + * Creates a new <code>NamedValue</code> object initialized with the + * given name and flag, + * and adds it to the end of this <code>NVList</code> object. + * The flag can be any one of the argument passing modes: + * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or + * <code>ARG_INOUT.value</code>. + * + * @param item_name the name for the new <code>NamedValue</code> object + * @param flags one of the argument mode flags + * @return the newly-created <code>NamedValue</code> object + */ + + public abstract NamedValue add_item(String item_name, int flags); + + /** + * Creates a new <code>NamedValue</code> object initialized with the + * given name, value, and flag, + * and adds it to the end of this <code>NVList</code> object. + * + * @param item_name the name for the new <code>NamedValue</code> object + * @param val an <code>Any</code> object containing the value + * for the new <code>NamedValue</code> object + * @param flags one of the following argument passing modes: + * <code>ARG_IN.value</code>, <code>ARG_OUT.value</code>, or + * <code>ARG_INOUT.value</code> + * @return the newly created <code>NamedValue</code> object + */ + + public abstract NamedValue add_value(String item_name, Any val, int flags); + + /** + * Retrieves the <code>NamedValue</code> object at the given index. + * + * @param index the index of the desired <code>NamedValue</code> object, + * which must be between zero and the length of the list + * minus one, inclusive. The first item is at index zero. + * @return the <code>NamedValue</code> object at the given index + * @exception org.omg.CORBA.Bounds if the index is greater than + * or equal to number of <code>NamedValue</code> objects + */ + + public abstract NamedValue item(int index) throws org.omg.CORBA.Bounds; + + /** + * Removes the <code>NamedValue</code> object at the given index. + * Note that the indices of all <code>NamedValue</code> objects following + * the one removed are shifted down by one. + * + * @param index the index of the <code>NamedValue</code> object to be + * removed, which must be between zero and the length + * of the list minus one, inclusive. + * The first item is at index zero. + * @exception org.omg.CORBA.Bounds if the index is greater than + * or equal to number of <code>NamedValue</code> objects in + * the list + */ + + public abstract void remove(int index) throws org.omg.CORBA.Bounds; + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java b/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java new file mode 100644 index 0000000..bd851c3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NameValuePair.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA; + +/** + * Associates a name with a value that is an + * attribute of an IDL struct, and is used in the {@code DynStruct} APIs. + */ + +public final class NameValuePair implements org.omg.CORBA.portable.IDLEntity { + + /** + * The name to be associated with a value by this {@code NameValuePair} object. + */ + public String id; + + /** + * The value to be associated with a name by this {@code NameValuePair} object. + */ + public org.omg.CORBA.Any value; + + /** + * Constructs an empty {@code NameValuePair} object. + * To associate a name with a value after using this constructor, the fields + * of this object have to be accessed individually. + */ + public NameValuePair() { } + + /** + * Constructs a {@code NameValuePair} object that associates + * the given name with the given {@code org.omg.CORBA.Any} object. + * @param __id the name to be associated with the given {@code Any} object + * @param __value the {@code Any} object to be associated with the given name + */ + public NameValuePair(String __id, org.omg.CORBA.Any __value) { + id = __id; + value = __value; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java b/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java new file mode 100644 index 0000000..ec411e1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NameValuePairHelper.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code NameValuePair}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/NameValuePairHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * 03 June 1999 11:52:03 o'clock GMT+00:00 + */ + +abstract public class NameValuePairHelper +{ + private static String _id = "IDL:omg.org/CORBA/NameValuePair:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.NameValuePair that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.NameValuePair extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [2]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.FieldNameHelper.id (), "FieldName", _tcOf_members0); + _members0[0] = new org.omg.CORBA.StructMember ( + "id", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any); + _members0[1] = new org.omg.CORBA.StructMember ( + "value", + _tcOf_members0, + null); + __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.NameValuePairHelper.id (), "NameValuePair", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.NameValuePair read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.NameValuePair value = new org.omg.CORBA.NameValuePair (); + value.id = istream.read_string (); + value.value = istream.read_any (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.NameValuePair value) + { + ostream.write_string (value.id); + ostream.write_any (value.value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java b/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java new file mode 100644 index 0000000..a3deb94 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/NamedValue.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object used in the DII and DSI to describe + * arguments and return values. <code>NamedValue</code> objects + * are also used in the <code>Context</code> + * object routines to pass lists of property names and values. + * <P> + * A <code>NamedValue</code> object contains: + * <UL> + * <LI>a name -- If the <code>NamedValue</code> object is used to + * describe arguments to a request, the name will be an argument + * identifier specified in the OMG IDL interface definition + * for the operation being described. + * <LI>a value -- an <code>Any</code> object + * <LI>an argument mode flag -- one of the following: + * <UL> + * <LI><code>ARG_IN.value</code> + * <LI><code>ARG_OUT.value</code> + * <LI><code>ARG_INOUT.value</code> + * <LI>zero -- if this <code>NamedValue</code> object represents a property + * in a <code>Context</code> object rather than a parameter or + * return value + * </UL> + * </UL> + * <P> + * The class <code>NamedValue</code> has three methods, which + * access its fields. The following code fragment demonstrates + * creating a <code>NamedValue</code> object and then accessing + * its fields: + * <PRE> + * ORB orb = ORB.init(args, null); + * String s = "argument_1"; + * org.omg.CORBA.Any myAny = orb.create_any(); + * myAny.insert_long(12345); + * int in = org.omg.CORBA.ARG_IN.value; + + * org.omg.CORBA.NamedValue nv = orb.create_named_value( + * s, myAny, in); + * System.out.println("This nv name is " + nv.name()); + * try { + * System.out.println("This nv value is " + nv.value().extract_long()); + * System.out.println("This nv flag is " + nv.flags()); + * } catch (org.omg.CORBA.BAD_OPERATION b) { + * System.out.println("extract failed"); + * } + * </PRE> + * + * <P> + * If this code fragment were put into a <code>main</code> method, + * the output would be something like the following: + * <PRE> + * This nv name is argument_1 + * This nv value is 12345 + * This nv flag is 1 + * </PRE> + * <P> + * Note that the method <code>value</code> returns an <code>Any</code> + * object. In order to access the <code>long</code> contained in the + * <code>Any</code> object, + * we used the method <code>extract_long</code>. + * + * @see Any + * @see ARG_IN + * @see ARG_INOUT + * @see ARG_OUT + * + * @since JDK1.2 + */ + +public abstract class NamedValue { + + /** + * Retrieves the name for this <code>NamedValue</code> object. + * + * @return a <code>String</code> object representing + * the name of this <code>NamedValue</code> object + */ + + public abstract String name(); + + /** + * Retrieves the value for this <code>NamedValue</code> object. + * + * @return an <code>Any</code> object containing + * the value of this <code>NamedValue</code> object + */ + + public abstract Any value(); + + /** + * Retrieves the argument mode flag for this <code>NamedValue</code> object. + * + * @return an <code>int</code> representing the argument + * mode for this <code>NamedValue</code> object + */ + + public abstract int flags(); + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java b/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java new file mode 100644 index 0000000..e9871fe --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception raised whenever an invocation on a deleted object was + * performed. It is an authoritative "hard" fault report. Anyone + * receiving it is allowed (even expected) to delete all copies of + * this object reference and to perform other appropriate "final + * recovery" style procedures. Bridges forward this exception to + * clients, also destroying any records they may hold (for example, + * proxy objects used in reference translation). The clients could + * in turn purge any of their own data structures. + * <P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class OBJECT_NOT_EXIST extends SystemException { + /** + * Constructs an <code>OBJECT_NOT_EXIST</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public OBJECT_NOT_EXIST() { + this(""); + } + + /** + * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified description, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public OBJECT_NOT_EXIST(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public OBJECT_NOT_EXIST(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>OBJECT_NOT_EXIST</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public OBJECT_NOT_EXIST(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java b/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java new file mode 100644 index 0000000..e0432a1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/OBJ_ADAPTER.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception typically indicates an administrative mismatch, for + * example, a server may have made an attempt to register itself with + * an implementation repository under a name that is already in use, + * or is unknown to the repository. <P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meanings} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since JDK1.2 + */ + +public final class OBJ_ADAPTER extends SystemException { + /** + * Constructs an <code>OBJ_ADAPTER</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public OBJ_ADAPTER() { + this(""); + } + + /** + * Constructs an <code>OBJ_ADAPTER</code> exception with the specified description, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a description message + */ + public OBJ_ADAPTER(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>OBJ_ADAPTER</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public OBJ_ADAPTER(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>OBJ_ADAPTER</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public OBJ_ADAPTER(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java b/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java new file mode 100644 index 0000000..9a2738a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/OMGVMCID.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The vendor minor code ID reserved for OMG. Minor codes for the standard + * exceptions are prefaced by the VMCID assigned to OMG, defined as the + * constant OMGVMCID, which, like all VMCIDs, occupies the high order 20 bits. + */ + +public interface OMGVMCID { + + /** + * The vendor minor code ID reserved for OMG. This value is or'd with + * the high order 20 bits of the minor code to produce the minor value + * in a system exception. + */ + static final int value = 0x4f4d0000; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORB.java b/src/java.corba/share/classes/org/omg/CORBA/ORB.java new file mode 100644 index 0000000..eefcfba --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ORB.java @@ -0,0 +1,1406 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.*; +import org.omg.CORBA.ORBPackage.InvalidName; + +import java.util.Properties; +import java.applet.Applet; +import java.io.File; +import java.io.FileInputStream; + +import java.security.AccessController; +import java.security.PrivilegedAction; + +/** + * A class providing APIs for the CORBA Object Request Broker + * features. The {@code ORB} class also provides + * "pluggable ORB implementation" APIs that allow another vendor's ORB + * implementation to be used. + * <P> + * An ORB makes it possible for CORBA objects to communicate + * with each other by connecting objects making requests (clients) with + * objects servicing requests (servers). + * <P> + * + * The {@code ORB} class, which + * encapsulates generic CORBA functionality, does the following: + * (Note that items 5 and 6, which include most of the methods in + * the class {@code ORB}, are typically used with the + * {@code Dynamic Invocation Interface} (DII) and + * the {@code Dynamic Skeleton Interface} (DSI). + * These interfaces may be used by a developer directly, but + * most commonly they are used by the ORB internally and are + * not seen by the general programmer.) + * <OL> + * <li> initializes the ORB implementation by supplying values for + * predefined properties and environmental parameters + * <li> obtains initial object references to services such as + * the NameService using the method {@code resolve_initial_references} + * <li> converts object references to strings and back + * <li> connects the ORB to a servant (an instance of a CORBA object + * implementation) and disconnects the ORB from a servant + * <li> creates objects such as + * <ul> + * <li>{@code TypeCode} + * <li>{@code Any} + * <li>{@code NamedValue} + * <li>{@code Context} + * <li>{@code Environment} + * <li>lists (such as {@code NVList}) containing these objects + * </ul> + * <li> sends multiple messages in the DII + * </OL> + * + * <P> + * The {@code ORB} class can be used to obtain references to objects + * implemented anywhere on the network. + * <P> + * An application or applet gains access to the CORBA environment + * by initializing itself into an {@code ORB} using one of + * three {@code init} methods. Two of the three methods use the properties + * (associations of a name with a value) shown in the + * table below.<BR> + * <TABLE class="plain"> + * <CAPTION>Standard Java CORBA Properties:</CAPTION> + * <thead> + * <TR><TH>Property Name</TH> <TH>Property Value</TH></TR> + * </thead> + * <tbody> + * <TR><TD>org.omg.CORBA.ORBClass</TD> + * <TD>class name of an ORB implementation</TD></TR> + * <TR><TD>org.omg.CORBA.ORBSingletonClass</TD> + * <TD>class name of the ORB returned by {@code init()}</TD></TR> + * </tbody> + * </TABLE> + * <P> + * These properties allow a different vendor's {@code ORB} + * implementation to be "plugged in." + * <P> + * When an ORB instance is being created, the class name of the ORB + * implementation is located using + * the following standard search order: + * + * <OL> + * <LI>check in Applet parameter or application string array, if any + * + * <LI>check in properties parameter, if any + * + * <LI>check in the System properties, if any + * + * <LI>check in the orb.properties file located in the user.home + * directory, if any + * + * <LI>check in the orb.properties file located in the run-time image, + * if any + * + * <LI>fall back on a hardcoded default behavior (use the Java IDL + * implementation) + * </OL> + * <P> + * Note that Java IDL provides a default implementation for the + * fully-functional ORB and for the Singleton ORB. When the method + * {@code init} is given no parameters, the default Singleton + * ORB is returned. When the method {@code init} is given parameters + * but no ORB class is specified, the Java IDL ORB implementation + * is returned. + * <P> + * The following code fragment creates an {@code ORB} object + * initialized with the default ORB Singleton. + * This ORB has a + * restricted implementation to prevent malicious applets from doing + * anything beyond creating typecodes. + * It is called a singleton + * because there is only one instance for an entire virtual machine. + * <PRE> + * ORB orb = ORB.init(); + * </PRE> + * <P> + * The following code fragment creates an {@code ORB} object + * for an application. The parameter {@code args} + * represents the arguments supplied to the application's {@code main} + * method. Since the property specifies the ORB class to be + * "SomeORBImplementation", the new ORB will be initialized with + * that ORB implementation. If p had been null, + * and the arguments had not specified an ORB class, + * the new ORB would have been + * initialized with the default Java IDL implementation. + * <PRE> + * Properties p = new Properties(); + * p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation"); + * ORB orb = ORB.init(args, p); + * </PRE> + * <P> + * The following code fragment creates an {@code ORB} object + * for the applet supplied as the first parameter. If the given + * applet does not specify an ORB class, the new ORB will be + * initialized with the default Java IDL implementation. + * <PRE> + * ORB orb = ORB.init(myApplet, null); + * </PRE> + * <P> + * An application or applet can be initialized in one or more ORBs. + * ORB initialization is a bootstrap call into the CORBA world. + * + * + * @implNote + * When a singleton ORB is configured via the system property, + * or orb.properties, it will be + * located, and loaded via the system class loader. + * Thus, where appropriate, it is necessary that + * the classes for this alternative ORBSingleton are available on the application's class path. + * It should be noted that the singleton ORB is system wide. + * <P> + * When a per-application ORB is created via the 2-arg init methods, + * then it will be located using the thread context class loader. + * <P> + * The IDL to Java Language OMG specification documents the ${java.home}/lib directory as the location, + * in the Java run-time image, to search for orb.properties. + * This location is not intended for user editable configuration files. + * Therefore, the implementation first checks the ${java.home}/conf directory for orb.properties, + * and thereafter the ${java.home}/lib directory. + * + * <p>See also {@extLink idl_guides IDL developer's guide}.</p> + * + * @since JDK1.2 + */ +abstract public class ORB { + + // + // This is the ORB implementation used when nothing else is specified. + // Whoever provides this class customizes this string to + // point at their ORB implementation. + // + private static final String ORBClassKey = "org.omg.CORBA.ORBClass"; + private static final String ORBSingletonClassKey = "org.omg.CORBA.ORBSingletonClass"; + + // check that access to the class is not restricted by the security manager. + private static void checkPackageAccess(String name) { + SecurityManager s = System.getSecurityManager(); + if (s != null) { + String cname = name.replace('/', '.'); + if (cname.startsWith("[")) { + int b = cname.lastIndexOf('[') + 2; + if (b > 1 && b < cname.length()) { + cname = cname.substring(b); + } + } + int i = cname.lastIndexOf('.'); + if (i != -1) { + s.checkPackageAccess(cname.substring(0, i)); + } + } + } + + // + // The global instance of the singleton ORB implementation which + // acts as a factory for typecodes for generated Helper classes. + // TypeCodes should be immutable since they may be shared across + // different security contexts (applets). There should be no way to + // use a TypeCode as a storage depot for illicitly passing + // information or Java objects between different security contexts. + // + static private ORB singleton; + + // Get System property + private static String getSystemProperty(final String name) { + + // This will not throw a SecurityException because this + // class was loaded from rt.jar using the bootstrap classloader. + String propValue = (String) AccessController.doPrivileged( + new PrivilegedAction() { + public java.lang.Object run() { + return System.getProperty(name); + } + } + ); + + return propValue; + } + + // Get property from orb.properties in either <user.home> or <java-home>/lib + // directories. + private static String getPropertyFromFile(final String name) { + // This will not throw a SecurityException because this + // class was loaded from rt.jar using the bootstrap classloader. + + String propValue = (String) AccessController.doPrivileged( + new PrivilegedAction() { + private Properties getFileProperties( String fileName ) { + try { + File propFile = new File( fileName ) ; + if (!propFile.exists()) + return null ; + + Properties props = new Properties() ; + FileInputStream fis = new FileInputStream(propFile); + try { + props.load( fis ); + } finally { + fis.close() ; + } + + return props ; + } catch (Exception exc) { + return null ; + } + } + + public java.lang.Object run() { + String userHome = System.getProperty("user.home"); + String fileName = userHome + File.separator + + "orb.properties" ; + Properties props = getFileProperties( fileName ) ; + + if (props != null) { + String value = props.getProperty( name ) ; + if (value != null) + return value ; + } + + String javaHome = System.getProperty("java.home"); + + fileName = javaHome + File.separator + "conf" + + File.separator + "orb.properties"; + props = getFileProperties(fileName); + + if (props != null) { + String value = props.getProperty(name); + if (value != null) + return value; + } + + fileName = javaHome + File.separator + "lib" + + File.separator + "orb.properties"; + props = getFileProperties(fileName); + + if (props == null) + return null; + else + return props.getProperty(name); + } + } + ); + + return propValue; + } + + /** + * Returns the {@code ORB} singleton object. This method always returns the + * same ORB instance, which is an instance of the class described by the + * {@code org.omg.CORBA.ORBSingletonClass} system property. + * <P> + * This no-argument version of the method {@code init} is used primarily + * as a factory for {@code TypeCode} objects, which are used by + * {@code Helper} classes to implement the method {@code type}. + * It is also used to create {@code Any} objects that are used to + * describe {@code union} labels (as part of creating a + * {@code TypeCode} object for a {@code union}). + * <P> + * This method is not intended to be used by applets, and in the event + * that it is called in an applet environment, the ORB it returns + * is restricted so that it can be used only as a factory for + * {@code TypeCode} objects. Any {@code TypeCode} objects + * it produces can be safely shared among untrusted applets. + * <P> + * If an ORB is created using this method from an applet, + * a system exception will be thrown if + * methods other than those for + * creating {@code TypeCode} objects are invoked. + * + * @return the singleton ORB + * + * @implNote + * When configured via the system property, or orb.properties, + * the system-wide singleton ORB is located via the + * system class loader. + */ + public static synchronized ORB init() { + if (singleton == null) { + String className = getSystemProperty(ORBSingletonClassKey); + if (className == null) + className = getPropertyFromFile(ORBSingletonClassKey); + if ((className == null) || + (className.equals("com.sun.corba.se.impl.orb.ORBSingleton"))) { + singleton = new com.sun.corba.se.impl.orb.ORBSingleton(); + } else { + singleton = create_impl_with_systemclassloader(className); + } + } + return singleton; + } + + private static ORB create_impl_with_systemclassloader(String className) { + + try { + checkPackageAccess(className); + ClassLoader cl = ClassLoader.getSystemClassLoader(); + Class<org.omg.CORBA.ORB> orbBaseClass = org.omg.CORBA.ORB.class; + Class<?> singletonOrbClass = Class.forName(className, true, cl).asSubclass(orbBaseClass); + return (ORB)singletonOrbClass.newInstance(); + } catch (Throwable ex) { + SystemException systemException = new INITIALIZE( + "can't instantiate default ORB implementation " + className); + systemException.initCause(ex); + throw systemException; + } + } + + private static ORB create_impl(String className) { + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + if (cl == null) + cl = ClassLoader.getSystemClassLoader(); + + try { + checkPackageAccess(className); + Class<org.omg.CORBA.ORB> orbBaseClass = org.omg.CORBA.ORB.class; + Class<?> orbClass = Class.forName(className, true, cl).asSubclass(orbBaseClass); + return (ORB)orbClass.newInstance(); + } catch (Throwable ex) { + SystemException systemException = new INITIALIZE( + "can't instantiate default ORB implementation " + className); + systemException.initCause(ex); + throw systemException; + } + } + + /** + * Creates a new {@code ORB} instance for a standalone + * application. This method may be called from applications + * only and returns a new fully functional {@code ORB} object + * each time it is called. + * @param args command-line arguments for the application's {@code main} + * method; may be {@code null} + * @param props application-specific properties; may be {@code null} + * @return the newly-created ORB instance + * + * @implNote + * When configured via the system property, or orb.properties, + * the ORB is located via the thread context class loader. + */ + public static ORB init(String[] args, Properties props) { + // + // Note that there is no standard command-line argument for + // specifying the default ORB implementation. For an + // application you can choose an implementation either by + // setting the CLASSPATH to pick a different org.omg.CORBA + // and it's baked-in ORB implementation default or by + // setting an entry in the properties object or in the + // system properties. + // + String className = null; + ORB orb; + + if (props != null) + className = props.getProperty(ORBClassKey); + if (className == null) + className = getSystemProperty(ORBClassKey); + if (className == null) + className = getPropertyFromFile(ORBClassKey); + if ((className == null) || + (className.equals("com.sun.corba.se.impl.orb.ORBImpl"))) { + orb = new com.sun.corba.se.impl.orb.ORBImpl(); + } else { + orb = create_impl(className); + } + orb.set_parameters(args, props); + return orb; + } + + + /** + * Creates a new {@code ORB} instance for an applet. This + * method may be called from applets only and returns a new + * fully-functional {@code ORB} object each time it is called. + * @param app the applet; may be {@code null} + * @param props applet-specific properties; may be {@code null} + * @return the newly-created ORB instance + * + * @implNote + * When configured via the system property, or orb.properties, + * the ORB is located via the thread context class loader. + */ + public static ORB init(Applet app, Properties props) { + String className; + ORB orb; + + className = app.getParameter(ORBClassKey); + if (className == null && props != null) + className = props.getProperty(ORBClassKey); + if (className == null) + className = getSystemProperty(ORBClassKey); + if (className == null) + className = getPropertyFromFile(ORBClassKey); + if ((className == null) || + (className.equals("com.sun.corba.se.impl.orb.ORBImpl"))) { + orb = new com.sun.corba.se.impl.orb.ORBImpl(); + } else { + orb = create_impl(className); + } + orb.set_parameters(app, props); + return orb; + } + + /** + * Allows the ORB implementation to be initialized with the given + * parameters and properties. This method, used in applications only, + * is implemented by subclass ORB implementations and called + * by the appropriate {@code init} method to pass in its parameters. + * + * @param args command-line arguments for the application's {@code main} + * method; may be {@code null} + * @param props application-specific properties; may be {@code null} + */ + abstract protected void set_parameters(String[] args, Properties props); + + /** + * Allows the ORB implementation to be initialized with the given + * applet and parameters. This method, used in applets only, + * is implemented by subclass ORB implementations and called + * by the appropriate {@code init} method to pass in its parameters. + * + * @param app the applet; may be {@code null} + * @param props applet-specific properties; may be {@code null} + */ + abstract protected void set_parameters(Applet app, Properties props); + + /** + * Connects the given servant object (a Java object that is + * an instance of the server implementation class) + * to the ORB. The servant class must + * extend the {@code ImplBase} class corresponding to the interface that is + * supported by the server. The servant must thus be a CORBA object + * reference, and inherit from {@code org.omg.CORBA.Object}. + * Servants created by the user can start receiving remote invocations + * after the method {@code connect} has been called. A servant may also be + * automatically and implicitly connected to the ORB if it is passed as + * an IDL parameter in an IDL method invocation on a non-local object, + * that is, if the servant object has to be marshalled and sent outside of the + * process address space. + * <P> + * Calling the method {@code connect} has no effect + * when the servant object is already connected to the ORB. + * <P> + * Deprecated by the OMG in favor of the Portable Object Adapter APIs. + * + * @param obj The servant object reference + */ + public void connect(org.omg.CORBA.Object obj) { + throw new NO_IMPLEMENT(); + } + + /** + * Destroys the ORB so that its resources can be reclaimed. + * Any operation invoked on a destroyed ORB reference will throw the + * {@code OBJECT_NOT_EXIST} exception. + * Once an ORB has been destroyed, another call to {@code init} + * with the same ORBid will return a reference to a newly constructed ORB.<p> + * If {@code destroy} is called on an ORB that has not been shut down, + * it will start the shut down process and block until the ORB has shut down + * before it destroys the ORB.<br> + * If an application calls {@code destroy} in a thread that is currently servicing + * an invocation, the {@code BAD_INV_ORDER} system exception will be thrown + * with the OMG minor code 3, since blocking would result in a deadlock.<p> + * For maximum portability and to avoid resource leaks, an application should + * always call {@code shutdown} and {@code destroy} + * on all ORB instances before exiting. + * + * @throws org.omg.CORBA.BAD_INV_ORDER if the current thread is servicing an invocation + */ + public void destroy( ) { + throw new NO_IMPLEMENT(); + } + + /** + * Disconnects the given servant object from the ORB. After this method returns, + * the ORB will reject incoming remote requests for the disconnected + * servant and will send the exception + * {@code org.omg.CORBA.OBJECT_NOT_EXIST} back to the + * remote client. Thus the object appears to be destroyed from the + * point of view of remote clients. Note, however, that local requests issued + * using the servant directly do not + * pass through the ORB; hence, they will continue to be processed by the + * servant. + * <P> + * Calling the method {@code disconnect} has no effect + * if the servant is not connected to the ORB. + * <P> + * Deprecated by the OMG in favor of the Portable Object Adapter APIs. + * + * @param obj The servant object to be disconnected from the ORB + */ + public void disconnect(org.omg.CORBA.Object obj) { + throw new NO_IMPLEMENT(); + } + + // + // ORB method implementations. + // + // We are trying to accomplish 2 things at once in this class. + // It can act as a default ORB implementation front-end, + // creating an actual ORB implementation object which is a + // subclass of this ORB class and then delegating the method + // implementations. + // + // To accomplish the delegation model, the 'delegate' private instance + // variable is set if an instance of this class is created directly. + // + + /** + * Returns a list of the initially available CORBA object references, + * such as "NameService" and "InterfaceRepository". + * + * @return an array of {@code String} objects that represent + * the object references for CORBA services + * that are initially available with this ORB + */ + abstract public String[] list_initial_services(); + + /** + * Resolves a specific object reference from the set of available + * initial service names. + * + * @param object_name the name of the initial service as a string + * @return the object reference associated with the given name + * @exception InvalidName if the given name is not associated with a + * known service + */ + abstract public org.omg.CORBA.Object resolve_initial_references(String object_name) + throws InvalidName; + + /** + * Converts the given CORBA object reference to a string. + * Note that the format of this string is predefined by IIOP, allowing + * strings generated by a different ORB to be converted back into an object + * reference. + * <P> + * The resulting {@code String} object may be stored or communicated + * in any way that a {@code String} object can be manipulated. + * + * @param obj the object reference to stringify + * @return the string representing the object reference + */ + abstract public String object_to_string(org.omg.CORBA.Object obj); + + /** + * Converts a string produced by the method {@code object_to_string} + * back to a CORBA object reference. + * + * @param str the string to be converted back to an object reference. It must + * be the result of converting an object reference to a string using the + * method {@code object_to_string}. + * @return the object reference + */ + abstract public org.omg.CORBA.Object string_to_object(String str); + + /** + * Allocates an {@code NVList} with (probably) enough + * space for the specified number of {@code NamedValue} objects. + * Note that the specified size is only a hint to help with + * storage allocation and does not imply the maximum size of the list. + * + * @param count suggested number of {@code NamedValue} objects for + * which to allocate space + * @return the newly-created {@code NVList} + * + * @see NVList + */ + abstract public NVList create_list(int count); + + /** + * Creates an {@code NVList} initialized with argument + * descriptions for the operation described in the given + * {@code OperationDef} object. This {@code OperationDef} object + * is obtained from an Interface Repository. The arguments in the + * returned {@code NVList} object are in the same order as in the + * original IDL operation definition, which makes it possible for the list + * to be used in dynamic invocation requests. + * + * @param oper the {@code OperationDef} object to use to create the list + * @return a newly-created {@code NVList} object containing + * descriptions of the arguments to the method described in the given + * {@code OperationDef} object + * + * @see NVList + */ + public NVList create_operation_list(org.omg.CORBA.Object oper) + { + // If we came here, it means that the actual ORB implementation + // did not have a create_operation_list(...CORBA.Object oper) method, + // so lets check if it has a create_operation_list(OperationDef oper) + // method. + try { + // First try to load the OperationDef class + String opDefClassName = "org.omg.CORBA.OperationDef"; + Class<?> opDefClass = null; + + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + if ( cl == null ) + cl = ClassLoader.getSystemClassLoader(); + // if this throws a ClassNotFoundException, it will be caught below. + opDefClass = Class.forName(opDefClassName, true, cl); + + // OK, we loaded OperationDef. Now try to get the + // create_operation_list(OperationDef oper) method. + Class<?>[] argc = { opDefClass }; + java.lang.reflect.Method meth = + this.getClass().getMethod("create_operation_list", argc); + + // OK, the method exists, so invoke it and be happy. + java.lang.Object[] argx = { oper }; + return (org.omg.CORBA.NVList)meth.invoke(this, argx); + } + catch( java.lang.reflect.InvocationTargetException exs ) { + Throwable t = exs.getTargetException(); + if (t instanceof Error) { + throw (Error) t; + } + else if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + else { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } + catch( RuntimeException ex ) { + throw ex; + } + catch( Exception exr ) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } + + + /** + * Creates a {@code NamedValue} object + * using the given name, value, and argument mode flags. + * <P> + * A {@code NamedValue} object serves as (1) a parameter or return + * value or (2) a context property. + * It may be used by itself or + * as an element in an {@code NVList} object. + * + * @param s the name of the {@code NamedValue} object + * @param any the {@code Any} value to be inserted into the + * {@code NamedValue} object + * @param flags the argument mode flags for the {@code NamedValue}: one of + * {@code ARG_IN.value}, {@code ARG_OUT.value}, + * or {@code ARG_INOUT.value}. + * + * @return the newly-created {@code NamedValue} object + * @see NamedValue + */ + abstract public NamedValue create_named_value(String s, Any any, int flags); + + /** + * Creates an empty {@code ExceptionList} object. + * + * @return the newly-created {@code ExceptionList} object + */ + abstract public ExceptionList create_exception_list(); + + /** + * Creates an empty {@code ContextList} object. + * + * @return the newly-created {@code ContextList} object + * @see ContextList + * @see Context + */ + abstract public ContextList create_context_list(); + + /** + * Gets the default {@code Context} object. + * + * @return the default {@code Context} object + * @see Context + */ + abstract public Context get_default_context(); + + /** + * Creates an {@code Environment} object. + * + * @return the newly-created {@code Environment} object + * @see Environment + */ + abstract public Environment create_environment(); + + /** + * Creates a new {@code org.omg.CORBA.portable.OutputStream} into which + * IDL method parameters can be marshalled during method invocation. + * @return the newly-created + * {@code org.omg.CORBA.portable.OutputStream} object + */ + abstract public org.omg.CORBA.portable.OutputStream create_output_stream(); + + /** + * Sends multiple dynamic (DII) requests asynchronously without expecting + * any responses. Note that oneway invocations are not guaranteed to + * reach the server. + * + * @param req an array of request objects + */ + abstract public void send_multiple_requests_oneway(Request[] req); + + /** + * Sends multiple dynamic (DII) requests asynchronously. + * + * @param req an array of {@code Request} objects + */ + abstract public void send_multiple_requests_deferred(Request[] req); + + /** + * Finds out if any of the deferred (asynchronous) invocations have + * a response yet. + * @return {@code true} if there is a response available; + * {@code false} otherwise + */ + abstract public boolean poll_next_response(); + + /** + * Gets the next {@code Request} instance for which a response + * has been received. + * + * @return the next {@code Request} object ready with a response + * @exception WrongTransaction if the method {@code get_next_response} + * is called from a transaction scope different + * from the one from which the original request was sent. See the + * OMG Transaction Service specification for details. + */ + abstract public Request get_next_response() throws WrongTransaction; + + /** + * Retrieves the {@code TypeCode} object that represents + * the given primitive IDL type. + * + * @param tcKind the {@code TCKind} instance corresponding to the + * desired primitive type + * @return the requested {@code TypeCode} object + */ + abstract public TypeCode get_primitive_tc(TCKind tcKind); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code struct}. + * The {@code TypeCode} object is initialized with the given id, + * name, and members. + * + * @param id the repository id for the {@code struct} + * @param name the name of the {@code struct} + * @param members an array describing the members of the {@code struct} + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code struct} + */ + abstract public TypeCode create_struct_tc(String id, String name, + StructMember[] members); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code union}. + * The {@code TypeCode} object is initialized with the given id, + * name, discriminator type, and members. + * + * @param id the repository id of the {@code union} + * @param name the name of the {@code union} + * @param discriminator_type the type of the {@code union} discriminator + * @param members an array describing the members of the {@code union} + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code union} + */ + abstract public TypeCode create_union_tc(String id, String name, + TypeCode discriminator_type, + UnionMember[] members); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code enum}. + * The {@code TypeCode} object is initialized with the given id, + * name, and members. + * + * @param id the repository id for the {@code enum} + * @param name the name for the {@code enum} + * @param members an array describing the members of the {@code enum} + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code enum} + */ + abstract public TypeCode create_enum_tc(String id, String name, String[] members); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code alias} + * ({@code typedef}). + * The {@code TypeCode} object is initialized with the given id, + * name, and original type. + * + * @param id the repository id for the alias + * @param name the name for the alias + * @param original_type + * the {@code TypeCode} object describing the original type + * for which this is an alias + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code alias} + */ + abstract public TypeCode create_alias_tc(String id, String name, + TypeCode original_type); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code exception}. + * The {@code TypeCode} object is initialized with the given id, + * name, and members. + * + * @param id the repository id for the {@code exception} + * @param name the name for the {@code exception} + * @param members an array describing the members of the {@code exception} + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code exception} + */ + abstract public TypeCode create_exception_tc(String id, String name, + StructMember[] members); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code interface}. + * The {@code TypeCode} object is initialized with the given id + * and name. + * + * @param id the repository id for the interface + * @param name the name for the interface + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code interface} + */ + + abstract public TypeCode create_interface_tc(String id, String name); + + /** + * Creates a {@code TypeCode} object representing a bounded IDL + * {@code string}. + * The {@code TypeCode} object is initialized with the given bound, + * which represents the maximum length of the string. Zero indicates + * that the string described by this type code is unbounded. + * + * @param bound the bound for the {@code string}; cannot be negative + * @return a newly-created {@code TypeCode} object describing + * a bounded IDL {@code string} + * @exception BAD_PARAM if bound is a negative value + */ + + abstract public TypeCode create_string_tc(int bound); + + /** + * Creates a {@code TypeCode} object representing a bounded IDL + * {@code wstring} (wide string). + * The {@code TypeCode} object is initialized with the given bound, + * which represents the maximum length of the wide string. Zero indicates + * that the string described by this type code is unbounded. + * + * @param bound the bound for the {@code wstring}; cannot be negative + * @return a newly-created {@code TypeCode} object describing + * a bounded IDL {@code wstring} + * @exception BAD_PARAM if bound is a negative value + */ + abstract public TypeCode create_wstring_tc(int bound); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code sequence}. + * The {@code TypeCode} object is initialized with the given bound and + * element type. + * + * @param bound the bound for the {@code sequence}, 0 if unbounded + * @param element_type the {@code TypeCode} object describing + * the elements contained in the {@code sequence} + * + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code sequence} + */ + abstract public TypeCode create_sequence_tc(int bound, TypeCode element_type); + + /** + * Creates a {@code TypeCode} object representing a + * a recursive IDL {@code sequence}. + * <P> + * For the IDL {@code struct} Node in following code fragment, + * the offset parameter for creating its sequence would be 1: + * <PRE> + * Struct Node { + * long value; + * Sequence <Node> subnodes; + * }; + * </PRE> + * + * @param bound the bound for the sequence, 0 if unbounded + * @param offset the index to the enclosing {@code TypeCode} object + * that describes the elements of this sequence + * @return a newly-created {@code TypeCode} object describing + * a recursive sequence + * @deprecated Use a combination of create_recursive_tc and create_sequence_tc instead + * @see #create_recursive_tc(String) create_recursive_tc + * @see #create_sequence_tc(int, TypeCode) create_sequence_tc + */ + @Deprecated + abstract public TypeCode create_recursive_sequence_tc(int bound, int offset); + + /** + * Creates a {@code TypeCode} object representing an IDL {@code array}. + * The {@code TypeCode} object is initialized with the given length and + * element type. + * + * @param length the length of the {@code array} + * @param element_type a {@code TypeCode} object describing the type + * of element contained in the {@code array} + * @return a newly-created {@code TypeCode} object describing + * an IDL {@code array} + */ + abstract public TypeCode create_array_tc(int length, TypeCode element_type); + + /** + * Create a {@code TypeCode} object for an IDL native type. + * + * @param id the logical id for the native type. + * @param name the name of the native type. + * @return the requested TypeCode. + */ + public org.omg.CORBA.TypeCode create_native_tc(String id, + String name) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Create a {@code TypeCode} object for an IDL abstract interface. + * + * @param id the logical id for the abstract interface type. + * @param name the name of the abstract interface type. + * @return the requested TypeCode. + */ + public org.omg.CORBA.TypeCode create_abstract_interface_tc( + String id, + String name) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Create a {@code TypeCode} object for an IDL fixed type. + * + * @param digits specifies the total number of decimal digits in the number + * and must be from 1 to 31 inclusive. + * @param scale specifies the position of the decimal point. + * @return the requested TypeCode. + */ + public org.omg.CORBA.TypeCode create_fixed_tc(short digits, short scale) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + // orbos 98-01-18: Objects By Value -- begin + + + /** + * Create a {@code TypeCode} object for an IDL value type. + * The concrete_base parameter is the TypeCode for the immediate + * concrete valuetype base of the valuetype for which the TypeCode + * is being created. + * It may be null if the valuetype does not have a concrete base. + * + * @param id the logical id for the value type. + * @param name the name of the value type. + * @param type_modifier one of the value type modifier constants: + * VM_NONE, VM_CUSTOM, VM_ABSTRACT or VM_TRUNCATABLE + * @param concrete_base a {@code TypeCode} object + * describing the concrete valuetype base + * @param members an array containing the members of the value type + * @return the requested TypeCode + */ + public org.omg.CORBA.TypeCode create_value_tc(String id, + String name, + short type_modifier, + TypeCode concrete_base, + ValueMember[] members) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Create a recursive {@code TypeCode} object which + * serves as a placeholder for a concrete TypeCode during the process of creating + * TypeCodes which contain recursion. The id parameter specifies the repository id of + * the type for which the recursive TypeCode is serving as a placeholder. Once the + * recursive TypeCode has been properly embedded in the enclosing TypeCode which + * corresponds to the specified repository id, it will function as a normal TypeCode. + * Invoking operations on the recursive TypeCode before it has been embedded in the + * enclosing TypeCode will result in a {@code BAD_TYPECODE} exception. + * <P> + * For example, the following IDL type declaration contains recursion: + * <PRE> + * Struct Node { + * Sequence<Node> subnodes; + * }; + * </PRE> + * <P> + * To create a TypeCode for struct Node, you would invoke the TypeCode creation + * operations as shown below: + * <PRE> + * String nodeID = "IDL:Node:1.0"; + * TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID)); + * StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) }; + * TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members); + * </PRE> + * <P> + * Also note that the following is an illegal IDL type declaration: + * <PRE> + * Struct Node { + * Node next; + * }; + * </PRE> + * <P> + * Recursive types can only appear within sequences which can be empty. + * That way marshaling problems, when transmitting the struct in an Any, are avoided. + * + * @param id the logical id of the referenced type + * @return the requested TypeCode + */ + public org.omg.CORBA.TypeCode create_recursive_tc(String id) { + // implemented in subclass + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a {@code TypeCode} object for an IDL value box. + * + * @param id the logical id for the value type + * @param name the name of the value type + * @param boxed_type the TypeCode for the type + * @return the requested TypeCode + */ + public org.omg.CORBA.TypeCode create_value_box_tc(String id, + String name, + TypeCode boxed_type) + { + // implemented in subclass + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + // orbos 98-01-18: Objects By Value -- end + + /** + * Creates an IDL {@code Any} object initialized to + * contain a {@code Typecode} object whose {@code kind} field + * is set to {@code TCKind.tc_null}. + * + * @return a newly-created {@code Any} object + */ + abstract public Any create_any(); + + + + + /** + * Retrieves a {@code Current} object. + * The {@code Current} interface is used to manage thread-specific + * information for use by services such as transactions and security. + * + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * + * @return a newly-created {@code Current} object + * @deprecated use {@code resolve_initial_references}. + */ + @Deprecated + public org.omg.CORBA.Current get_current() + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * This operation blocks the current thread until the ORB has + * completed the shutdown process, initiated when some thread calls + * {@code shutdown}. It may be used by multiple threads which + * get all notified when the ORB shuts down. + * + */ + public void run() + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Instructs the ORB to shut down, which causes all + * object adapters to shut down, in preparation for destruction.<br> + * If the {@code wait_for_completion} parameter + * is true, this operation blocks until all ORB processing (including + * processing of currently executing requests, object deactivation, + * and other object adapter operations) has completed. + * If an application does this in a thread that is currently servicing + * an invocation, the {@code BAD_INV_ORDER} system exception + * will be thrown with the OMG minor code 3, + * since blocking would result in a deadlock.<br> + * If the {@code wait_for_completion} parameter is {@code FALSE}, + * then shutdown may not have completed upon return.<p> + * While the ORB is in the process of shutting down, the ORB operates as normal, + * servicing incoming and outgoing requests until all requests have been completed. + * Once an ORB has shutdown, only object reference management operations + * may be invoked on the ORB or any object reference obtained from it. + * An application may also invoke the {@code destroy} operation on the ORB itself. + * Invoking any other operation will throw the {@code BAD_INV_ORDER} + * system exception with the OMG minor code 4.<p> + * The {@code ORB.run} method will return after + * {@code shutdown} has been called. + * + * @param wait_for_completion {@code true} if the call + * should block until the shutdown is complete; + * {@code false} if it should return immediately + * @throws org.omg.CORBA.BAD_INV_ORDER if the current thread is servicing + * an invocation + */ + public void shutdown(boolean wait_for_completion) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Returns {@code true} if the ORB needs the main thread to + * perform some work, and {@code false} if the ORB does not + * need the main thread. + * + * @return {@code true} if there is work pending, meaning that the ORB + * needs the main thread to perform some work; {@code false} + * if there is no work pending and thus the ORB does not need the + * main thread + * + */ + public boolean work_pending() + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Performs an implementation-dependent unit of work if called + * by the main thread. Otherwise it does nothing. + * The methods {@code work_pending} and {@code perform_work} + * can be used in + * conjunction to implement a simple polling loop that multiplexes + * the main thread among the ORB and other activities. + * + */ + public void perform_work() + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Used to obtain information about CORBA facilities and services + * that are supported by this ORB. The service type for which + * information is being requested is passed in as the in + * parameter {@code service_type}, the values defined by + * constants in the CORBA module. If service information is + * available for that type, that is returned in the out parameter + * {@code service_info}, and the operation returns the + * value {@code true}. If no information for the requested + * services type is available, the operation returns {@code false} + * (i.e., the service is not supported by this ORB). + * + * @param service_type a {@code short} indicating the + * service type for which information is being requested + * @param service_info a {@code ServiceInformationHolder} object + * that will hold the {@code ServiceInformation} object + * produced by this method + * @return {@code true} if service information is available + * for the {@code service_type}; + * {@code false} if no information for the + * requested services type is available + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public boolean get_service_information(short service_type, + ServiceInformationHolder service_info) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + // orbos 98-01-18: Objects By Value -- begin + + /** + * Creates a new {@code DynAny} object from the given + * {@code Any} object. + * + * @param value the {@code Any} object from which to create a new + * {@code DynAny} object + * @return the new {@code DynAny} object created from the given + * {@code Any} object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynAny create_dyn_any(org.omg.CORBA.Any value) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a basic {@code DynAny} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynAny} object + * @return the new {@code DynAny} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynAny create_basic_dyn_any(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a new {@code DynStruct} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynStruct} object + * @return the new {@code DynStruct} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynStruct create_dyn_struct(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a new {@code DynSequence} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynSequence} object + * @return the new {@code DynSequence} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynSequence create_dyn_sequence(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Creates a new {@code DynArray} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynArray} object + * @return the new {@code DynArray} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynArray create_dyn_array(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a new {@code DynUnion} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynUnion} object + * @return the new {@code DynUnion} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynUnion create_dyn_union(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Creates a new {@code DynEnum} object from the given + * {@code TypeCode} object. + * + * @param type the {@code TypeCode} object from which to create a new + * {@code DynEnum} object + * @return the new {@code DynEnum} object created from the given + * {@code TypeCode} object + * @throws org.omg.CORBA.ORBPackage.InconsistentTypeCode if the given + * {@code TypeCode} object is not consistent with the operation. + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + * @deprecated Use the new <a href="../DynamicAny/DynAnyFactory.html">DynAnyFactory</a> API instead + */ + @Deprecated + public org.omg.CORBA.DynEnum create_dyn_enum(org.omg.CORBA.TypeCode type) throws org.omg.CORBA.ORBPackage.InconsistentTypeCode + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Can be invoked to create new instances of policy objects + * of a specific type with specified initial state. If + * {@code create_policy} fails to instantiate a new Policy + * object due to its inability to interpret the requested type + * and content of the policy, it raises the {@code PolicyError} + * exception with the appropriate reason. + * @param type the {@code PolicyType} of the policy object to + * be created + * @param val the value that will be used to set the initial + * state of the {@code Policy} object that is created + * @return Reference to a newly created {@code Policy} object + * of type specified by the {@code type} parameter and + * initialized to a state specified by the {@code val} + * parameter + * @throws org.omg.CORBA.PolicyError when the requested + * policy is not supported or a requested initial state + * for the policy is not supported. + */ + public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val) + throws org.omg.CORBA.PolicyError + { + // Currently not implemented until PIORB. + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java new file mode 100644 index 0000000..a608d82 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.ORBPackage; + +/** + * InconsistentTypeCode is thrown when an attempt is made to create a + * dynamic any with a type code that does not match the particular + * subclass of <code>DynAny</code>. + */ +public final class InconsistentTypeCode + extends org.omg.CORBA.UserException { + /** + * Constructs an <code>InconsistentTypeCode</code> user exception + * with no reason message. + */ + public InconsistentTypeCode() { + super(); + } + + /** + * Constructs an <code>InconsistentTypeCode</code> user exception + * with the specified reason message. + * @param reason The String containing a reason message + */ + public InconsistentTypeCode(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java new file mode 100644 index 0000000..1079d95 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.ORBPackage; + +/** + * The <code>InvalidName</code> exception is raised when + * <code>ORB.resolve_initial_references</code> is passed a name + * for which there is no initial reference. + * + * @see org.omg.CORBA.ORB#resolve_initial_references(String) + * @since JDK1.2 + */ + +final public class InvalidName extends org.omg.CORBA.UserException { + /** + * Constructs an <code>InvalidName</code> exception with no reason message. + */ + public InvalidName() { + super(); + } + + /** + * Constructs an <code>InvalidName</code> exception with the specified + * reason message. + * @param reason the String containing a reason message + */ + public InvalidName(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java new file mode 100644 index 0000000..afb6dac --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.ORBPackage; + + +/** + * This Helper class is used to facilitate the marshalling of + * {@code ORBPackage/InvalidName}. + * For more information on Helper files, see + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>. + */ + +abstract public class InvalidNameHelper +{ + private static String _id = "IDL:omg.org.CORBA/ORB/InvalidName:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.ORBPackage.InvalidName that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.ORBPackage.InvalidName extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.ORBPackage.InvalidNameHelper.id (), "InvalidName", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.ORBPackage.InvalidName read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.ORBPackage.InvalidName value = new org.omg.CORBA.ORBPackage.InvalidName (); + // read and discard the repository ID + istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.ORBPackage.InvalidName value) + { + // write the repository ID + ostream.write_string (id ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html new file mode 100644 index 0000000..7fcb5e8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/package.html @@ -0,0 +1,50 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. +--> +</head> +<body bgcolor="white"> + +Provides the exception <code>InvalidName</code>, which is thrown +by the method <code>ORB.resolve_initial_references</code> +and the exception <code>InconsistentTypeCode</code>, which is thrown +by the Dynamic Any creation methods in the ORB class. + + + <h2>Related Documentation</h2> + +For an overview, please see: +<ul> + <li><a href="../package-summary.html#package_description"> + comments on the <code>CORBA</code> package</a> + + </ul> + + +@since JDK1.2 +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA/Object.java b/src/java.corba/share/classes/org/omg/CORBA/Object.java new file mode 100644 index 0000000..7875dd9 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Object.java @@ -0,0 +1,282 @@ +/* + * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The definition for a CORBA object reference. + * <p> + * A CORBA object reference is a handle for a particular + * CORBA object implemented by a server. A CORBA object reference + * identifies the same CORBA object each time the reference is used to invoke + * a method on the object. + * A CORBA object may have multiple, distinct object references. + * <p> + * The <code>org.omg.CORBA.Object</code> interface is the root of + * the inheritance hierarchy for all CORBA object references in the Java + * programming language, analogous to <code>java.rmi.Remote</code> + * for RMI remote objects. + * <p> + * A CORBA object may be either local or remote. + * If it is a local object (that is, running in the same + * VM as the client), invocations may be directly serviced by + * the object instance, and the object reference could point to the actual + * instance of the object implementation class. + * If a CORBA object is a remote object (that is, running in a different + * VM from the client), the object reference points to a stub (proxy) which uses the + * ORB machinery to make a remote invocation on the server where the object + * implementation resides. + * <p> + * Default implementations of the methods in the interface + * <code>org.omg.CORBA.Object</code> + * are provided in the class <code>org.omg.CORBA.portable.ObjectImpl</code>, + * which is the base class for stubs and object implementations. + * + * @see org.omg.CORBA.portable.ObjectImpl + */ + +public interface Object { + + /** + * Checks whether this object is an instance of a class that + * implements the given interface. + * + * @param repositoryIdentifier the interface to check against + * @return <code>true</code> if this object reference is an instance + * of a class that implements the interface; + * <code>false</code> otherwise + */ + boolean _is_a(String repositoryIdentifier); + + + /** + * Determines whether the two object references are equivalent, + * so far as the ORB can easily determine. Two object references are equivalent + * if they are identical. Two distinct object references which in fact refer to + * the same object are also equivalent. However, ORBs are not required + * to attempt determination of whether two distinct object references + * refer to the same object, since such determination could be impractically + * expensive. + * @param other the other object reference with which to check for equivalence + * @return <code>true</code> if this object reference is known to be + * equivalent to the given object reference. + * Note that <code>false</code> indicates only that the two + * object references are distinct, not necessarily that + * they reference distinct objects. + */ + boolean _is_equivalent(org.omg.CORBA.Object other); + + + /** + * Determines whether the server object for this object reference has been + * destroyed. + * @return <code>true</code> if the ORB knows authoritatively that the + * server object does not exist; <code>false</code> otherwise + */ + boolean _non_existent(); + + + /** + * Returns an ORB-internal identifier for this object reference. + * This is a hash identifier, which does + * not change during the lifetime of the object reference, and so + * neither will any hash function of that identifier change. The value returned + * is not guaranteed to be unique; in other words, another object + * reference may have the same hash value. + * If two object references hash differently, + * then they are distinct object references; however, both may still refer + * to the same CORBA object. + * + * @param maximum the upper bound on the hash value returned by the ORB + * @return the ORB-internal hash identifier for this object reference + */ + int _hash(int maximum); + + + /** + * Returns a duplicate of this CORBA object reference. + * The server object implementation is not involved in creating + * the duplicate, and the implementation cannot distinguish whether + * the original object reference or a duplicate was used to make a request. + * <P> + * Note that this method is not very useful in the Java platform, + * since memory management is handled by the VM. + * It is included for compliance with the CORBA APIs. + * <P> + * The method <code>_duplicate</code> may return this object reference itself. + * + * @return a duplicate of this object reference or this object reference + * itself + */ + org.omg.CORBA.Object _duplicate(); + + + /** + * Signals that the caller is done using this object reference, so + * internal ORB resources associated with this object reference can be + * released. Note that the object implementation is not involved in + * this operation, and other references to the same object are not affected. + */ + void _release(); + + + /** + * Obtains an <code>InterfaceDef</code> for the object implementation + * referenced by this object reference. + * The <code>InterfaceDef</code> object + * may be used to introspect on the methods, attributes, and other + * type information for the object referred to by this object reference. + * + * @return the <code>InterfaceDef</code> object in the Interface Repository + * which provides type information about the object referred to by + * this object reference + */ + org.omg.CORBA.Object _get_interface_def(); + + + + /** + * Creates a <code>Request</code> instance for use in the + * Dynamic Invocation Interface. + * + * @param operation the name of the method to be invoked using the + * <code>Request</code> instance + * @return the newly-created <code>Request</code> instance + */ + Request _request(String operation); + + + + /** + * Creates a <code>Request</code> instance initialized with the + * given context, method name, list of arguments, and container + * for the method's return value. + * + * @param ctx a <code>Context</code> object containing + * a list of properties + * @param operation the name of the method to be invoked + * @param arg_list an <code>NVList</code> containing the actual arguments + * to the method being invoked + * @param result a <code>NamedValue</code> object to serve as a + * container for the method's return value + * @return the newly-created <code>Request</code> object + * + * @see Request + * @see NVList + * @see NamedValue + */ + + Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result); + + /** + * Creates a <code>Request</code> instance initialized with the + * given context, method name, list of arguments, container + * for the method's return value, list of possible exceptions, + * and list of context strings needing to be resolved. + * + * @param ctx a <code>Context</code> object containing + * a list of properties + * @param operation the name of the method to be invoked + * @param arg_list an <code>NVList</code> containing the actual arguments + * to the method being invoked + * @param result a <code>NamedValue</code> object to serve as a + * container for the method's return value + * @param exclist an <code>ExceptionList</code> object containing a + * list of possible exceptions the method can throw + * @param ctxlist a <code>ContextList</code> object containing a list of + * context strings that need to be resolved and sent with the + * <code>Request</code> instance + * @return the newly-created <code>Request</code> object + * + * @see Request + * @see NVList + * @see NamedValue + * @see ExceptionList + * @see ContextList + */ + + Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result, + ExceptionList exclist, + ContextList ctxlist); + + + + + /** + * Returns the <code>Policy</code> object of the specified type + * which applies to this object. + * + * @param policy_type the type of policy to be obtained + * @return A <code>Policy</code> object of the type specified by + * the policy_type parameter + * @exception org.omg.CORBA.BAD_PARAM when the value of policy type + * is not valid either because the specified type is not supported by this + * ORB or because a policy object of that type is not associated with this + * Object + */ + Policy _get_policy(int policy_type); + + + /** + * Retrieves the <code>DomainManagers</code> of this object. + * This allows administration services (and applications) to retrieve the + * domain managers, and hence the security and other policies applicable + * to individual objects that are members of the domain. + * + * @return the list of immediately enclosing domain managers of this object. + * At least one domain manager is always returned in the list since by + * default each object is associated with at least one domain manager at + * creation. + */ + DomainManager[] _get_domain_managers(); + + + /** + * Returns a new <code>Object</code> with the given policies + * either replacing any existing policies in this + * <code>Object</code> or with the given policies added + * to the existing ones, depending on the value of the + * given <code>SetOverrideType</code> object. + * + * @param policies an array of <code>Policy</code> objects containing + * the policies to be added or to be used as replacements + * @param set_add either <code>SetOverrideType.SET_OVERRIDE</code>, indicating + * that the given policies will replace any existing ones, or + * <code>SetOverrideType.ADD_OVERRIDE</code>, indicating that + * the given policies should be added to any existing ones + * @return a new <code>Object</code> with the given policies replacing + * or added to those in this <code>Object</code> + */ + org.omg.CORBA.Object _set_policy_override(Policy[] policies, + SetOverrideType set_add); + + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java new file mode 100644 index 0000000..85aa169 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ObjectHelper.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * The Helper for {@code Object}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + */ + +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA; + +abstract public class ObjectHelper +{ + private static String _id = ""; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Object that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.Object extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (TCKind.tk_objref); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Object read (org.omg.CORBA.portable.InputStream istream) + { + return istream.read_Object (); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Object value) + { + ostream.write_Object (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java new file mode 100644 index 0000000..f83f3b3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ObjectHolder.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + + +/** + * The Holder for {@code Object}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a CORBA object reference (a value of type + * {@code org.omg.CORBA.Object}). It is usually + * used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has a CORBA Object reference as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code ObjectHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myObjectHolder} is an instance of {@code ObjectHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myObjectHolder.value}. + * + * @since JDK1.2 + */ +public final class ObjectHolder implements Streamable { + /** + * The {@code Object} value held by this {@code ObjectHolder} + * object. + */ + public Object value; + + /** + * Constructs a new {@code ObjectHolder} object with its + * {@code value} field initialized to {@code null}. + */ + public ObjectHolder() { + } + + /** + * Constructs a new {@code ObjectHolder} object with its + * {@code value} field initialized to the given + * {@code Object}. + * @param initial the {@code Object} with which to initialize + * the {@code value} field of the newly-created + * {@code ObjectHolder} object + */ + public ObjectHolder(Object initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in + * this {@code ObjectHolder} object + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire. + */ + public void _read(InputStream input) { + value = input.read_Object(); + } + + /** + * Marshals to {@code output} the value in + * this {@code ObjectHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data. + */ + public void _write(OutputStream output) { + output.write_Object(value); + } + + /** + * Returns the TypeCode corresponding to the value held in + * this {@code ObjectHolder} object + * + * @return the TypeCode of the value held in + * this {@code ObjectHolder} object + */ + public org.omg.CORBA.TypeCode _type() { + return org.omg.CORBA.ORB.init().get_primitive_tc(TCKind.tk_objref); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java new file mode 100644 index 0000000..ca03a6a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code OctetSeq}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/OctetSeqHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + * + * The class definition has been modified to conform to the following + * OMG specifications : + * <ul> + * <li> ORB core as defined by CORBA 2.3.1 + * (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) + * </li> + * + * <li> IDL/Java Language Mapping as defined in + * <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> + * </li> + * </ul> + */ + +public abstract class OctetSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/OctetSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, byte[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static byte[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_octet); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.OctetSeqHelper.id (), "OctetSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static byte[] read (org.omg.CORBA.portable.InputStream istream) + { + byte value[] = null; + int _len0 = istream.read_long (); + value = new byte[_len0]; + istream.read_octet_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, byte[] value) + { + ostream.write_long (value.length); + ostream.write_octet_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java new file mode 100644 index 0000000..868aadd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/OctetSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code OctetSeq}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/OctetSeqHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from streams.idl + * 13 May 1999 22:41:36 o'clock GMT+00:00 + */ + +public final class OctetSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public byte value[] = null; + + public OctetSeqHolder () + { + } + + public OctetSeqHolder (byte[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.OctetSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.OctetSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.OctetSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java b/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java new file mode 100644 index 0000000..00eff18 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PERSIST_STORE.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception indicates a persistent storage failure, for example, + * failure to establish a database connection or corruption of a + * database.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class PERSIST_STORE extends SystemException { + /** + * Constructs a <code>PERSIST_STORE</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public PERSIST_STORE() { + this(""); + } + + /** + * Constructs a <code>PERSIST_STORE</code> exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public PERSIST_STORE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>PERSIST_STORE</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public PERSIST_STORE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>PERSIST_STORE</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public PERSIST_STORE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java b/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java new file mode 100644 index 0000000..d0ac239 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/PRIVATE_MEMBER.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** + * Constant to define a private member in the <code>ValueMember</code> class. + * <P> + * <code>PRIVATE_MEMBER</code> is one of the two constants of typedef + * <code>Visibility</code> used in the interface repository + * to identify visibility of a <code>ValueMember</code> type. + * The other constant is <code>PUBLIC_MEMBER</code>. + * + * @author unattributed + */ +public interface PRIVATE_MEMBER { + final short value = (short) (0L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java b/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java new file mode 100644 index 0000000..c7701fd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/PUBLIC_MEMBER.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** + * Constant to define a public member in the <code>ValueMember</code> + * class. + * <P> + * <code>PUBLIC_MEMBER</code> is one of the two constants of typedef + * <code>Visibility</code> used in the interface repository + * to identify visibility of a <code>ValueMember</code> type. + * The other constant is <code>PRIVATE_MEMBER</code>. + * + * @author unattributed + */ +public interface PUBLIC_MEMBER { + final short value = (short) (1L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/Policy.java b/src/java.corba/share/classes/org/omg/CORBA/Policy.java new file mode 100644 index 0000000..9fc9bef --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Policy.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * Interfaces derived from the {@code Policy} interface allow an + * ORB or CORBA service access to certain choices that affect + * its operation. This information is accessed in a structured + * manner using interfaces derived from the {@code Policy} + * interface defined in the CORBA module. A CORBA service does not + * have to use this method of accessing operating options, but + * may choose to do so. The Security Service in particular uses + * this technique for associating Security Policy with objects + * in the system. + * An interface generated by the IDL-to-Java compiler. + * org/omg/CORBA/Policy.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:20 AM PDT + */ + +public interface Policy extends PolicyOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity +{ +} // interface Policy diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java new file mode 100644 index 0000000..d95f6d7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyError.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** +* A user exception thrown when a policy error occurs. A <code>PolicyError</code> +* exception may include one of the following policy error reason codes +* defined in the org.omg.CORBA package: BAD_POLICY, BAD_POLICY_TYPE, +* BAD_POLICY_VALUE, UNSUPPORTED_POLICY, UNSUPPORTED_POLICY_VALUE. +*/ + +public final class PolicyError extends org.omg.CORBA.UserException { + + /** + * The reason for the <code>PolicyError</code> exception being thrown. + * @serial + */ + public short reason; + + /** + * Constructs a default <code>PolicyError</code> user exception + * with no reason code and an empty reason detail message. + */ + public PolicyError() { + super(); + } + + /** + * Constructs a <code>PolicyError</code> user exception + * initialized with the given reason code and an empty reason detail message. + * @param __reason the reason code. + */ + public PolicyError(short __reason) { + super(); + reason = __reason; + } + + /** + * Constructs a <code>PolicyError</code> user exception + * initialized with the given reason detail message and reason code. + * @param reason_string the reason detail message. + * @param __reason the reason code. + */ + public PolicyError(String reason_string, short __reason) { + super(reason_string); + reason = __reason; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java new file mode 100644 index 0000000..a775aff --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyHelper.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code Policy}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/PolicyHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:20 AM PDT + */ + +abstract public class PolicyHelper +{ + private static String _id = "IDL:omg.org/CORBA/Policy:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Policy that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.Policy extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.CORBA.PolicyHelper.id (), "Policy"); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Policy read (org.omg.CORBA.portable.InputStream istream) + { + return narrow (istream.read_Object (_PolicyStub.class)); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Policy value) + { + ostream.write_Object ((org.omg.CORBA.Object) value); + } + + public static org.omg.CORBA.Policy narrow (org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof org.omg.CORBA.Policy) + return (org.omg.CORBA.Policy)obj; + else if (!obj._is_a (id ())) + throw new org.omg.CORBA.BAD_PARAM (); + else + { + org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); + return new org.omg.CORBA._PolicyStub (delegate); + } + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java new file mode 100644 index 0000000..0d395d4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyHolder.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** + * The Holder for {@code Policy}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/PolicyHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:20 AM PDT + */ + +public final class PolicyHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.Policy value = null; + + public PolicyHolder () + { + } + + public PolicyHolder (org.omg.CORBA.Policy initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.PolicyHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.PolicyHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.PolicyHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java new file mode 100644 index 0000000..8877c68 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHelper.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code PolicyList}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/PolicyListHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:21 AM PDT + */ + +abstract public class PolicyListHelper +{ + private static String _id = "IDL:omg.org/CORBA/PolicyList:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.Policy[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.Policy[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.PolicyHelper.type (); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.PolicyListHelper.id (), "PolicyList", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.Policy[] read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.Policy value[] = null; + int _len0 = istream.read_long (); + value = new org.omg.CORBA.Policy[_len0]; + for (int _o1 = 0;_o1 < value.length; ++_o1) + value[_o1] = org.omg.CORBA.PolicyHelper.read (istream); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.Policy[] value) + { + ostream.write_long (value.length); + for (int _i0 = 0;_i0 < value.length; ++_i0) + org.omg.CORBA.PolicyHelper.write (ostream, value[_i0]); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java new file mode 100644 index 0000000..5eb1102 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyListHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Holder for {@code PolicyList}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * org/omg/CORBA/PolicyListHolder.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:21 AM PDT + */ + +public final class PolicyListHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.Policy value[] = null; + + public PolicyListHolder () + { + } + + public PolicyListHolder (org.omg.CORBA.Policy[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.PolicyListHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.PolicyListHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.PolicyListHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java new file mode 100644 index 0000000..305066f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyOperations.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The interface for {@code Policy}. For more information on + * Operations interfaces, see <a href="doc-files/generatedfiles.html#operations"> + * "Generated Files: Operations files"</a>. + * <P> + * org/omg/CORBA/PolicyOperations.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:20 AM PDT + */ + +/** + * Provides the operations for a {@code Policy} object. + */ +public interface PolicyOperations +{ + + /** + * Returns the constant value that corresponds to the + * type of the policy object. The values of + * the policy objects are allocated by the OMG. + * New values for PolicyType should be obtained from the OMG by + * sending mail to request@omg.org. In general the constant + * values that are allocated are defined in conjunction with + * the definition of the corresponding policy object. + * + * @return the constant value that corresponds to the type of + * the policy object + */ + int policy_type (); + + /** + * Returns a copy of the {@code Policy} object. The copy does not retain + * any relationships that the policy had with any domain or object. + * + * @return a copy of the {@code Policy} object + */ + org.omg.CORBA.Policy copy (); + + /** + * Destroys the {@code Policy} object. It is the responsibility of + * the {@code Policy} object to determine whether it can be destroyed. + */ + void destroy (); +} // interface PolicyOperations diff --git a/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java new file mode 100644 index 0000000..f58c932 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PolicyTypeHelper.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code PolicyType}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * org/omg/CORBA/PolicyTypeHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl + * Saturday, July 17, 1999 12:26:20 AM PDT + */ + + +// basic Policy definition +abstract public class PolicyTypeHelper +{ + private static String _id = "IDL:omg.org/CORBA/PolicyType:1.0"; + + public static void insert (org.omg.CORBA.Any a, int that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static int extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulong); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.PolicyTypeHelper.id (), "PolicyType", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static int read (org.omg.CORBA.portable.InputStream istream) + { + int value = (int)0; + value = istream.read_ulong (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, int value) + { + ostream.write_ulong (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Principal.java b/src/java.corba/share/classes/org/omg/CORBA/Principal.java new file mode 100644 index 0000000..f845970 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Principal.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + + +/** + * A class that contains information about the identity of + * the client, for access control + * and other purposes. It contains a single attribute, the name of the + * <code>Principal</code>, encoded as a sequence of bytes. + * + * @deprecated Deprecated by CORBA 2.2. + */ +@Deprecated +public class Principal { + /** + * Sets the name of this <code>Principal</code> object to the given value. + * @param value the value to be set in the <code>Principal</code> + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public void name(byte[] value) { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } + + /** + * Gets the name of this <code>Principal</code> object. + * @return the name of this <code>Principal</code> object + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public byte[] name() { + throw new org.omg.CORBA.NO_IMPLEMENT() ; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java b/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java new file mode 100644 index 0000000..a8df7fe --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/PrincipalHolder.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + + +/** + * The Holder for {@code Principal}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A container class for values of type {@code Principal} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code Principal} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code PrincipalHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myPrincipalHolder} is an instance of {@code PrincipalHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myPrincipalHolder.value}. + * + * @since JDK1.2 + * @deprecated Deprecated by CORBA 2.2. + */ +@Deprecated +public final class PrincipalHolder implements Streamable { + /** + * The {@code Principal} value held by this {@code PrincipalHolder} + * object. + */ + public Principal value; + + /** + * Constructs a new {@code PrincipalHolder} object with its + * {@code value} field initialized to {@code null}. + */ + public PrincipalHolder() { + } + + /** + * Constructs a new {@code PrincipalHolder} object with its + * {@code value} field initialized to the given + * {@code Principal} object. + * @param initial the {@code Principal} with which to initialize + * the {@code value} field of the newly-created + * {@code PrincipalHolder} object + */ + public PrincipalHolder(Principal initial) { + value = initial; + } + + public void _read(InputStream input) { + value = input.read_Principal(); + } + + public void _write(OutputStream output) { + output.write_Principal(value); + } + + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_Principal); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/REBIND.java b/src/java.corba/share/classes/org/omg/CORBA/REBIND.java new file mode 100644 index 0000000..6692b72 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/REBIND.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * <code>REBIND</code> is raised when the current effective RebindPolicy, + * has a value of NO_REBIND or NO_RECONNECT and an invocation on a bound + * object reference results in a LocateReply message with status + * OBJECT_FORWARD or a Reply message with status LOCATION_FORWARD. + * This exception is also raised if the current effective RebindPolicy has + * a value of NO_RECONNECT and a connection must be reopened. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class REBIND extends SystemException { + + /** + * Constructs an <code>REBIND</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public REBIND() { + this(""); + } + + /** + * Constructs an <code>REBIND</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public REBIND(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>REBIND</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public REBIND(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>REBIND</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public REBIND(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java b/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java new file mode 100644 index 0000000..a3ad94f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/RepositoryIdHelper.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** + * The Helper for {@code RepositoryId}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + * + * org/omg/CORBA/RepositoryIdHelper.java + * Generated by the IDL-to-Java compiler (portable), version "3.0" + * from ir.idl + * 03 June 1999 11:33:43 o'clock GMT+00:00 + */ + +abstract public class RepositoryIdHelper +{ + private static String _id = "IDL:omg.org/CORBA/RepositoryId:1.0"; + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + String value = null; + value = istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + ostream.write_string (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/Request.java b/src/java.corba/share/classes/org/omg/CORBA/Request.java new file mode 100644 index 0000000..51667c8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/Request.java @@ -0,0 +1,301 @@ +/* + * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object containing the information necessary for + * invoking a method. This class is + * the cornerstone of the ORB Dynamic + * Invocation Interface (DII), which allows dynamic creation and + * invocation of requests. + * A server cannot tell the difference between a client + * invocation using a client stub and a request using the DII. + * <P> + * A <code>Request</code> object consists of: + * <UL> + * <LI>the name of the operation to be invoked + * <LI>an <code>NVList</code> containing arguments for the operation.<BR> + * Each item in the list is a <code>NamedValue</code> object, which has three + * parts: + * <OL> + * <LI>the name of the argument + * <LI>the value of the argument (as an <code>Any</code> object) + * <LI>the argument mode flag indicating whether the argument is + * for input, output, or both + * </OL> + * </UL> + * <P> + * <code>Request</code> objects may also contain additional information, + * depending on how an operation was defined in the original IDL + * interface definition. For example, where appropriate, they may contain + * a <code>NamedValue</code> object to hold the return value or exception, + * a context, a list of possible exceptions, and a list of + * context strings that need to be resolved. + * <P> + * New <code>Request</code> objects are created using one of the + * <code>create_request</code> methods in the <code>Object</code> class. + * In other words, a <code>create_request</code> method is performed on the + * object which is to be invoked. + * + * @see org.omg.CORBA.NamedValue + * + */ + +public abstract class Request { + + /** + * Retrieves the the target object reference. + * + * @return the object reference that points to the + * object implementation for the method + * to be invoked + */ + + public abstract org.omg.CORBA.Object target(); + + /** + * Retrieves the name of the method to be invoked. + * + * @return the name of the method to be invoked + */ + + public abstract String operation(); + + /** + * Retrieves the <code>NVList</code> object containing the arguments + * to the method being invoked. The elements in the list are + * <code>NamedValue</code> objects, with each one describing an argument + * to the method. + * + * @return the <code>NVList</code> object containing the arguments + * for the method + * + */ + + public abstract NVList arguments(); + + /** + * Retrieves the <code>NamedValue</code> object containing the return + * value for the method. + * + * @return the <code>NamedValue</code> object containing the result + * of the method + */ + + public abstract NamedValue result(); + + /** + * Retrieves the <code>Environment</code> object for this request. + * It contains the exception that the method being invoked has + * thrown (after the invocation returns). + * + * + * @return the <code>Environment</code> object for this request + */ + + public abstract Environment env(); + + /** + * Retrieves the <code>ExceptionList</code> object for this request. + * This list contains <code>TypeCode</code> objects describing the + * exceptions that may be thrown by the method being invoked. + * + * @return the <code>ExceptionList</code> object describing the exceptions + * that may be thrown by the method being invoked + */ + + public abstract ExceptionList exceptions(); + + /** + * Retrieves the <code>ContextList</code> object for this request. + * This list contains context <code>String</code>s that need to + * be resolved and sent with the invocation. + * + * + * @return the list of context strings whose values + * need to be resolved and sent with the + * invocation. + */ + + public abstract ContextList contexts(); + + /** + * Retrieves the <code>Context</code> object for this request. + * This is a list of properties giving information about the + * client, the environment, or the circumstances of this request. + * + * @return the <code>Context</code> object that is to be used + * to resolve any context strings whose + * values need to be sent with the invocation + */ + + public abstract Context ctx(); + + /** + * Sets this request's <code>Context</code> object to the one given. + * + * @param c the new <code>Context</code> object to be used for + * resolving context strings + */ + + public abstract void ctx(Context c); + + + /** + * Creates an input argument and adds it to this <code>Request</code> + * object. + * + * @return an <code>Any</code> object that contains the + * value and typecode for the input argument added + */ + + public abstract Any add_in_arg(); + + /** + * Creates an input argument with the given name and adds it to + * this <code>Request</code> object. + * + * @param name the name of the argument being added + * @return an <code>Any</code> object that contains the + * value and typecode for the input argument added + */ + + public abstract Any add_named_in_arg(String name); + + /** + * Adds an input/output argument to this <code>Request</code> object. + * + * @return an <code>Any</code> object that contains the + * value and typecode for the input/output argument added + */ + + public abstract Any add_inout_arg(); + + /** + * Adds an input/output argument with the given name to this + * <code>Request</code> object. + * + * @param name the name of the argument being added + * @return an <code>Any</code> object that contains the + * value and typecode for the input/output argument added + */ + + public abstract Any add_named_inout_arg(String name); + + + /** + * Adds an output argument to this <code>Request</code> object. + * + * @return an <code>Any</code> object that contains the + * value and typecode for the output argument added + */ + + public abstract Any add_out_arg(); + + /** + * Adds an output argument with the given name to this + * <code>Request</code> object. + * + * @param name the name of the argument being added + * @return an <code>Any</code> object that contains the + * value and typecode for the output argument added + */ + + public abstract Any add_named_out_arg(String name); + + /** + * Sets the typecode for the return + * value of the method. + * + * @param tc the <code>TypeCode</code> object containing type information + * for the return value + */ + + public abstract void set_return_type(TypeCode tc); + + /** + * Returns the <code>Any</code> object that contains the value for the + * result of the method. + * + * @return an <code>Any</code> object containing the value and + * typecode for the return value + */ + + public abstract Any return_value(); + + /** + * Makes a synchronous invocation using the + * information in the <code>Request</code> object. Exception information is + * placed into the <code>Request</code> object's environment object. + */ + + public abstract void invoke(); + + /** + * Makes a oneway invocation on the + * request. In other words, it does not expect or wait for a + * response. Note that this can be used even if the operation was + * not declared as oneway in the IDL declaration. No response or + * exception information is returned. + */ + + public abstract void send_oneway(); + + /** + * Makes an asynchronous invocation on + * the request. In other words, it does not wait for a response before it + * returns to the user. The user can then later use the methods + * <code>poll_response</code> and <code>get_response</code> to get + * the result or exception information for the invocation. + */ + + public abstract void send_deferred(); + + /** + * Allows the user to determine + * whether a response has been received for the invocation triggered + * earlier with the <code>send_deferred</code> method. + * + * @return <code>true</code> if the method response has + * been received; <code>false</code> otherwise + */ + + public abstract boolean poll_response(); + + /** + * Allows the user to access the + * response for the invocation triggered earlier with the + * <code>send_deferred</code> method. + * + * @exception WrongTransaction if the method <code>get_response</code> was invoked + * from a different transaction's scope than the one from which the + * request was originally sent. See the OMG Transaction Service specification + * for details. + */ + + public abstract void get_response() throws WrongTransaction; + +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java b/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java new file mode 100644 index 0000000..04cdeb6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServerRequest.java @@ -0,0 +1,314 @@ +/* + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object that captures the explicit state of a request + * for the Dynamic Skeleton Interface (DSI). This class, the + * cornerstone of the DSI, is analogous to the <code>Request</code> + * object in the DII. + * <P> + * The ORB is responsible for creating this embodiment of a request, + * and delivering it to a Dynamic Implementation Routine (DIR). + * A dynamic servant (a DIR) is created by implementing the + * <code>DynamicImplementation</code> class, + * which has a single <code>invoke</code> method. This method accepts a + * <code>ServerRequest</code> object. + * + * The abstract class <code>ServerRequest</code> defines + * methods for accessing the + * method name, the arguments and the context of the request, as + * well as methods for setting the result of the request either as a + * return value or an exception. <p> + * + * A subtlety with accessing the arguments of the request is that the + * DIR needs to provide type information about the + * expected arguments, since there is no compiled information about + * these. This information is provided through an <code>NVList</code>, + * which is a list of <code>NamedValue</code> objects. + * Each <code>NamedValue</code> object + * contains an <code>Any</code> object, which in turn + * has a <code>TypeCode</code> object representing the type + * of the argument. <p> + * + * Similarly, type information needs to be provided for the response, + * for either the expected result or for an exception, so the methods + * <code>result</code> and <code>except</code> take an <code>Any</code> + * object as a parameter. + * + * @see org.omg.CORBA.DynamicImplementation + * @see org.omg.CORBA.NVList + * @see org.omg.CORBA.NamedValue + * + */ + +public abstract class ServerRequest { + + /** + * Retrieves the name of the operation being + * invoked. According to OMG IDL's rules, these names must be unique + * among all operations supported by this object's "most-derived" + * interface. Note that the operation names for getting and setting + * attributes are <code>_get_<attribute_name></code> + * and <code>_set_<attribute_name></code>, + * respectively. + * + * @return the name of the operation to be invoked + * @deprecated use operation() + */ + @Deprecated + public String op_name() + { + return operation(); + } + + + /** + * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception. + * <P> + * Retrieves the name of the operation being + * invoked. According to OMG IDL's rules, these names must be unique + * among all operations supported by this object's "most-derived" + * interface. Note that the operation names for getting and setting + * attributes are <code>_get_<attribute_name></code> + * and <code>_set_<attribute_name></code>, + * respectively. + * + * @return the name of the operation to be invoked + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> + * package comments for unimplemented features</a> + */ + public String operation() + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Specifies method parameter types and retrieves "in" and "inout" + * argument values. + * <P> + * Note that this method is deprecated; use the method + * <code>arguments</code> in its place. + * <P> + * Unless it calls the method <code>set_exception</code>, + * the DIR must call this method exactly once, even if the + * method signature contains no parameters. Once the method <code> + * arguments</code> or <code>set_exception</code> + * has been called, calling <code>arguments</code> on the same + * <code>ServerRequest</code> object + * will result in a <code>BAD_INV_ORDER</code> system exception. + * The DIR must pass in to the method <code>arguments</code> + * an NVList initialized with TypeCodes and Flags + * describing the parameter types for the operation, in the order in which + * they appear in the IDL specification (left to right). A + * potentially-different NVList will be returned from + * <code>arguments</code>, with the + * "in" and "inout" argument values supplied. If it does not call + * the method <code>set_exception</code>, + * the DIR must supply the returned NVList with return + * values for any "out" arguments before returning, and may also change + * the return values for any "inout" arguments. + * + * @param params the arguments of the method, in the + * form of an <code>NVList</code> object + * @deprecated use the method <code>arguments</code> + */ + @Deprecated + public void params(NVList params) + { + arguments(params); + } + + /** + * Specifies method parameter types and retrieves "in" and "inout" + * argument values. + * Unless it calls the method <code>set_exception</code>, + * the DIR must call this method exactly once, even if the + * method signature contains no parameters. Once the method <code> + * arguments</code> or <code>set_exception</code> + * has been called, calling <code>arguments</code> on the same + * <code>ServerRequest</code> object + * will result in a <code>BAD_INV_ORDER</code> system exception. + * The DIR must pass in to the method <code>arguments</code> + * an NVList initialized with TypeCodes and Flags + * describing the parameter types for the operation, in the order in which + * they appear in the IDL specification (left to right). A + * potentially-different NVList will be returned from + * <code>arguments</code>, with the + * "in" and "inout" argument values supplied. If it does not call + * the method <code>set_exception</code>, + * the DIR must supply the returned NVList with return + * values for any "out" arguments before returning, and it may also change + * the return values for any "inout" arguments. + * + * @param args the arguments of the method, in the + * form of an NVList + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> + * package comments for unimplemented features</a> + */ + public void arguments(org.omg.CORBA.NVList args) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + + /** + * Specifies any return value for the call. + * <P> + * Note that this method is deprecated; use the method + * <code>set_result</code> in its place. + * <P> + * Unless the method + * <code>set_exception</code> is called, if the invoked method + * has a non-void result type, the method <code>set_result</code> + * must be called exactly once before the DIR returns. + * If the operation has a void result type, the method + * <code>set_result</code> may optionally be + * called once with an <code>Any</code> object whose type is + * <code>tk_void</code>. Calling the method <code>set_result</code> before + * the method <code>arguments</code> has been called or after + * the method <code>set_result</code> or <code>set_exception</code> has been + * called will result in a BAD_INV_ORDER exception. Calling the method + * <code>set_result</code> without having previously called + * the method <code>ctx</code> when the IDL operation contains a + * context expression, or when the NVList passed to arguments did not + * describe all parameters passed by the client, may result in a MARSHAL + * system exception. + * + * @param any an <code>Any</code> object containing the return value to be set + * @deprecated use the method <code>set_result</code> + */ + @Deprecated + public void result(Any any) + { + set_result(any); + } + + + /** + * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception. + * <P> + * Specifies any return value for the call. Unless the method + * <code>set_exception</code> is called, if the invoked method + * has a non-void result type, the method <code>set_result</code> + * must be called exactly once before the DIR returns. + * If the operation has a void result type, the method + * <code>set_result</code> may optionally be + * called once with an <code>Any</code> object whose type is + * <code>tk_void</code>. Calling the method <code>set_result</code> before + * the method <code>arguments</code> has been called or after + * the method <code>set_result</code> or <code>set_exception</code> has been + * called will result in a BAD_INV_ORDER exception. Calling the method + * <code>set_result</code> without having previously called + * the method <code>ctx</code> when the IDL operation contains a + * context expression, or when the NVList passed to arguments did not + * describe all parameters passed by the client, may result in a MARSHAL + * system exception. + * + * @param any an <code>Any</code> object containing the return value to be set + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> + * package comments for unimplemented features</a> + */ + public void set_result(org.omg.CORBA.Any any) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * The DIR may call set_exception at any time to return an exception to the + * client. The Any passed to set_exception must contain either a system + * exception or a user exception specified in the raises expression + * of the invoked operation's IDL definition. Passing in an Any that does + * not + * contain an exception will result in a BAD_PARAM system exception. Passing + * in an unlisted user exception will result in either the DIR receiving a + * BAD_PARAM system exception or in the client receiving an + * UNKNOWN system exception. + * + * @param any the <code>Any</code> object containing the exception + * @deprecated use set_exception() + */ + @Deprecated + public void except(Any any) + { + set_exception(any); + } + + /** + * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception. + * <P> + * Returns the given exception to the client. This method + * is invoked by the DIR, which may call it at any time. + * The <code>Any</code> object passed to this method must + * contain either a system + * exception or one of the user exceptions specified in the + * invoked operation's IDL definition. Passing in an + * <code>Any</code> object that does not contain an exception + * will cause a BAD_PARAM system exception to be thrown. Passing + * in an unlisted user exception will result in either the DIR receiving a + * BAD_PARAM system exception or in the client receiving an + * UNKNOWN system exception. + * + * @param any the <code>Any</code> object containing the exception + * @exception BAD_PARAM if the given <code>Any</code> object does not + * contain an exception or the exception is an + * unlisted user exception + * @exception UNKNOWN if the given exception is an unlisted + * user exception and the DIR did not + * receive a BAD_PARAM exception + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> + * package comments for unimplemented features</a> + */ + public void set_exception(Any any) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Returns the context information specified in IDL for the operation + * when the operation is not an attribute access and the operation's IDL + * definition contains a context expression; otherwise it returns + * a nil <code>Context</code> reference. Calling the method + * <code>ctx</code> before the method <code>arguments</code> has + * been called or after the method <code>ctx</code>, + * <code>set_result</code>, or <code>set_exception</code> + * has been called will result in a + * BAD_INV_ORDER system exception. + * + * @return the context object that is to be used + * to resolve any context strings whose + * values need to be sent with the invocation. + * @exception BAD_INV_ORDER if (1) the method <code>ctx</code> is called + * before the method <code>arguments</code> or + * (2) the method <code>ctx</code> is called + * after calling <code>set_result</code> or + * <code>set_exception</code> + */ + public abstract Context ctx(); + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java new file mode 100644 index 0000000..5802300 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetail.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * An object that represents an ORB service: its <code>service_detail_type</code> + * field contains the type of the ORB service, and its <code>service_detail</code> + * field contains a description of the ORB service. + + * + * @author RIP Team + */ +public final class ServiceDetail implements org.omg.CORBA.portable.IDLEntity +{ + /** + * The type of the ORB service that this <code>ServiceDetail</code> + * object represents. + */ + public int service_detail_type; + + /** + * The data describing the ORB service that this <code>ServiceDetail</code> + * object represents. + */ + public byte[] service_detail; + + /** + * Constructs a <code>ServiceDetail</code> object with 0 for the type of + * ORB service and an empty description. + */ + public ServiceDetail() { } + + /** + * Constructs a <code>ServiceDetail</code> object with the given + * ORB service type and the given description. + * + * @param service_detail_type an <code>int</code> specifying the type of + * ORB service + * @param service_detail a <code>byte</code> array describing the ORB service + */ + public ServiceDetail(int service_detail_type, byte[] service_detail) { + this.service_detail_type = service_detail_type; + this.service_detail = service_detail; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java new file mode 100644 index 0000000..903a65e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceDetailHelper.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + /** + * The Helper for {@code ServiceDetail}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + */ + +package org.omg.CORBA; + + +public abstract class ServiceDetailHelper { + + public static void write(org.omg.CORBA.portable.OutputStream out, org.omg.CORBA.ServiceDetail that) { + out.write_ulong(that.service_detail_type); + { + out.write_long(that.service_detail.length); + out.write_octet_array(that.service_detail, 0, that.service_detail.length); + } + } + public static org.omg.CORBA.ServiceDetail read(org.omg.CORBA.portable.InputStream in) { + org.omg.CORBA.ServiceDetail that = new org.omg.CORBA.ServiceDetail(); + that.service_detail_type = in.read_ulong(); + { + int __length = in.read_long(); + that.service_detail = new byte[__length]; + in.read_octet_array(that.service_detail, 0, that.service_detail.length); + } + return that; + } + public static org.omg.CORBA.ServiceDetail extract(org.omg.CORBA.Any a) { + org.omg.CORBA.portable.InputStream in = a.create_input_stream(); + return read(in); + } + public static void insert(org.omg.CORBA.Any a, org.omg.CORBA.ServiceDetail that) { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream(); + write(out, that); + a.read_value(out.create_input_stream(), type()); + } + private static org.omg.CORBA.TypeCode _tc; + synchronized public static org.omg.CORBA.TypeCode type() { + int _memberCount = 2; + org.omg.CORBA.StructMember[] _members = null; + if (_tc == null) { + _members= new org.omg.CORBA.StructMember[2]; + _members[0] = new org.omg.CORBA.StructMember( + "service_detail_type", + org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong), + null); + + _members[1] = new org.omg.CORBA.StructMember( + "service_detail", + org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_octet)), + null); + _tc = org.omg.CORBA.ORB.init().create_struct_tc(id(), "ServiceDetail", _members); + } + return _tc; + } + public static String id() { + return "IDL:omg.org/CORBA/ServiceDetail:1.0"; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java new file mode 100644 index 0000000..47098f2 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformation.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + + +/** + * An IDL struct in the CORBA module that + * stores information about a CORBA service available in the + * ORB implementation and is obtained from the {@code ORB.get_service_information} + * method. + */ +public final class ServiceInformation implements org.omg.CORBA.portable.IDLEntity +{ + /** Array of ints representing service options. + */ + public int[] service_options; + + /** Array of ServiceDetails giving more details about the service. + */ + public org.omg.CORBA.ServiceDetail[] service_details; + + /** Constructs a ServiceInformation object with empty service_options + * and service_details. + */ + public ServiceInformation() { } + + /** Constructs a ServiceInformation object with the given service_options + * and service_details. + * @param __service_options An array of ints describing the service options. + * @param __service_details An array of ServiceDetails describing the service + * details. + */ + public ServiceInformation(int[] __service_options, + org.omg.CORBA.ServiceDetail[] __service_details) + { + service_options = __service_options; + service_details = __service_details; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java new file mode 100644 index 0000000..82103df --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHelper.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + /** + * The Helper for {@code ServiceInformation}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + */ + +package org.omg.CORBA; + + +public abstract class ServiceInformationHelper { + + public static void write(org.omg.CORBA.portable.OutputStream out, org.omg.CORBA.ServiceInformation that) + { + out.write_long(that.service_options.length); + out.write_ulong_array(that.service_options, 0, that.service_options.length); + out.write_long(that.service_details.length); + for (int i = 0 ; i < that.service_details.length ; i += 1) { + org.omg.CORBA.ServiceDetailHelper.write(out, that.service_details[i]); + } + } + + public static org.omg.CORBA.ServiceInformation read(org.omg.CORBA.portable.InputStream in) { + org.omg.CORBA.ServiceInformation that = new org.omg.CORBA.ServiceInformation(); + { + int __length = in.read_long(); + that.service_options = new int[__length]; + in.read_ulong_array(that.service_options, 0, that.service_options.length); + } + { + int __length = in.read_long(); + that.service_details = new org.omg.CORBA.ServiceDetail[__length]; + for (int __index = 0 ; __index < that.service_details.length ; __index += 1) { + that.service_details[__index] = org.omg.CORBA.ServiceDetailHelper.read(in); + } + } + return that; + } + public static org.omg.CORBA.ServiceInformation extract(org.omg.CORBA.Any a) { + org.omg.CORBA.portable.InputStream in = a.create_input_stream(); + return read(in); + } + public static void insert(org.omg.CORBA.Any a, org.omg.CORBA.ServiceInformation that) { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream(); + write(out, that); + a.read_value(out.create_input_stream(), type()); + } + private static org.omg.CORBA.TypeCode _tc; + synchronized public static org.omg.CORBA.TypeCode type() { + int _memberCount = 2; + org.omg.CORBA.StructMember[] _members = null; + if (_tc == null) { + _members= new org.omg.CORBA.StructMember[2]; + _members[0] = new org.omg.CORBA.StructMember( + "service_options", + org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong)), + null); + + _members[1] = new org.omg.CORBA.StructMember( + "service_details", + org.omg.CORBA.ORB.init().create_sequence_tc(0, org.omg.CORBA.ServiceDetailHelper.type()), + null); + _tc = org.omg.CORBA.ORB.init().create_struct_tc(id(), "ServiceInformation", _members); + } + return _tc; + } + public static String id() { + return "IDL:omg.org/CORBA/ServiceInformation:1.0"; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java new file mode 100644 index 0000000..5e4f6a7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ServiceInformationHolder.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The Holder for {@code ServiceInformation}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code ServiceInformation} object + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code xxx} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code ServiceInformationHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myServiceInformationHolder} is an instance of {@code ServiceInformationHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myServiceInformationHolder.value}. + */ +public final class ServiceInformationHolder + implements org.omg.CORBA.portable.Streamable { + + /** + * The {@code ServiceInformation} value held by this + * {@code ServiceInformationHolder} object in its {@code value} field. + */ + public ServiceInformation value; + + /** + * Constructs a new {@code ServiceInformationHolder} object with its + * {@code value} field initialized to null. + */ + public ServiceInformationHolder() { + this(null); + } + + /** + * Constructs a new {@code ServiceInformationHolder} object with its + * {@code value} field initialized to the given + * {@code ServiceInformation} object. + * + * @param arg the {@code ServiceInformation} object with which to initialize + * the {@code value} field of the newly-created + * {@code ServiceInformationHolder} object + */ + public ServiceInformationHolder(org.omg.CORBA.ServiceInformation arg) { + value = arg; + } + + + /** + * Marshals the value in this {@code ServiceInformationHolder} object's + * {@code value} field to the output stream {@code out}. + * + * @param out the {@code OutputStream} object that will contain + * the CDR formatted data + */ + public void _write(org.omg.CORBA.portable.OutputStream out) { + org.omg.CORBA.ServiceInformationHelper.write(out, value); + } + + /** + * Reads unmarshalled data from the input stream {@code in} and assigns it to + * the {@code value} field in this {@code ServiceInformationHolder} object. + * + * @param in the {@code InputStream} object containing CDR + * formatted data from the wire + */ + public void _read(org.omg.CORBA.portable.InputStream in) { + value = org.omg.CORBA.ServiceInformationHelper.read(in); + } + + /** + * Retrieves the {@code TypeCode} object that corresponds + * to the value held in this {@code ServiceInformationHolder} object's + * {@code value} field. + * + * @return the type code for the value held in this {@code ServiceInformationHolder} + * object + */ + public org.omg.CORBA.TypeCode _type() { + return org.omg.CORBA.ServiceInformationHelper.type(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java new file mode 100644 index 0000000..8281897 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideType.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The mapping of a CORBA <code>enum</code> tagging + * <code>SET_OVERRIDE</code> and <code>ADD_OVERRIDE</code>, which + * indicate whether policies should replace the + * existing policies of an <code>Object</code> or be added to them. + * <P> + * The method {@link org.omg.CORBA.Object#_set_policy_override} takes + * either <code>SetOverrideType.SET_OVERRIDE</code> or + * <code>SetOverrideType.ADD_OVERRIDE</code> as its second argument. + * The method <code>_set_policy_override</code> + * creates a new <code>Object</code> initialized with the + * <code>Policy</code> objects supplied as the first argument. If the + * second argument is <code>ADD_OVERRIDE</code>, the new policies + * are added to those of the <code>Object</code> instance that is + * calling the <code>_set_policy_override</code> method. If + * <code>SET_OVERRIDE</code> is given instead, the existing policies + * are replaced with the given ones. + * + * @author OMG + * @since JDK1.2 + */ + +public class SetOverrideType implements org.omg.CORBA.portable.IDLEntity { + + /** + * The <code>int</code> constant for the enum value SET_OVERRIDE. + */ + public static final int _SET_OVERRIDE = 0; + + /** + * The <code>int</code> constant for the enum value ADD_OVERRIDE. + */ + public static final int _ADD_OVERRIDE = 1; + + /** + * The <code>SetOverrideType</code> constant for the enum value SET_OVERRIDE. + */ + public static final SetOverrideType SET_OVERRIDE = new SetOverrideType(_SET_OVERRIDE); + + /** + * The <code>SetOverrideType</code> constant for the enum value ADD_OVERRIDE. + */ + public static final SetOverrideType ADD_OVERRIDE = new SetOverrideType(_ADD_OVERRIDE); + + /** + * Retrieves the value of this <code>SetOverrideType</code> instance. + * + * @return the <code>int</code> for this <code>SetOverrideType</code> instance. + */ + public int value() { + return _value; + } + + /** + * Converts the given <code>int</code> to the corresponding + * <code>SetOverrideType</code> instance. + * + * @param i the <code>int</code> to convert; must be either + * <code>SetOverrideType._SET_OVERRIDE</code> or + * <code>SetOverrideType._ADD_OVERRIDE</code> + * @return the <code>SetOverrideType</code> instance whose value + * matches the given <code>int</code> + * @exception BAD_PARAM if the given <code>int</code> does not + * match the value of + * any <code>SetOverrideType</code> instance + */ + public static SetOverrideType from_int(int i) + { + switch (i) { + case _SET_OVERRIDE: + return SET_OVERRIDE; + case _ADD_OVERRIDE: + return ADD_OVERRIDE; + default: + throw new org.omg.CORBA.BAD_PARAM(); + } + } + + /** + * Constructs a <code>SetOverrideType</code> instance from an + * <code>int</code>. + * @param _value must be either <code>SET_OVERRIDE</code> or + * <code>ADD_OVERRIDE</code> + */ + protected SetOverrideType(int _value){ + this._value = _value; + } + + /** + * The field containing the value for this <code>SetOverrideType</code> + * object. + * + */ + private int _value; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java new file mode 100644 index 0000000..fa2c4a6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code SetOverrideType}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/SetOverrideTypeHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* 03 June 1999 11:52:03 o'clock GMT+00:00 +*/ + +abstract public class SetOverrideTypeHelper +{ + private static String _id = "IDL:omg.org/CORBA/SetOverrideType:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.SetOverrideType that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.SetOverrideType extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_enum_tc (org.omg.CORBA.SetOverrideTypeHelper.id (), "SetOverrideType", new String[] { "SET_OVERRIDE", "ADD_OVERRIDE"} ); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.SetOverrideType read (org.omg.CORBA.portable.InputStream istream) + { + return org.omg.CORBA.SetOverrideType.from_int (istream.read_long ()); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.SetOverrideType value) + { + ostream.write_long (value.value ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java new file mode 100644 index 0000000..aa0cdb1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ShortHolder.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code Short}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>. + * <P>A Holder class for a {@code short} + * that is used to store "out" and "inout" parameters in IDL operations. + * If an IDL operation signature has an IDL {@code short} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code ShortHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myShortHolder} is an instance of {@code ShortHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myShortHolder.value}. + * + * @since JDK1.2 + */ +public final class ShortHolder implements Streamable { + + /** + * The {@code short} value held by this {@code ShortHolder} + * object. + */ + public short value; + + /** + * Constructs a new {@code ShortHolder} object with its + * {@code value} field initialized to {@code 0}. + */ + public ShortHolder() { + } + + /** + * Constructs a new {@code ShortHolder} object with its + * {@code value} field initialized to the given + * {@code short}. + * @param initial the {@code short} with which to initialize + * the {@code value} field of the newly-created + * {@code ShortHolder} object + */ + public ShortHolder(short initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in + * this {@code ShortHolder} object + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire. + */ + public void _read(InputStream input) { + value = input.read_short(); + } + + /** + * Marshals to {@code output} the value in + * this {@code ShortHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data. + */ + public void _write(OutputStream output) { + output.write_short(value); + } + + /** + * Returns the TypeCode corresponding to the value held in + * this {@code ShortHolder} object. + * + * @return the TypeCode of the value held in + * this {@code ShortHolder} object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_short); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java new file mode 100644 index 0000000..6159d19 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code ShortSeqHelper}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/ShortSeqHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public abstract class ShortSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/ShortSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, short[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static short[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ShortSeqHelper.id (), "ShortSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static short[] read (org.omg.CORBA.portable.InputStream istream) + { + short value[] = null; + int _len0 = istream.read_long (); + value = new short[_len0]; + istream.read_short_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, short[] value) + { + ostream.write_long (value.length); + ostream.write_short_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java new file mode 100644 index 0000000..ee4ddbf --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ShortSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Holder for {@code ShortSeq}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/ShortSeqHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +*/ + +public final class ShortSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public short value[] = null; + + public ShortSeqHolder () + { + } + + public ShortSeqHolder (short[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.ShortSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.ShortSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.ShortSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java b/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java new file mode 100644 index 0000000..a7c8b78 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/StringHolder.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 1995, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code String}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code String} + * that is used to store "out" and "inout" parameters in IDL operations. + * If an IDL operation signature has an IDL {@code string} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code StringHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myStringHolder} is an instance of {@code StringHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myStringHolder.value}. + * + * @since JDK1.2 + */ +public final class StringHolder implements Streamable { + + /** + * The {@code String} value held by this {@code StringHolder} + * object. + */ + public String value; + + /** + * Constructs a new {@code StringHolder} object with its + * {@code value} field initialized to {@code null}. + */ + public StringHolder() { + } + + /** + * Constructs a new {@code StringHolder} object with its + * {@code value} field initialized to the given + * {@code String}. + * @param initial the {@code String} with which to initialize + * the {@code value} field of the newly-created + * {@code StringHolder} object + */ + public StringHolder(String initial) { + value = initial; + } + + /** + * Reads the unmarshalled data from {@code input} and assigns it to + * the {@code value} field of this {@code StringHolder} object. + * + * @param input the InputStream containing CDR formatted data from the wire. + */ + public void _read(InputStream input) { + value = input.read_string(); + } + + /** + * Marshals the value held by this {@code StringHolder} object + * to the output stream {@code output}. + * + * @param output the OutputStream which will contain the CDR formatted data. + */ + public void _write(OutputStream output) { + output.write_string(value); + } + + /** + * Retrieves the {@code TypeCode} object that corresponds to + * the value held in this {@code StringHolder} object. + * + * @return the type code of the value held in this {@code StringHolder} + * object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_string); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java new file mode 100644 index 0000000..d2f3c95 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/StringValueHelper.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA; + +/** +* The Helper for {@code StringValue}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/StringValueHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from orb.idl +* 31 May 1999 22:27:30 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public class StringValueHelper implements org.omg.CORBA.portable.BoxedValueHelper +{ + private static String _id = "IDL:omg.org/CORBA/StringValue:1.0"; + + private static StringValueHelper _instance = new StringValueHelper (); + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_value_box_tc (_id, "StringValue", __typeCode); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + if (!(istream instanceof org.omg.CORBA_2_3.portable.InputStream)) { + throw new org.omg.CORBA.BAD_PARAM(); } + return (String) ((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (_instance); + } + + public java.io.Serializable read_value (org.omg.CORBA.portable.InputStream istream) + { + String tmp; + tmp = istream.read_string (); + return (java.io.Serializable) tmp; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + if (!(ostream instanceof org.omg.CORBA_2_3.portable.OutputStream)) { + throw new org.omg.CORBA.BAD_PARAM(); } + ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, _instance); + } + + public void write_value (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value) + { + if (!(value instanceof String)) { + throw new org.omg.CORBA.MARSHAL(); } + String valueType = (String) value; + ostream.write_string (valueType); + } + + public String get_id () + { + return _id; + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/StructMember.java b/src/java.corba/share/classes/org/omg/CORBA/StructMember.java new file mode 100644 index 0000000..58a8e17 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/StructMember.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/StructMember.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** + * Describes a member of an IDL <code>struct</code> in the + * Interface Repository, including + * the name of the <code>struct</code> member, the type of + * the <code>struct</code> member, and + * the typedef that represents the IDL type of the + * <code>struct</code> member + * described the <code>struct</code> member object. + */ +public final class StructMember implements org.omg.CORBA.portable.IDLEntity { + + // instance variables + + /** + * The name of the struct member described by + * this <code>StructMember</code> object. + * @serial + */ + public String name; + + /** + * The type of the struct member described by + * this <code>StructMember</code> object. + * @serial + */ + public org.omg.CORBA.TypeCode type; + + /** + * The typedef that represents the IDL type of the struct member described by + * this <code>StructMember</code> object. + * @serial + */ + public org.omg.CORBA.IDLType type_def; + // constructors + + /** + * Constructs a default <code>StructMember</code> object. + */ + public StructMember() { } + + /** + * Constructs a <code>StructMember</code> object initialized with the + * given values. + * @param __name a <code>String</code> object with the name of the struct + * member + * @param __type a <code>TypeCode</code> object describing the type of the struct + * member + * @param __type_def an <code>IDLType</code> object representing the IDL type + * of the struct member + */ + public StructMember(String __name, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def) { + name = __name; + type = __type; + type_def = __type_def; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java new file mode 100644 index 0000000..7141758 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/StructMemberHelper.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code StructMember}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/StructMemberHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl +* 03 June 1999 11:33:43 o'clock GMT+00:00 +*/ + +abstract public class StructMemberHelper +{ + private static String _id = "IDL:omg.org/CORBA/StructMember:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.StructMember that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.StructMember extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [3]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0); + _members0[0] = new org.omg.CORBA.StructMember ( + "name", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode); + _members0[1] = new org.omg.CORBA.StructMember ( + "type", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type (); + _members0[2] = new org.omg.CORBA.StructMember ( + "type_def", + _tcOf_members0, + null); + __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.StructMemberHelper.id (), "StructMember", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.StructMember read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.StructMember value = new org.omg.CORBA.StructMember (); + value.name = istream.read_string (); + value.type = istream.read_TypeCode (); + value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.StructMember value) + { + ostream.write_string (value.name); + ostream.write_TypeCode (value.type); + org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/SystemException.java b/src/java.corba/share/classes/org/omg/CORBA/SystemException.java new file mode 100644 index 0000000..fa808c6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/SystemException.java @@ -0,0 +1,119 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; +import java.util.*; +import org.omg.CORBA.OMGVMCID; +import com.sun.corba.se.impl.util.SUNVMCID; + +/** + * The root class for all CORBA standard exceptions. These exceptions + * may be thrown as a result of any CORBA operation invocation and may + * also be returned by many standard CORBA API methods. The standard + * exceptions contain a minor code, allowing more detailed specification, and a + * completion status. This class is subclassed to + * generate each one of the set of standard ORB exceptions. + * <code>SystemException</code> extends + * <code>java.lang.RuntimeException</code>; thus none of the + * <code>SystemException</code> exceptions need to be + * declared in signatures of the Java methods mapped from operations in + * IDL interfaces. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public abstract class SystemException extends java.lang.RuntimeException { + + /** + * The CORBA Exception minor code. + * @serial + */ + public int minor; + + /** + * The status of the operation that threw this exception. + * @serial + */ + public CompletionStatus completed; + + /** + * Constructs a <code>SystemException</code> exception with the specified detail + * message, minor code, and completion status. + * A detail message is a String that describes this particular exception. + * @param reason the String containing a detail message + * @param minor the minor code + * @param completed the completion status + */ + protected SystemException(String reason, int minor, CompletionStatus completed) { + super(reason); + this.minor = minor; + this.completed = completed; + } + + /** + * Converts this exception to a representative string. + */ + public String toString() { + // The fully qualified exception class name + String result = super.toString(); + + // The vmcid part + int vmcid = minor & 0xFFFFF000; + switch (vmcid) { + case OMGVMCID.value: + result += " vmcid: OMG"; + break; + case SUNVMCID.value: + result += " vmcid: SUN"; + break; + default: + result += " vmcid: 0x" + Integer.toHexString(vmcid); + break; + } + + // The minor code part + int mc = minor & 0x00000FFF; + result += " minor code: " + mc; + + // The completion status part + switch (completed.value()) { + case CompletionStatus._COMPLETED_YES: + result += " completed: Yes"; + break; + case CompletionStatus._COMPLETED_NO: + result += " completed: No"; + break; + case CompletionStatus._COMPLETED_MAYBE: + default: + result += " completed: Maybe"; + break; + } + return result; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TCKind.java b/src/java.corba/share/classes/org/omg/CORBA/TCKind.java new file mode 100644 index 0000000..60e89a8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TCKind.java @@ -0,0 +1,554 @@ +/* + * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + + +/** + * The Java mapping of the IDL enum <code>TCKind</code>, which + * specifies the kind of a <code>TypeCode</code> object. There is + * one kind for each primitive and essential IDL data type. + * <P> + * The class <code>TCKind</code> consists of: + * <UL> + * <LI>a set of <code>int</code> constants, one for each + * kind of IDL data type. These <code>int</code> constants + * make it possible to use a <code>switch</code> statement. + * <LI>a set of <code>TCKind</code> constants, one for each + * kind of IDL data type. The <code>value</code> field for + * each <code>TCKind</code> instance is initialized with + * the <code>int</code> constant that corresponds with + * the IDL data type that the instance represents. + * <LI>the method <code>from_int</code>for converting + * an <code>int</code> to its + * corresponding <code>TCKind</code> instance + * <P>Example: + * <PRE> + * org.omg.CORBA.TCKind k = org.omg.CORBA.TCKind.from_int( + * org.omg.CORBA.TCKind._tk_string); + * </PRE> + * The variable <code>k</code> represents the <code>TCKind</code> + * instance for the IDL type <code>string</code>, which is + * <code>tk_string</code>. + * + * <LI>the method <code>value</code> for accessing the + * <code>_value</code> field of a <code>TCKind</code> constant + * <P>Example: + * <PRE> + * int i = org.omg.CORBA.TCKind.tk_char.value(); + * </PRE> + * The variable <code>i</code> represents 9, the value for the + * IDL data type <code>char</code>. + * </UL> + * <P>The <code>value</code> field of a <code>TCKind</code> instance + * is the CDR encoding used for a <code>TypeCode</code> object in + * an IIOP message. + */ + +public class TCKind { + + /** + * The <code>int</code> constant for a <code>null</code> IDL data type. + */ + public static final int _tk_null = 0; + + /** + * The <code>int</code> constant for the IDL data type <code>void</code>. + */ + public static final int _tk_void = 1; + + /** + * The <code>int</code> constant for the IDL data type <code>short</code>. + */ + public static final int _tk_short = 2; + + /** + * The <code>int</code> constant for the IDL data type <code>long</code>. + */ + public static final int _tk_long = 3; + + /** + * The <code>int</code> constant for the IDL data type <code>ushort</code>. + */ + public static final int _tk_ushort = 4; + + /** + * The <code>int</code> constant for the IDL data type <code>ulong</code>. + */ + public static final int _tk_ulong = 5; + + /** + * The <code>int</code> constant for the IDL data type <code>float</code>. + */ + public static final int _tk_float = 6; + + /** + * The <code>int</code> constant for the IDL data type <code>double</code>. + */ + public static final int _tk_double = 7; + + /** + * The <code>int</code> constant for the IDL data type <code>boolean</code>. + */ + public static final int _tk_boolean = 8; + + /** + * The <code>int</code> constant for the IDL data type <code>char</code>. + */ + public static final int _tk_char = 9; + + /** + * The <code>int</code> constant for the IDL data type <code>octet</code>. + */ + public static final int _tk_octet = 10; + + /** + * The <code>int</code> constant for the IDL data type <code>any</code>. + */ + public static final int _tk_any = 11; + + /** + * The <code>int</code> constant for the IDL data type <code>TypeCode</code>. + */ + public static final int _tk_TypeCode = 12; + + /** + * The <code>int</code> constant for the IDL data type <code>Principal</code>. + */ + public static final int _tk_Principal = 13; + + /** + * The <code>int</code> constant for the IDL data type <code>objref</code>. + */ + public static final int _tk_objref = 14; + + /** + * The <code>int</code> constant for the IDL data type <code>struct</code>. + */ + public static final int _tk_struct = 15; + + /** + * The <code>int</code> constant for the IDL data type <code>union</code>. + */ + public static final int _tk_union = 16; + + /** + * The <code>int</code> constant for the IDL data type <code>enum</code>. + */ + public static final int _tk_enum = 17; + + /** + * The <code>int</code> constant for the IDL data type <code>string</code>. + */ + public static final int _tk_string = 18; + + /** + * The <code>int</code> constant for the IDL data type <code>sequence</code>. + */ + public static final int _tk_sequence = 19; + + /** + * The <code>int</code> constant for the IDL data type <code>array</code>. + */ + public static final int _tk_array = 20; + + /** + * The <code>int</code> constant for the IDL data type <code>alias</code>. + */ + public static final int _tk_alias = 21; + + /** + * The <code>int</code> constant for the IDL data type <code>except</code>. + */ + public static final int _tk_except = 22; + + /** + * The <code>int</code> constant for the IDL data type <code>longlong</code>. + */ + public static final int _tk_longlong = 23; + + /** + * The <code>int</code> constant for the IDL data type <code>ulonglong</code>. + */ + public static final int _tk_ulonglong = 24; + + /** + * The <code>int</code> constant for the IDL data type <code>longdouble</code>. + */ + public static final int _tk_longdouble = 25; + + /** + * The <code>int</code> constant for the IDL data type <code>wchar</code>. + */ + public static final int _tk_wchar = 26; + + /** + * The <code>int</code> constant for the IDL data type <code>wstring</code>. + */ + public static final int _tk_wstring = 27; + + /** + * The <code>int</code> constant for the IDL data type <code>fixed</code>. + */ + public static final int _tk_fixed = 28; + + /** + * The <code>int</code> constant for the IDL data type <code>value</code>. + */ + public static final int _tk_value = 29; // orbos 98-01-18: Objects By Value + + /** + * The <code>int</code> constant for the IDL data type <code>value_box</code>. + */ + public static final int _tk_value_box = 30; // orbos 98-01-18: Objects By Value + + /** + * The <code>int</code> constant for the IDL data type <code>native</code>. + */ + public static final int _tk_native = 31; // Verify + + /** + * The <code>int</code> constant for the IDL data type <code>abstract interface</code>. + */ + public static final int _tk_abstract_interface = 32; + + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_null</code>. + */ + public static final TCKind tk_null = new TCKind(_tk_null); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_void</code>. + */ + public static final TCKind tk_void = new TCKind(_tk_void); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_short</code>. + */ + public static final TCKind tk_short = new TCKind(_tk_short); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_long</code>. + */ + public static final TCKind tk_long = new TCKind(_tk_long); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_ushort</code>. + */ + public static final TCKind tk_ushort = new TCKind(_tk_ushort); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_ulong</code>. + */ + public static final TCKind tk_ulong = new TCKind(_tk_ulong); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_float</code>. + */ + public static final TCKind tk_float = new TCKind(_tk_float); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_double</code>. + */ + public static final TCKind tk_double = new TCKind(_tk_double); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_boolean</code>. + */ + public static final TCKind tk_boolean = new TCKind(_tk_boolean); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_char</code>. + */ + public static final TCKind tk_char = new TCKind(_tk_char); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_octet</code>. + */ + public static final TCKind tk_octet = new TCKind(_tk_octet); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_any</code>. + */ + public static final TCKind tk_any = new TCKind(_tk_any); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_TypeCode</code>. + */ + public static final TCKind tk_TypeCode = new TCKind(_tk_TypeCode); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_Principal</code>. + */ + public static final TCKind tk_Principal = new TCKind(_tk_Principal); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_objref</code>. + */ + public static final TCKind tk_objref = new TCKind(_tk_objref); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_struct</code>. + */ + public static final TCKind tk_struct = new TCKind(_tk_struct); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_union</code>. + */ + public static final TCKind tk_union = new TCKind(_tk_union); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_enum</code>. + */ + public static final TCKind tk_enum = new TCKind(_tk_enum); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_string</code>. + */ + public static final TCKind tk_string = new TCKind(_tk_string); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_sequence</code>. + */ + public static final TCKind tk_sequence = new TCKind(_tk_sequence); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_array</code>. + */ + public static final TCKind tk_array = new TCKind(_tk_array); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_alias</code>. + */ + public static final TCKind tk_alias = new TCKind(_tk_alias); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_except</code>. + */ + public static final TCKind tk_except = new TCKind(_tk_except); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_longlong</code>. + */ + public static final TCKind tk_longlong = new TCKind(_tk_longlong); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_ulonglong</code>. + */ + public static final TCKind tk_ulonglong = new TCKind(_tk_ulonglong); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_longdouble</code>. + */ + public static final TCKind tk_longdouble = new TCKind(_tk_longdouble); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_wchar</code>. + */ + public static final TCKind tk_wchar = new TCKind(_tk_wchar); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_wstring</code>. + */ + public static final TCKind tk_wstring = new TCKind(_tk_wstring); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_fixed</code>. + */ + public static final TCKind tk_fixed = new TCKind(_tk_fixed); + + // orbos 98-01-18: Objects By Value -- begin + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_value</code>. + */ + public static final TCKind tk_value = new TCKind(_tk_value); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_value_box</code>. + */ + public static final TCKind tk_value_box = new TCKind(_tk_value_box); + // orbos 98-01-18: Objects By Value -- end + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_native</code>. + */ + public static final TCKind tk_native = new TCKind(_tk_native); + + /** + * The <code>TCKind</code> constant whose <code>value</code> field is + * initialized with <code>TCKind._tk_abstract_interface</code>. + */ + public static final TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface); + + + + + /** + * Retrieves the value of this <code>TCKind</code> instance. + * + * @return the <code>int</code> that represents the kind of + * IDL data type for this <code>TCKind</code> instance + */ + public int value() { + return _value; + } + + /** + * Converts the given <code>int</code> to the corresponding + * <code>TCKind</code> instance. + * + * @param i the <code>int</code> to convert. It must be one of + * the <code>int</code> constants in the class + * <code>TCKind</code>. + * @return the <code>TCKind</code> instance whose <code>value</code> + * field matches the given <code>int</code> + * @exception BAD_PARAM if the given <code>int</code> does not + * match the <code>_value</code> field of + * any <code>TCKind</code> instance + */ + public static TCKind from_int(int i) { + switch (i) { + case _tk_null: + return tk_null; + case _tk_void: + return tk_void; + case _tk_short: + return tk_short; + case _tk_long: + return tk_long; + case _tk_ushort: + return tk_ushort; + case _tk_ulong: + return tk_ulong; + case _tk_float: + return tk_float; + case _tk_double: + return tk_double; + case _tk_boolean: + return tk_boolean; + case _tk_char: + return tk_char; + case _tk_octet: + return tk_octet; + case _tk_any: + return tk_any; + case _tk_TypeCode: + return tk_TypeCode; + case _tk_Principal: + return tk_Principal; + case _tk_objref: + return tk_objref; + case _tk_struct: + return tk_struct; + case _tk_union: + return tk_union; + case _tk_enum: + return tk_enum; + case _tk_string: + return tk_string; + case _tk_sequence: + return tk_sequence; + case _tk_array: + return tk_array; + case _tk_alias: + return tk_alias; + case _tk_except: + return tk_except; + case _tk_longlong: + return tk_longlong; + case _tk_ulonglong: + return tk_ulonglong; + case _tk_longdouble: + return tk_longdouble; + case _tk_wchar: + return tk_wchar; + case _tk_wstring: + return tk_wstring; + case _tk_fixed: + return tk_fixed; + case _tk_value: // orbos 98-01-18: Objects By Value + return tk_value; + case _tk_value_box: // orbos 98-01-18: Objects By Value + return tk_value_box; + case _tk_native: + return tk_native; + case _tk_abstract_interface: + return tk_abstract_interface; + default: + throw new org.omg.CORBA.BAD_PARAM(); + } + } + + + /** + * Creates a new <code>TCKind</code> instance initialized with the given + * <code>int</code>. + * @deprecated Do not use this constructor as this method should be private + * according to the OMG specification. Use {@link #from_int(int)} instead. + * + * @param _value the <code>int</code> to convert. It must be one of + * the <code>int</code> constants in the class + * <code>TCKind</code>. + */ + @Deprecated + protected TCKind(int _value){ + this._value = _value; + } + private int _value; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java b/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java new file mode 100644 index 0000000..ed4a979 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TIMEOUT.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * <code>TIMEOUT</code> is raised when no delivery has been made and the + * specified time-to-live period has been exceeded. It is a standard system + * exception because time-to-live QoS can be applied to any invocation. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @since J2SE 1.5 + */ + +public final class TIMEOUT extends SystemException { + + /** + * Constructs an <code>TIMEOUT</code> exception with + * minor code set to 0 and CompletionStatus set to COMPLETED_NO. + */ + public TIMEOUT() { + this(""); + } + + /** + * Constructs an <code>TIMEOUT</code> exception with the + * specified message. + * + * @param detailMessage string containing a detailed message. + */ + public TIMEOUT(String detailMessage) { + this(detailMessage, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>TIMEOUT</code> exception with the + * specified minor code and completion status. + * + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public TIMEOUT(int minorCode, + CompletionStatus completionStatus) { + this("", minorCode, completionStatus); + } + + /** + * Constructs an <code>TIMEOUT</code> exception with the + * specified message, minor code, and completion status. + * + * @param detailMessage string containing a detailed message. + * @param minorCode minor code. + * @param completionStatus completion status. + */ + public TIMEOUT(String detailMessage, + int minorCode, + CompletionStatus completionStatus) { + super(detailMessage, minorCode, completionStatus); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java new file mode 100644 index 0000000..f4ce02c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_MODE.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The CORBA <code>TRANSACTION_MODE</code> exception is thrown + * by the client ORB if it detects a mismatch between the + * InvocationPolicy in the IOR and the chosen invocation path + * (i.e, direct or routed invocation). + * It contains a minor code, which gives information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * The OMG CORBA core 2.4 specification has details. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class TRANSACTION_MODE extends SystemException { + /** + * Constructs a <code>TRANSACTION_MODE</code> exception with a default + * minor code of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public TRANSACTION_MODE() { + this(""); + } + + /** + * Constructs a <code>TRANSACTION_MODE</code> exception with the specified + * description message, a minor code of 0, and a completion state of + * COMPLETED_NO. + * @param s the String containing a detail message + */ + public TRANSACTION_MODE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>TRANSACTION_MODE</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_MODE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>TRANSACTION_MODE</code> exception with the specified + * description message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_MODE(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java new file mode 100644 index 0000000..5f4d94e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception indicates that the request carried a null transaction context, + * but an active transaction is required.<P> + * It contains a minor code, which gives information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * The OMG Transaction Service specfication has details. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class TRANSACTION_REQUIRED extends SystemException { + /** + * Constructs a <code>TRANSACTION_REQUIRED</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public TRANSACTION_REQUIRED() { + this(""); + } + + /** + * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified + * description message, a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public TRANSACTION_REQUIRED(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_REQUIRED(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>TRANSACTION_REQUIRED</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_REQUIRED(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java new file mode 100644 index 0000000..52e597c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when the transaction associated with the request has + * already been rolled back or marked to roll back. Thus, the requested + * operation either could not be performed or was not performed because + * further computation on behalf of the transaction would be fruitless.<P> + * See the OMG Transaction + * Service specification for details. + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class TRANSACTION_ROLLEDBACK extends SystemException { + /** + * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public TRANSACTION_ROLLEDBACK() { + this(""); + } + + /** + * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the + * specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public TRANSACTION_ROLLEDBACK(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_ROLLEDBACK(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>TRANSACTION_ROLLEDBACK</code> exception with the + * specified description message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_ROLLEDBACK(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java new file mode 100644 index 0000000..5870c44 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The CORBA <code>TRANSACTION_UNAVAILABLE</code> exception is thrown + * by the ORB when it cannot process a transaction service context because + * its connection to the Transaction Service has been abnormally terminated. + * + * It contains a minor code, which gives information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * The OMG CORBA core 2.4 specification has details. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class TRANSACTION_UNAVAILABLE extends SystemException { + /** + * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception + * with a default minor code of 0, a completion state of + * CompletionStatus.COMPLETED_NO, and a null description. + */ + public TRANSACTION_UNAVAILABLE() { + this(""); + } + + /** + * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the + * specifieddescription message, a minor code of 0, and a completion state + * of COMPLETED_NO. + * @param s the String containing a detail message + */ + public TRANSACTION_UNAVAILABLE(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the + * specified minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_UNAVAILABLE(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>TRANSACTION_UNAVAILABLE</code> exception with the + * specified description message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public TRANSACTION_UNAVAILABLE(String s, int minor, + CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java b/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java new file mode 100644 index 0000000..fc03856 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TRANSIENT.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Exception thrown when the ORB attempted to reach an object and failed. + * It is not an indication that an object does not exist. Instead, it simply + * means that no further determination of an object's status was possible + * because it could not be reached. This exception is raised if an attempt + * to establish a connection fails, for example, because the server or the + * implementation repository is down.<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class TRANSIENT extends SystemException { + /** + * Constructs a <code>TRANSIENT</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public TRANSIENT() { + this(""); + } + + /** + * Constructs a <code>TRANSIENT</code> exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public TRANSIENT(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs a <code>TRANSIENT</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public TRANSIENT(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs a <code>TRANSIENT</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public TRANSIENT(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java new file mode 100644 index 0000000..8366a75 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCode.java @@ -0,0 +1,516 @@ +/* + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.TypeCodePackage.*; +import org.omg.CORBA.portable.IDLEntity; + +/** + * A container for information about a specific CORBA data + * type. + * <P> + * <code>TypeCode</code> objects are used: + * <UL> + * <LI>in the Dynamic Invocation Interface -- to indicate the types + * of the actual arguments or the type of the return value. <BR> + * <code>NamedValue</code> objects are used to represent arguments and + * return values. One of their components is an <code>Any</code> + * object, which in turn has as one of its components a + * <code>TypeCode</code> object. + * <LI>by an Interface Repository to represent the type specifications + * that are part of many OMG IDL declarations + * </UL> + * <P> + * The representation of a <code>TypeCode</code> object is opaque, + * but abstractly, a <code>TypeCode</code> object consists of: + * <UL> + * <LI>a <code>kind</code> field, which is set to an instance + * of the class <code>TCKind</code> + * <LI>zero or more additional fields appropriate + * for the particular kind. For example, the + * <code>TypeCode</code> object + * describing the OMG IDL type <code>1ong</code> has kind + * <code>TCKind.tk_long</code> and no additional fields. + * The <code>TypeCode</code> describing OMG IDL type + * <code>sequence<boolean, 10></code> has a <code>kind</code> field + * with the value + * <code>TCKind.tk_sequence</code> and also fields with the values + * <code>boolean</code> and <code>10</code> for the + * type of sequence elements and the length of the sequence. + * </UL> + * + * <code>TypeCode</code> objects can be obtained in various ways: + * <OL> + * <LI>from a call to the method <code>Any.insert_X</code>, where X is + * a basic IDL type. This method creates a <code>TypeCode</code> object + * for type X and assigns it to the <code>Any</code> object's + * <code>type</code> field. + * <LI>from invocations of methods in the ORB class + * <P>For example, the following creates a <code>TypeCode</code> + * object for a <code>string</code> with a maximum of 30 characters: + * <PRE> + * org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30); + * </PRE> + * <P> The following creates a <code>TypeCode</code> + * object for an <code>array</code> of five <code>string</code>s: + * <PRE> + * org.omg.CORBA.TypeCode tcArray = orb.create_array_tc( + * 5, TCKind.tk_string); + * </PRE> + * <P> The following creates a <code>TypeCode</code> + * object for an interface named "Account": + * <PRE> + * org.omg.CORBA.TypeCode tcInterface = orb.create_interface_tc( + * "thisId", "Account"); + * </PRE> + * <LI>as the return value from the <code>_type</code> method + * in <code>Holder</code> classes for user-defined + * IDL types. These <code>Holder</code> classes are generated + * by the <code>idltojava</code> compiler. + * <LI>from a CORBA Interface Repository + * </OL> + * <P> + * Most of the methods in the class <code>TypeCode</code> + * are accessors, and the information contained in a <code>TypeCode</code> + * object is specific to a particular type. Therefore, methods + * must be invoked + * only on the kind of type codes to which they apply. If an + * accessor method + * tries to access information from an inappropriate kind of + * type code, it will throw + * the exception <code>TypeCodePackage.BadKind</code>. For example, + * if the method <code>discriminator_type</code> is called on anything + * other than a <code>union</code>, it will throw <code>BadKind</code> + * because only <code>union</code>s have a discriminator. + * The following list shows which methods apply to which kinds of + * type codes: + * <P> + * These methods may be invoked on all <code>TypeCode</code> kinds: + * <UL> + * <LI><code>equal</code> + * <LI><code>kind</code> + * </UL> + * <P> + * These methods may be invoked on <code>objref</code>, <code>struct</code>, + * <code>union</code>, <code>enum</code>, + * <code>alias</code>, <code>exception</code>, <code>value</code>, + * <code>value_box</code>, <code>native</code>, + * and <code>abstract_interface</code>: + * <UL> + * <LI><code>id</code> + * <LI><code>name</code> + * </UL> + * <P> + * These methods may be invoked on <code>struct</code>, + * <code>union</code>, <code>enum</code>, + * and <code>exception</code>: + * <UL> + * <LI><code>member_count</code> + * <LI><code>member_name</code> + * </UL> + * <P> + * These methods may be invoked on <code>struct</code>, + * <code>union</code>, and <code>exception</code>: + * <UL> + * <LI><code>member_type(int index)</code> + * </UL> + * <P> + * These methods may be invoked on <code>union</code>: + * <UL> + * <LI><code>member_label</code> + * <LI><code>discriminator_type</code> + * <LI><code>default_index</code> + * </UL> + * <P> + * These methods may be invoked on <code>string</code>, + * <code>sequence</code>, and <code>array</code>: + * <UL> + * <LI><code>length</code> + * </UL> + * <P> + * These methods may be invoked on <code>alias</code>, + * <code>sequence</code>, <code>array</code>, and <code>value_box</code>: + * <UL> + * <LI><code>content_type</code> + * </UL> + * <P> + * Unlike other CORBA pseudo-objects, <code>TypeCode</code> + * objects can be passed as general IDL parameters. <p> + * The methods <code>parameter</code> and <code>param_count</code>, + * which are deprecated, are not mapped. <p> + * + * Java IDL extends the CORBA specification to allow all operations permitted + * on a <code>struct</code> <code>TypeCode</code> to be permitted + * on an <code>exception</code> <code>TypeCode</code> as well. + */ +public abstract class TypeCode implements IDLEntity { + + /** + * Compares this <code>TypeCode</code> object with the given one, + * testing for equality. <code>TypeCode</code> objects are equal if + * they are interchangeable and give identical results when + * <code>TypeCode</code> operations are applied to them. + * + * @param tc the <code>TypeCode</code> object to compare against + * @return <code>true</code> if the type codes are equal; + * <code>false</code> otherwise + */ + public abstract boolean equal(TypeCode tc); + + /** + * Tests to see if the given <code>TypeCode</code> object is + * equivalent to this <code>TypeCode</code> object. + * + * + * @param tc the typecode to compare with this typecode + * + * @return <code>true</code> if the given typecode is equivalent to + * this typecode; <code>false</code> otherwise + * + */ + public abstract boolean equivalent(TypeCode tc); + + /** + * Strips out all optional name and member name fields, + * but leaves all alias typecodes intact. + * @return a <code>TypeCode</code> object with optional name and + * member name fields stripped out, except for alias typecodes, + * which are left intact + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + public abstract TypeCode get_compact_typecode(); + + + /** + * Retrieves the kind of this <code>TypeCode</code> object. + * The kind of a type code determines which <code>TypeCode</code> + * methods may legally be invoked on it. + * <P> + * The method <code>kind</code> may be invoked on any + * <code>TypeCode</code> object. + * + * @return the <code>TCKind</code> instance indicating the + * value of the <code>kind</code> field of this + * <code>TypeCode</code> object + */ + public abstract TCKind kind(); + + /** + * Retrieves the RepositoryId globally identifying the type + * of this <code>TypeCode</code> object. + * <P> + * The method <code>id</code> can be invoked on object reference, + * structure, union, enumeration, alias, exception, valuetype, + * boxed valuetype, native, and abstract interface type codes. + * Object reference, exception, valuetype, boxed valuetype, + * native, and abstract interface <code>TypeCode</code> objects + * always have a RepositoryId. + * Structure, union, enumeration, and alias <code>TypeCode</code> objects + * obtained from the Interface Repository or the method + * <code>ORB.create_operation_list</code> + * also always have a RepositoryId. If there is no RepositoryId, the + * method can return an empty string. + * + * @return the RepositoryId for this <code>TypeCode</code> object + * or an empty string if there is no RepositoryID + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of<code>TypeCode</code> + * object + */ + public abstract String id() throws BadKind; + + /** + * Retrieves the simple name identifying this <code>TypeCode</code> + * object within its + * enclosing scope. Since names are local to a Repository, the + * name returned from a <code>TypeCode</code> object + * may not match the name of the + * type in any particular Repository, and may even be an empty + * string. + * <P> + * The method <code>name</code> can be invoked on object reference, + * structure, union, enumeration, alias, exception, valuetype, + * boxed valuetype, native, and abstract interface + * <code>TypeCode</code> objects. + * + * @return the name identifying this <code>TypeCode</code> object + * or an empty string + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of<code>TypeCode</code> + * object + */ + public abstract String name() throws BadKind; + + /** + * Retrieves the number of members in the type described by + * this <code>TypeCode</code> object. + * <P> + * The method <code>member_count</code> can be invoked on + * structure, union, and enumeration <code>TypeCode</code> objects. + * Java IDL extends the CORBA specification to allow this method to + * operate on exceptions as well. + * + * @return the number of members constituting the type described + * by this <code>TypeCode</code> object + * + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract int member_count() throws BadKind; + + /** + * Retrieves the simple name of the member identified by + * the given index. Since names are local to a + * Repository, the name returned from a <code>TypeCode</code> object + * may not match the name of the member in any particular + * Repository, and may even be an empty string. + * <P> + * The method <code>member_name</code> can be invoked on structure, union, + * and enumeration <code>TypeCode</code> objects. + * Java IDL extends the CORBA specification to allow this method to + * operate on exceptions as well. + * + * @param index index of the member for which a name is being reqested + * @return simple name of the member identified by the + * index or an empty string + * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is equal + * to or greater than + * the number of members constituting the type + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract String member_name(int index) + throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds; + + /** + * Retrieves the <code>TypeCode</code> object describing the type + * of the member identified by the given index. + * <P> + * The method <code>member_type</code> can be invoked on structure + * and union <code>TypeCode</code> objects. + * Java IDL extends the CORBA specification to allow this method to + * operate on exceptions as well. + * + * @param index index of the member for which type information + * is begin requested + * @return the <code>TypeCode</code> object describing the + * member at the given index + * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is + * equal to or greater than + * the number of members constituting the type + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract TypeCode member_type(int index) + throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds; + + /** + * Retrieves the label of the union member + * identified by the given index. For the default member, + * the label is the zero octet. + * <P> + * The method <code>member_label</code> can only be invoked on union + * <code>TypeCode</code> objects. + * + * @param index index of the union member for which the + * label is being requested + * @return an <code>Any</code> object describing the label of + * the requested union member or the zero octet for + * the default member + * @throws org.omg.CORBA.TypeCodePackage.Bounds if the index is + * equal to or greater than + * the number of members constituting the union + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on a non-union <code>TypeCode</code> + * object + */ + public abstract Any member_label(int index) + throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds; + + /** + * Returns a <code>TypeCode</code> object describing + * all non-default member labels. + * The method <code>discriminator_type</code> can be invoked only + * on union <code>TypeCode</code> objects. + * + * @return the <code>TypeCode</code> object describing + * the non-default member labels + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on a non-union <code>TypeCode</code> + * object + */ + public abstract TypeCode discriminator_type() + throws BadKind; + + /** + * Returns the index of the + * default member, or -1 if there is no default member. + * <P> + * The method <code>default_index</code> can be invoked only on union + * <code>TypeCode</code> objects. + * + * @return the index of the default member, or -1 if + * there is no default member + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on a non-union <code>TypeCode</code> + * object + */ + public abstract int default_index() throws BadKind; + + /** + * Returns the number of elements in the type described by + * this <code>TypeCode</code> object. + * For strings and sequences, it returns the + * bound, with zero indicating an unbounded string or sequence. + * For arrays, it returns the number of elements in the array. + * <P> + * The method <code>length</code> can be invoked on string, sequence, and + * array <code>TypeCode</code> objects. + * + * @return the bound for strings and sequences, or the + * number of elements for arrays + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract int length() throws BadKind; + + /** + * Returns the <code>TypeCode</code> object representing the + * IDL type for the members of the object described by this + * <code>TypeCode</code> object. + * For sequences and arrays, it returns the + * element type. For aliases, it returns the original type. Note + * that multidimensional arrays are represented by nesting + * <code>TypeCode</code> objects, one per dimension. + * For boxed valuetypes, it returns the boxed type. + * <P> + * The method <code>content_type</code> can be invoked on sequence, array, + * alias, and boxed valuetype <code>TypeCode</code> objects. + * + * @return a <code>TypeCode</code> object representing + * the element type for sequences and arrays, the + * original type for aliases, or the + * boxed type for boxed valuetypes. + * @throws org.omg.CORBA.TypeCodePackage.BadKind if the method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract TypeCode content_type() throws BadKind; + + + /** + * Returns the number of digits in the fixed type described by this + * <code>TypeCode</code> object. For example, the typecode for + * the number 3000.275d could be <code>fixed<7,3></code>, where + * 7 is the precision and 3 is the scale. + * + * @return the total number of digits + * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + * + */ + public abstract short fixed_digits() throws BadKind ; + + /** + * Returns the scale of the fixed type described by this + * <code>TypeCode</code> object. A positive number indicates the + * number of digits to the right of the decimal point. + * For example, the number 3000d could have the + * typecode <code>fixed<4,0></code>, where the first number is + * the precision and the second number is the scale. + * A negative number is also possible and adds zeroes to the + * left of the decimal point. In this case, <code>fixed<1,-3></code>, + * could be the typecode for the number 3000d. + * + * @return the scale of the fixed type that this + * <code>TypeCode</code> object describes + * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method + * is invoked on an inappropriate kind of <code>TypeCode</code> + * object + */ + public abstract short fixed_scale() throws BadKind ; + + /** + * Returns the constant that indicates the visibility of the member + * at the given index. + * + * This operation can only be invoked on non-boxed value + * <code>TypeCode</code> objects. + * + * @param index an <code>int</code> indicating the index into the + * value + * @return either <code>PRIVATE_MEMBER.value</code> or + * <code>PUBLIC_MEMBER.value</code> + * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method + * is invoked on a non-value type <code>TypeCode</code> + * object + * @throws org.omg.CORBA.TypeCodePackage.Bounds + * if the given index is out of bounds + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + abstract public short member_visibility(int index) + throws BadKind, org.omg.CORBA.TypeCodePackage.Bounds ; + + /** + * Returns a constant indicating the modifier of the value type + * that this <code>TypeCode</code> object describes. The constant + * returned must be one of the following: <code>VM_NONE.value</code>, + * <code>VM_ABSTRACT.value</code>, <code>VM_CUSTOM.value</code>, + * or <code>VM_TRUNCATABLE.value</code>, + * + * @return a constant describing the value type + * that this <code>TypeCode</code> object describes + * @throws org.omg.CORBA.TypeCodePackage.BadKind + * if this method + * is invoked on a non-value type <code>TypeCode</code> + * object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + abstract public short type_modifier() throws BadKind ; + + /** + * Returns the <code>TypeCode</code> object that describes the concrete base type + * of the value type that this <code>TypeCode</code> object describes. + * Returns null if it doesn't have a concrete base type. + * + * @return the <code>TypeCode</code> object that describes the + * concrete base type of the value type + * that this <code>TypeCode</code> object describes + * @throws org.omg.CORBA.TypeCodePackage.BadKind if this method + * is invoked on a non-boxed value type <code>TypeCode</code> object + * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package + * comments for unimplemented features</a> + */ + abstract public TypeCode concrete_base_type() throws BadKind ; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java new file mode 100644 index 0000000..2fcde8b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodeHolder.java @@ -0,0 +1,110 @@ +/* + * Copyright (c) 1996, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code TypeCode}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code TypeCode} object + * that is used to store "out" and "inout" parameters in IDL operations. + * If an IDL operation signature has an IDL {@code TypeCode} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code TypeCodeHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myTypeCodeHolder} is an instance of {@code TypeCodeHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myTypeCodeHolder.value}. + * + * @since JDK1.2 + */ +public final class TypeCodeHolder implements Streamable { + + /** + * The {@code TypeCode} value held by + * this {@code TypeCodeHolder} object. + */ + public TypeCode value; + + /** + * Constructs a new {@code TypeCodeHolder} object with its + * {@code value} field initialized to {@code null}. + */ + public TypeCodeHolder() { + } + + /** + * Constructs a new {@code TypeCodeHolder} object with its + * {@code value} field initialized to the given + * {@code TypeCode} object. + * @param initial the {@code TypeCode} object with which to initialize + * the {@code value} field of the newly-created + * {@code TypeCodeHolder} object + */ + public TypeCodeHolder(TypeCode initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in + * this {@code TypeCodeHolder} object + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire + */ + public void _read(InputStream input) { + value = input.read_TypeCode(); + } + + /** + * Marshals to {@code output} the value in + * this {@code TypeCodeHolder} object. + * + * @param output the OutputStream which will contain the CDR formatted data + */ + public void _write(OutputStream output) { + output.write_TypeCode(value); + } + + /** + * Returns the TypeCode corresponding to the value held in + * this {@code TypeCodeHolder} object. + * + * @return the TypeCode of the value held in + * this {@code TypeCodeHolder} object + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_TypeCode); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java new file mode 100644 index 0000000..e139c2b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.TypeCodePackage; + +/** + * The exception <code>BadKind</code> is thrown when + * an inappropriate operation is invoked on a <code>TypeCode</code> object. For example, + * invoking the method <code>discriminator_type()</code> on an instance of + * <code>TypeCode</code> that does not represent an IDL union will cause the + * exception <code>BadKind</code> to be thrown. + * + * @see org.omg.CORBA.TypeCode + * @since JDK1.2 + */ + +public final class BadKind extends org.omg.CORBA.UserException { + /** + * Constructs a <code>BadKind</code> exception with no reason message. + */ + public BadKind() { + super(); + } + + /** + * Constructs a <code>BadKind</code> exception with the specified + * reason message. + * @param reason the String containing a reason message + */ + public BadKind(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java new file mode 100644 index 0000000..b9c1756 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.TypeCodePackage; + + +/** + * This Helper class is used to facilitate the marshalling of + * {@code TypeCodePackage/BadKind}. + * For more information on Helper files, see + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>. + */ + +abstract public class BadKindHelper +{ + private static String _id = "IDL:omg.org.CORBA/TypeCode/BadKind:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.TypeCodePackage.BadKind that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.TypeCodePackage.BadKind extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.TypeCodePackage.BadKindHelper.id (), "BadKind", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.TypeCodePackage.BadKind read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.TypeCodePackage.BadKind value = new org.omg.CORBA.TypeCodePackage.BadKind (); + // read and discard the repository ID + istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.TypeCodePackage.BadKind value) + { + // write the repository ID + ostream.write_string (id ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java new file mode 100644 index 0000000..059a3ab --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.TypeCodePackage; + +/** + * Provides the <code>TypeCode</code> operations <code>member_name()</code>, + * <code>member_type()</code>, and <code>member_label</code>. + * These methods + * raise <code>Bounds</code> when the index parameter is greater than or equal + * to the number of members constituting the type. + * + * @since JDK1.2 + */ + +public final class Bounds extends org.omg.CORBA.UserException { + + /** + * Constructs a <code>Bounds</code> exception with no reason message. + */ + public Bounds() { + super(); + } + + /** + * Constructs a <code>Bounds</code> exception with the specified + * reason message. + * @param reason the String containing a reason message + */ + public Bounds(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java new file mode 100644 index 0000000..5c1c89f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.TypeCodePackage; + + +/** + * This Helper class is used to facilitate the marshalling of + * {@code TypeCodePackage/Bounds}. + * For more information on Helper files, see + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>. + */ + +abstract public class BoundsHelper +{ + private static String _id = "IDL:omg.org.CORBA/TypeCode/Bounds:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.TypeCodePackage.Bounds that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.TypeCodePackage.Bounds extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.TypeCodePackage.BoundsHelper.id (), "Bounds", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.TypeCodePackage.Bounds read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.TypeCodePackage.Bounds value = new org.omg.CORBA.TypeCodePackage.Bounds (); + // read and discard the repository ID + istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.TypeCodePackage.Bounds value) + { + // write the repository ID + ostream.write_string (id ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html new file mode 100644 index 0000000..e69994d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/package.html @@ -0,0 +1,52 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ + +--> +</head> +<body bgcolor="white"> + +Provides the user-defined exceptions <code>BadKind</code> +and <code>Bounds</code>, which are thrown by methods in +in the class <code>TypeCode</code>. + + + <h2>Related Documentation</h2> + +For an overview, please see: +<ul> + <li><a href="../package-summary.html#package_description"> + comments on the <code>CORBA</code> package</a> + + </ul> + + +@since JDK1.2 +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java new file mode 100644 index 0000000..54376e8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code ULongLongSeq}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/ULongLongSeqHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:37 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public abstract class ULongLongSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/ULongLongSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, long[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static long[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulonglong); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ULongLongSeqHelper.id (), "ULongLongSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static long[] read (org.omg.CORBA.portable.InputStream istream) + { + long value[] = null; + int _len0 = istream.read_long (); + value = new long[_len0]; + istream.read_ulonglong_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, long[] value) + { + ostream.write_long (value.length); + ostream.write_ulonglong_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java new file mode 100644 index 0000000..a56e64b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ULongLongSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Holder for {@code ULongLongSeq}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/ULongLongSeqHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:37 o'clock GMT+00:00 +*/ + +public final class ULongLongSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public long value[] = null; + + public ULongLongSeqHolder () + { + } + + public ULongLongSeqHolder (long[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.ULongLongSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.ULongLongSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.ULongLongSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java new file mode 100644 index 0000000..c89e7b7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code ULongSeq}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/ULongSeqHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public abstract class ULongSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/ULongSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, int[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static int[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ulong); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.ULongSeqHelper.id (), "ULongSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static int[] read (org.omg.CORBA.portable.InputStream istream) + { + int value[] = null; + int _len0 = istream.read_long (); + value = new int[_len0]; + istream.read_ulong_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, int[] value) + { + ostream.write_long (value.length); + ostream.write_ulong_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java new file mode 100644 index 0000000..0895bb4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ULongSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Holder for {@code ULongSeq}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/ULongSeqHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +*/ + +public final class ULongSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public int value[] = null; + + public ULongSeqHolder () + { + } + + public ULongSeqHolder (int[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.ULongSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.ULongSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.ULongSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java b/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java new file mode 100644 index 0000000..ba57f3e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UNKNOWN.java @@ -0,0 +1,88 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * This exception is raised if an operation implementation + * throws a non-CORBA exception (such as an exception + * specific to the implementation's programming language), + * or if an operation raises a user exception that does not + * appear in the operation's raises expression. UNKNOWN is + * also raised if the server returns a system exception that + * is unknown to the client. (This can happen if the server + * uses a later version of CORBA than the client and new system + * exceptions have been added to the later version.)<P> + * It contains a minor code, which gives more detailed information about + * what caused the exception, and a completion status. It may also contain + * a string describing the exception. + * <P> + * See the section {@extLink jidlexception_minorcodes Minor Code Meaning} + * to see the minor codes for this exception. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class UNKNOWN extends SystemException { + /** + * Constructs an <code>UNKNOWN</code> exception with a default minor code + * of 0, a completion state of CompletionStatus.COMPLETED_NO, + * and a null description. + */ + public UNKNOWN() { + this(""); + } + + /** + * Constructs an <code>UNKNOWN</code> exception with the specified description message, + * a minor code of 0, and a completion state of COMPLETED_NO. + * @param s the String containing a detail message + */ + public UNKNOWN(String s) { + this(s, 0, CompletionStatus.COMPLETED_NO); + } + + /** + * Constructs an <code>UNKNOWN</code> exception with the specified + * minor code and completion status. + * @param minor the minor code + * @param completed the completion status + */ + public UNKNOWN(int minor, CompletionStatus completed) { + this("", minor, completed); + } + + /** + * Constructs an <code>UNKNOWN</code> exception with the specified description + * message, minor code, and completion status. + * @param s the String containing a description message + * @param minor the minor code + * @param completed the completion status + */ + public UNKNOWN(String s, int minor, CompletionStatus completed) { + super(s, minor, completed); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java new file mode 100644 index 0000000..fb6d960 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * One of the {@code PolicyErrorCode}s which would be filled if + * the requested {@code Policy} is understood to be valid by the + * ORB, but is not currently supported. + * + * @author rip-dev + */ +public interface UNSUPPORTED_POLICY { + /** + * The Error code for PolicyError exception. + */ + final short value = (short) (1L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java new file mode 100644 index 0000000..a070b9f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A {@code PolicyErrorCode} which would be filled if the value + * requested for the {@code Policy} is of a + * valid type and within the valid range for that type, but this valid value + * is not currently supported. + * + * @author rip-dev + */ +public interface UNSUPPORTED_POLICY_VALUE { + /** + * The Error code for PolicyError exception. + */ + final short value = (short) (4L); +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java new file mode 100644 index 0000000..aa6f92f --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code UShortSeq}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/UShortSeqHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public abstract class UShortSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/UShortSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, short[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static short[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_ushort); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.UShortSeqHelper.id (), "UShortSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static short[] read (org.omg.CORBA.portable.InputStream istream) + { + short value[] = null; + int _len0 = istream.read_long (); + value = new short[_len0]; + istream.read_ushort_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, short[] value) + { + ostream.write_long (value.length); + ostream.write_ushort_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java new file mode 100644 index 0000000..d9ab409 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UShortSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Holder for {@code UShortSeq}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/UShortSeqHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +*/ + +public final class UShortSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public short value[] = null; + + public UShortSeqHolder () + { + } + + public UShortSeqHolder (short[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.UShortSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.UShortSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.UShortSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java b/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java new file mode 100644 index 0000000..61d2593 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UnionMember.java @@ -0,0 +1,95 @@ +/* + * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/UnionMember.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** + * A description in the Interface Repository of a member of an IDL union. + */ +public final class UnionMember implements org.omg.CORBA.portable.IDLEntity { + // instance variables + + /** + * The name of the union member described by this + * <code>UnionMember</code> object. + * @serial + */ + public String name; + + /** + * The label of the union member described by this + * <code>UnionMember</code> object. + * @serial + */ + public org.omg.CORBA.Any label; + + /** + * The type of the union member described by this + * <code>UnionMember</code> object. + * @serial + */ + public org.omg.CORBA.TypeCode type; + + /** + * The typedef that represents the IDL type of the union member described by this + * <code>UnionMember</code> object. + * @serial + */ + public org.omg.CORBA.IDLType type_def; + + // constructors + + /** + * Constructs a new <code>UnionMember</code> object with its fields initialized + * to null. + */ + public UnionMember() { } + + /** + * Constructs a new <code>UnionMember</code> object with its fields initialized + * to the given values. + * + * @param __name a <code>String</code> object with the name of this + * <code>UnionMember</code> object + * @param __label an <code>Any</code> object with the label of this + * <code>UnionMember</code> object + * @param __type a <code>TypeCode</code> object describing the type of this + * <code>UnionMember</code> object + * @param __type_def an <code>IDLType</code> object that represents the + * IDL type of this <code>UnionMember</code> object + */ + public UnionMember(String __name, org.omg.CORBA.Any __label, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def) { + name = __name; + label = __label; + type = __type; + type_def = __type_def; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java new file mode 100644 index 0000000..de52b23 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UnionMemberHelper.java @@ -0,0 +1,124 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code UnionMember}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/UnionMemberHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl +* 03 June 1999 11:33:43 o'clock GMT+00:00 +*/ + +abstract public class UnionMemberHelper +{ + private static String _id = "IDL:omg.org/CORBA/UnionMember:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.UnionMember that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.UnionMember extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [4]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0); + _members0[0] = new org.omg.CORBA.StructMember ( + "name", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any); + _members0[1] = new org.omg.CORBA.StructMember ( + "label", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode); + _members0[2] = new org.omg.CORBA.StructMember ( + "type", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type (); + _members0[3] = new org.omg.CORBA.StructMember ( + "type_def", + _tcOf_members0, + null); + __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.UnionMemberHelper.id (), "UnionMember", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.UnionMember read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.UnionMember value = new org.omg.CORBA.UnionMember (); + value.name = istream.read_string (); + value.label = istream.read_any (); + value.type = istream.read_TypeCode (); + value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.UnionMember value) + { + ostream.write_string (value.name); + ostream.write_any (value.label); + ostream.write_TypeCode (value.type); + org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java new file mode 100644 index 0000000..4a65b0a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserException.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * A class that contains user exceptions returned by the server. + * When the client uses the DII to make an invocation, any user exception + * returned from the server is enclosed in an <code>Any</code> object contained in the + * <code>UnknownUserException</code> object. This is available from the + * <code>Environment</code> object returned by the method <code>Request.env</code>. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + * @see Request + */ + +public final class UnknownUserException extends UserException { + + /** The <code>Any</code> instance that contains the actual user exception thrown + * by the server. + * @serial + */ + public Any except; + + /** + * Constructs an <code>UnknownUserException</code> object. + */ + public UnknownUserException() { + super(); + } + + /** + * Constructs an <code>UnknownUserException</code> object that contains the given + * <code>Any</code> object. + * + * @param a an <code>Any</code> object that contains a user exception returned + * by the server + */ + public UnknownUserException(Any a) { + super(); + except = a; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java new file mode 100644 index 0000000..32ff8ee --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code UnknownUserException}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/UnknownUserExceptionHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from CORBA.idl +* Thursday, August 24, 2000 5:52:22 PM PDT +*/ + +abstract public class UnknownUserExceptionHelper +{ + private static String _id = "IDL:omg.org/CORBA/UnknownUserException:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.UnknownUserException that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.UnknownUserException extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [1]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_any); + _members0[0] = new org.omg.CORBA.StructMember ( + "except", + _tcOf_members0, + null); + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.UnknownUserExceptionHelper.id (), "UnknownUserException", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.UnknownUserException read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.UnknownUserException value = new org.omg.CORBA.UnknownUserException (); + // read and discard the repository ID + istream.read_string (); + value.except = istream.read_any (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.UnknownUserException value) + { + // write the repository ID + ostream.write_string (id ()); + ostream.write_any (value.except); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java new file mode 100644 index 0000000..ee5ccd9 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** +* The Holder for {@code UnknownUserException}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/UnknownUserExceptionHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from CORBA.idl +* Thursday, August 24, 2000 5:52:22 PM PDT +*/ + +public final class UnknownUserExceptionHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.UnknownUserException value = null; + + public UnknownUserExceptionHolder () + { + } + + public UnknownUserExceptionHolder (org.omg.CORBA.UnknownUserException initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.UnknownUserExceptionHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.UnknownUserExceptionHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.UnknownUserExceptionHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/UserException.java b/src/java.corba/share/classes/org/omg/CORBA/UserException.java new file mode 100644 index 0000000..fa803d7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/UserException.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The root class for CORBA IDL-defined user exceptions. + * All CORBA user exceptions are checked exceptions, which + * means that they need to + * be declared in method signatures. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ +public abstract class UserException extends java.lang.Exception implements org.omg.CORBA.portable.IDLEntity { + + /** + * Constructs a <code>UserException</code> object. + * This method is called only by subclasses. + */ + protected UserException() { + super(); + } + + /** + * Constructs a <code>UserException</code> object with a + * detail message. This method is called only by subclasses. + * + * @param reason a <code>String</code> object giving the reason for this + * exception + */ + protected UserException(String reason) { + super(reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java b/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java new file mode 100644 index 0000000..8bbc8f7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VM_ABSTRACT.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** Defines the code used to represent an Abstract interface in +* a typecode. +* This is one of the possible results of the <code>type_modified</code> +* method on the <code>TypeCode</code> interface. +* @see org.omg.CORBA.TypeCode +*/ +public interface VM_ABSTRACT { + /** The value representing an abstract interface value type in + * a typecode. + */ + final short value = (short) (2L); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java b/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java new file mode 100644 index 0000000..d9b4034 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VM_CUSTOM.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** Defines the code used to represent a custom marshalled value type in +* a typecode. +* This is one of the possible results of the <code>type_modifier</code> +* method on the <code>TypeCode</code> interface. +* @see org.omg.CORBA.TypeCode +*/ +public interface VM_CUSTOM { + /** The value representing a custom marshalled value type in + * a typecode. + */ + final short value = (short) (1L); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java b/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java new file mode 100644 index 0000000..ec0fac4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VM_NONE.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * Defines the code used to represent the one of the values of a value type + * in a typecode. + * + * @author OMG + * @see org.omg.CORBA.TypeCode + * @since JDK1.2 + */ + + +public interface VM_NONE { + /** + * The value representing the value type in a typecode as per + * CORBA 2.3 spec. + */ + final short value = (short) (0L); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java b/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java new file mode 100644 index 0000000..d2cee0b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** Defines the code used to represent a truncatable value type in +* a typecode. A value type is truncatable if it inherits "safely" +* from another value type, which means it can be cast to a more +* general inherited type. +* This is one of the possible results of the <code>type_modifier</code> +* method on the <code>TypeCode</code> interface. +* @see org.omg.CORBA.TypeCode +*/ +public interface VM_TRUNCATABLE { + /** The value representing a truncatable value type in + * a typecode. + */ + final short value = (short) (3L); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java new file mode 100644 index 0000000..68a1066 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHelper.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + /** + * The Helper for {@code ValueBase}. For more information on + * Helper files, see <a href="doc-files/generatedfiles.html#helper"> + * "Generated Files: Helper Files"</a>.<P> + */ + +/* + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA; + +abstract public class ValueBaseHelper +{ + private static String _id = "IDL:omg.org/CORBA/ValueBase:1.0"; + + public static void insert (org.omg.CORBA.Any a, java.io.Serializable that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static java.io.Serializable extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (TCKind.tk_value); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static java.io.Serializable read (org.omg.CORBA.portable.InputStream istream) + { + return ((org.omg.CORBA_2_3.portable.InputStream)istream).read_value (); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value) + { + ((org.omg.CORBA_2_3.portable.OutputStream)ostream).write_value (value); + } + + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java new file mode 100644 index 0000000..364aba7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ValueBaseHolder.java @@ -0,0 +1,107 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +import org.omg.CORBA.portable.Streamable; +import org.omg.CORBA.portable.InputStream; +import org.omg.CORBA.portable.OutputStream; + +/** + * The Holder for {@code ValueBase}. For more information on + * Holder files, see <a href="doc-files/generatedfiles.html#holder"> + * "Generated Files: Holder Files"</a>.<P> + * A Holder class for a {@code java.io.Serializable} + * that is used to store "out" and "inout" parameters in IDL methods. + * If an IDL method signature has an IDL {@code ValueBase} as an "out" + * or "inout" parameter, the programmer must pass an instance of + * {@code ValueBaseHolder} as the corresponding + * parameter in the method invocation; for "inout" parameters, the programmer + * must also fill the "in" value to be sent to the server. + * Before the method invocation returns, the ORB will fill in the + * value corresponding to the "out" value returned from the server. + * <P> + * If {@code myValueBaseHolder} is an instance of {@code ValueBaseHolder}, + * the value stored in its {@code value} field can be accessed with + * {@code myValueBaseHolder.value}. + * + */ +public final class ValueBaseHolder implements Streamable { + + /** + * The {@code java.io.Serializable} value held by this + * {@code ValueBaseHolder} object. + */ + public java.io.Serializable value; + + /** + * Constructs a new {@code ValueBaseHolder} object with its + * {@code value} field initialized to {@code 0}. + */ + public ValueBaseHolder() { + } + + /** + * Constructs a new {@code ValueBaseHolder} object with its + * {@code value} field initialized to the given + * {@code java.io.Serializable}. + * @param initial the {@code java.io.Serializable} with which to initialize + * the {@code value} field of the newly-created + * {@code ValueBaseHolder} object + */ + public ValueBaseHolder(java.io.Serializable initial) { + value = initial; + } + + /** + * Reads from {@code input} and initalizes the value in the Holder + * with the unmarshalled data. + * + * @param input the InputStream containing CDR formatted data from the wire + */ + public void _read(InputStream input) { + value = ((org.omg.CORBA_2_3.portable.InputStream)input).read_value(); + } + + /** + * Marshals to {@code output} the value in the Holder. + * + * @param output the OutputStream which will contain the CDR formatted data + */ + public void _write(OutputStream output) { + ((org.omg.CORBA_2_3.portable.OutputStream)output).write_value(value); + } + + /** + * Returns the {@code TypeCode} object + * corresponding to the value held in the Holder. + * + * @return the TypeCode of the value held in the holder + */ + public org.omg.CORBA.TypeCode _type() { + return ORB.init().get_primitive_tc(TCKind.tk_value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java b/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java new file mode 100644 index 0000000..6477938 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ValueMember.java @@ -0,0 +1,121 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CORBA/ValueMember.java + * From: ./ir.idl + * Date: Fri Aug 28 16:03:31 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + */ + +package org.omg.CORBA; + +/** + * A description in the Interface Repository of + * a member of a <code>value</code> object. + */ +public final class ValueMember implements org.omg.CORBA.portable.IDLEntity { + + // instance variables + + /** + * The name of the <code>value</code> member described by this + * <code>ValueMember</code> object. + * @serial + */ + public String name; + + /** + * The repository ID of the <code>value</code> member described by + * this <code>ValueMember</code> object; + * @serial + */ + public String id; + + /** + * The repository ID of the <code>value</code> in which this member + * is defined. + * @serial + */ + public String defined_in; + + /** + * The version of the <code>value</code> in which this member is defined. + * @serial + */ + public String version; + + /** + * The type of of this <code>value</code> member. + * @serial + */ + public org.omg.CORBA.TypeCode type; + + /** + * The typedef that represents the IDL type of the <code>value</code> + * member described by this <code>ValueMember</code> object. + * @serial + */ + public org.omg.CORBA.IDLType type_def; + + /** + * The type of access (public, private) for the <code>value</code> + * member described by this <code>ValueMember</code> object. + * @serial + */ + public short access; + // constructors + + /** + * Constructs a default <code>ValueMember</code> object. + */ + public ValueMember() { } + + /** + * Constructs a <code>ValueMember</code> object initialized with + * the given values. + * + *@param __name The name of the <code>value</code> member described by this + * <code>ValueMember</code> object. + *@param __id The repository ID of the <code>value</code> member described by + * this <code>ValueMember</code> object; + *@param __defined_in The repository ID of the <code>value</code> in which this member + * is defined. + *@param __version The version of the <code>value</code> in which this member is defined. + *@param __type The type of of this <code>value</code> member. + *@param __type_def The typedef that represents the IDL type of the <code>value</code> + * member described by this <code>ValueMember</code> object. + *@param __access The type of access (public, private) for the <code>value</code> + * member described by this <code>ValueMember</code> object. + */ + public ValueMember(String __name, String __id, String __defined_in, String __version, org.omg.CORBA.TypeCode __type, org.omg.CORBA.IDLType __type_def, short __access) { + name = __name; + id = __id; + defined_in = __defined_in; + version = __version; + type = __type; + type_def = __type_def; + access = __access; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java b/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java new file mode 100644 index 0000000..ac3130c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ValueMemberHelper.java @@ -0,0 +1,149 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code ValueMember}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/ValueMemberHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl +* 03 June 1999 11:33:44 o'clock GMT+00:00 +*/ + +abstract public class ValueMemberHelper +{ + private static String _id = "IDL:omg.org/CORBA/ValueMember:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.ValueMember that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.ValueMember extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [7]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.IdentifierHelper.id (), "Identifier", _tcOf_members0); + _members0[0] = new org.omg.CORBA.StructMember ( + "name", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", _tcOf_members0); + _members0[1] = new org.omg.CORBA.StructMember ( + "id", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.RepositoryIdHelper.id (), "RepositoryId", _tcOf_members0); + _members0[2] = new org.omg.CORBA.StructMember ( + "defined_in", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_string_tc (0); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VersionSpecHelper.id (), "VersionSpec", _tcOf_members0); + _members0[3] = new org.omg.CORBA.StructMember ( + "version", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_TypeCode); + _members0[4] = new org.omg.CORBA.StructMember ( + "type", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.IDLTypeHelper.type (); + _members0[5] = new org.omg.CORBA.StructMember ( + "type_def", + _tcOf_members0, + null); + _tcOf_members0 = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short); + _tcOf_members0 = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VisibilityHelper.id (), "Visibility", _tcOf_members0); + _members0[6] = new org.omg.CORBA.StructMember ( + "access", + _tcOf_members0, + null); + __typeCode = org.omg.CORBA.ORB.init ().create_struct_tc (org.omg.CORBA.ValueMemberHelper.id (), "ValueMember", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.ValueMember read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.ValueMember value = new org.omg.CORBA.ValueMember (); + value.name = istream.read_string (); + value.id = istream.read_string (); + value.defined_in = istream.read_string (); + value.version = istream.read_string (); + value.type = istream.read_TypeCode (); + value.type_def = org.omg.CORBA.IDLTypeHelper.read (istream); + value.access = istream.read_short (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.ValueMember value) + { + ostream.write_string (value.name); + ostream.write_string (value.id); + ostream.write_string (value.defined_in); + ostream.write_string (value.version); + ostream.write_TypeCode (value.type); + org.omg.CORBA.IDLTypeHelper.write (ostream, value.type_def); + ostream.write_short (value.access); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java b/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java new file mode 100644 index 0000000..d4bf845 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VersionSpecHelper.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code VersionSpec}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/VersionSpecHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl +* 03 June 1999 11:33:43 o'clock GMT+00:00 +*/ + +abstract public class VersionSpecHelper +{ + private static String _id = "IDL:omg.org/CORBA/VersionSpec:1.0"; + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_string_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VersionSpecHelper.id (), "VersionSpec", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + String value = null; + value = istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + ostream.write_string (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java b/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java new file mode 100644 index 0000000..5db6c4e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/VisibilityHelper.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code Visibility}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/VisibilityHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl +* 03 June 1999 11:33:44 o'clock GMT+00:00 +*/ + + +// orbos 98-01-18: Objects By Value -- begin +abstract public class VisibilityHelper +{ + private static String _id = "IDL:omg.org/CORBA/Visibility:1.0"; + + public static void insert (org.omg.CORBA.Any a, short that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static short extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_short); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.VisibilityHelper.id (), "Visibility", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static short read (org.omg.CORBA.portable.InputStream istream) + { + short value = (short)0; + value = istream.read_short (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, short value) + { + ostream.write_short (value); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java new file mode 100644 index 0000000..10d3d7c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHelper.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Helper for {@code WCharSeq}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/WCharSeqHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public abstract class WCharSeqHelper +{ + private static String _id = "IDL:omg.org/CORBA/WCharSeq:1.0"; + + public static void insert (org.omg.CORBA.Any a, char[] that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static char[] extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().get_primitive_tc (org.omg.CORBA.TCKind.tk_wchar); + __typeCode = org.omg.CORBA.ORB.init ().create_sequence_tc (0, __typeCode); + __typeCode = org.omg.CORBA.ORB.init ().create_alias_tc (org.omg.CORBA.WCharSeqHelper.id (), "WCharSeq", __typeCode); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static char[] read (org.omg.CORBA.portable.InputStream istream) + { + char value[] = null; + int _len0 = istream.read_long (); + value = new char[_len0]; + istream.read_wchar_array (value, 0, _len0); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, char[] value) + { + ostream.write_long (value.length); + ostream.write_wchar_array (value, 0, value.length); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java new file mode 100644 index 0000000..af9aac4 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WCharSeqHolder.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Holder for {@code WCharSeq}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/WCharSeqHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from streams.idl +* 13 May 1999 22:41:36 o'clock GMT+00:00 +*/ + +public final class WCharSeqHolder implements org.omg.CORBA.portable.Streamable +{ + public char value[] = null; + + public WCharSeqHolder () + { + } + + public WCharSeqHolder (char[] initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.WCharSeqHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.WCharSeqHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.WCharSeqHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java new file mode 100644 index 0000000..fa14f5e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WStringValueHelper.java @@ -0,0 +1,142 @@ +/* + * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** +* The Helper for {@code WStringValue}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +*/ + +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA; + +/** +* org/omg/CORBA/WStringValueHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from orb.idl +* 31 May 1999 22:27:30 o'clock GMT+00:00 +* +* The class definition has been modified to conform to the following +* OMG specifications : +* <ul> +* <li> ORB core as defined by CORBA 2.3.1 +* (<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>) +* </li> +* +* <li> IDL/Java Language Mapping as defined in +* <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a> +* </li> +* </ul> +*/ + +public class WStringValueHelper implements org.omg.CORBA.portable.BoxedValueHelper +{ + private static String _id = "IDL:omg.org/CORBA/WStringValue:1.0"; + + private static WStringValueHelper _instance = new WStringValueHelper (); + + public static void insert (org.omg.CORBA.Any a, String that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static String extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + __typeCode = org.omg.CORBA.ORB.init ().create_wstring_tc (0); + __typeCode = org.omg.CORBA.ORB.init ().create_value_box_tc (_id, "WStringValue", __typeCode); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static String read (org.omg.CORBA.portable.InputStream istream) + { + if (!(istream instanceof org.omg.CORBA_2_3.portable.InputStream)) { + throw new org.omg.CORBA.BAD_PARAM(); } + return (String) ((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (_instance); + } + + public java.io.Serializable read_value (org.omg.CORBA.portable.InputStream istream) + { + String tmp; + tmp = istream.read_wstring (); + return (java.io.Serializable) tmp; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, String value) + { + if (!(ostream instanceof org.omg.CORBA_2_3.portable.OutputStream)) { + throw new org.omg.CORBA.BAD_PARAM(); } + ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, _instance); + } + + public void write_value (org.omg.CORBA.portable.OutputStream ostream, java.io.Serializable value) + { + if (!(value instanceof String)) { + throw new org.omg.CORBA.MARSHAL(); } + String valueType = (String) value; + ostream.write_wstring (valueType); + } + + public String get_id () + { + return _id; + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java new file mode 100644 index 0000000..a9670d2 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransaction.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA; + +/** + * The CORBA <code>WrongTransaction</code> user-defined exception. + * This exception is thrown only by the methods + * <code>Request.get_response</code> + * and <code>ORB.get_next_response</code> when they are invoked + * from a transaction scope that is different from the one in + * which the client originally sent the request. + * See the OMG Transaction Service Specification for details. + * + * <p>See also {@extLink jidlexception documentation on Java IDL exceptions}. + * </p> + */ + +public final class WrongTransaction extends UserException { + /** + * Constructs a WrongTransaction object with an empty detail message. + */ + public WrongTransaction() { + super(WrongTransactionHelper.id()); + } + + /** + * Constructs a WrongTransaction object with the given detail message. + * @param reason The detail message explaining what caused this exception to be thrown. + */ + public WrongTransaction(String reason) { + super(WrongTransactionHelper.id() + " " + reason); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java new file mode 100644 index 0000000..b87ed34 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHelper.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** +* The Helper for {@code WrongTransaction}. For more information on +* Helper files, see <a href="doc-files/generatedfiles.html#helper"> +* "Generated Files: Helper Files"</a>.<P> +* org/omg/CORBA/WrongTransactionHelper.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from CORBA.idl +* Thursday, August 24, 2000 5:32:50 PM PDT +*/ + +abstract public class WrongTransactionHelper +{ + private static String _id = "IDL:omg.org/CORBA/WrongTransaction:1.0"; + + public static void insert (org.omg.CORBA.Any a, org.omg.CORBA.WrongTransaction that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.CORBA.WrongTransaction extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember [0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_exception_tc (org.omg.CORBA.WrongTransactionHelper.id (), "WrongTransaction", _members0); + __active = false; + } + } + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.CORBA.WrongTransaction read (org.omg.CORBA.portable.InputStream istream) + { + org.omg.CORBA.WrongTransaction value = new org.omg.CORBA.WrongTransaction (); + // read and discard the repository ID + istream.read_string (); + return value; + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, org.omg.CORBA.WrongTransaction value) + { + // write the repository ID + ostream.write_string (id ()); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java new file mode 100644 index 0000000..d33ba97 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/WrongTransactionHolder.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + +/** +* The Holder for {@code WrongTransaction}. For more information on +* Holder files, see <a href="doc-files/generatedfiles.html#holder"> +* "Generated Files: Holder Files"</a>.<P> +* org/omg/CORBA/WrongTransactionHolder.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from CORBA.idl +* Thursday, August 24, 2000 5:32:50 PM PDT +*/ + +public final class WrongTransactionHolder implements org.omg.CORBA.portable.Streamable +{ + public org.omg.CORBA.WrongTransaction value = null; + + public WrongTransactionHolder () + { + } + + public WrongTransactionHolder (org.omg.CORBA.WrongTransaction initialValue) + { + value = initialValue; + } + + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = org.omg.CORBA.WrongTransactionHelper.read (i); + } + + public void _write (org.omg.CORBA.portable.OutputStream o) + { + org.omg.CORBA.WrongTransactionHelper.write (o, value); + } + + public org.omg.CORBA.TypeCode _type () + { + return org.omg.CORBA.WrongTransactionHelper.type (); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java b/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java new file mode 100644 index 0000000..5607d70 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/_IDLTypeStub.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Stub for {@code IDLType}. For more information on +* Stub files, see <a href="doc-files/generatedfiles.html#stub"> +* "Generated Files: Stubs"</a>.<P> +* org/omg/CORBA/_IDLTypeStub.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ir.idl. +* 03 June 1999 11:33:44 o'clock GMT+00:00 +*/ + +public class _IDLTypeStub extends org.omg.CORBA.portable.ObjectImpl implements org.omg.CORBA.IDLType +{ + /** + * Constructs a default {@code _IDLTypeStub} object. + * NOTE: If the default constructor is used, the + * object is useless until the method {@code _set_delegate} + * has been called. + */ + // NOTE: This constructor is not required according to the spec. Only JCK expects it now. + public _IDLTypeStub () + { + super (); + } + + /** + * Constructs an {@code _IDLTypeStub} object initialized + * with the given {@code Delegate} object. + * + * @param delegate a Delegate object + */ + // NOTE: This constructor is not required according to the spec. We keep it as a convenience method. + public _IDLTypeStub (org.omg.CORBA.portable.Delegate delegate) + { + super (); + _set_delegate (delegate); + } + + public org.omg.CORBA.TypeCode type () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("_get_type", true); + _in = _invoke (_out); + org.omg.CORBA.TypeCode __result = _in.read_TypeCode (); + return __result; + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + return type (); + } finally { + _releaseReply (_in); + } + } // type + + + // read interface + public org.omg.CORBA.DefinitionKind def_kind () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("_get_def_kind", true); + _in = _invoke (_out); + org.omg.CORBA.DefinitionKind __result = org.omg.CORBA.DefinitionKindHelper.read (_in); + return __result; + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + return def_kind (); + } finally { + _releaseReply (_in); + } + } // def_kind + + + // write interface + public void destroy () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("destroy", true); + _in = _invoke (_out); + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + destroy (); + } finally { + _releaseReply (_in); + } + } // destroy + + // Type-specific CORBA::Object operations + private static String[] __ids = { + "IDL:omg.org/CORBA/IDLType:1.0", + "IDL:omg.org/CORBA/IRObject:1.0"}; + + public String[] _ids () + { + return (String[])__ids.clone (); + } + + private void readObject (java.io.ObjectInputStream s) + { + try + { + String str = s.readUTF (); + org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init ().string_to_object (str); + org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate (); + _set_delegate (delegate); + } catch (java.io.IOException e) {} + } + + private void writeObject (java.io.ObjectOutputStream s) + { + try + { + String str = org.omg.CORBA.ORB.init ().object_to_string (this); + s.writeUTF (str); + } catch (java.io.IOException e) {} + } +} // class _IDLTypeStub diff --git a/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java b/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java new file mode 100644 index 0000000..4312fd7 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/_PolicyStub.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA; + + +/** +* The Stub for {@code Policy}. For more information on +* Stub files, see <a href="doc-files/generatedfiles.html#stub"> +* "Generated Files: Stubs"</a>.<P> +* org/omg/CORBA/_PolicyStub.java +* Generated by the IDL-to-Java compiler (portable), version "3.0" +* from ../../../../../src/share/classes/org/omg/PortableServer/corba.idl. +* Saturday, July 17, 1999 12:26:20 AM PDT +*/ + +public class _PolicyStub extends org.omg.CORBA.portable.ObjectImpl implements org.omg.CORBA.Policy +{ + /** Constructors + * NOTE: If the default constructor is used, the + * object is useless until _set_delegate (...) + * is called. + */ + public _PolicyStub () + { + super (); + } + + /** Constructs a {@code _PolicyStub} object initialized + * with the given {@code Delegate} object. + * + * @param delegate a Delegate Object + */ + public _PolicyStub (org.omg.CORBA.portable.Delegate delegate) + { + super (); + _set_delegate (delegate); + } + + + /** Returns the constant value that corresponds to the + * type of the policy object. The values of + * the polivy objectys are allocated by the OMG. + * New values for PolicyType should be obtained from the OMG by + * sending mail to request@omg.org. In general the constant + * values that are allocated are defined in conjunction with + * the definition of the corresponding policy object. + * @return the constant value that corresponds to the type of + * the policy object. + */ + public int policy_type () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("_get_policy_type", true); + _in = _invoke (_out); + int __result = org.omg.CORBA.PolicyTypeHelper.read (_in); + return __result; + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + return policy_type (); + } finally { + _releaseReply (_in); + } + } // policy_type + + + /** Copies the policy object. The copy does not retain any + * relationships that the policy had with any domain or object. + * @return the copy of the policy object. + */ + public org.omg.CORBA.Policy copy () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("copy", true); + _in = _invoke (_out); + org.omg.CORBA.Policy __result = org.omg.CORBA.PolicyHelper.read (_in); + return __result; + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + return copy (); + } finally { + _releaseReply (_in); + } + } // copy + + + /** Destroys the policy object. It is the responsibility of + * the policy object to determine whether it can be destroyed. + */ + public void destroy () + { + org.omg.CORBA.portable.InputStream _in = null; + try { + org.omg.CORBA.portable.OutputStream _out = _request ("destroy", true); + _in = _invoke (_out); + } catch (org.omg.CORBA.portable.ApplicationException _ex) { + _in = _ex.getInputStream (); + String _id = _ex.getId (); + throw new org.omg.CORBA.MARSHAL (_id); + } catch (org.omg.CORBA.portable.RemarshalException _rm) { + destroy (); + } finally { + _releaseReply (_in); + } + } // destroy + + // Type-specific CORBA::Object operations + private static String[] __ids = { + "IDL:omg.org/CORBA/Policy:1.0"}; + + public String[] _ids () + { + return (String[])__ids.clone (); + } + + private void readObject (java.io.ObjectInputStream s) + { + try + { + String str = s.readUTF (); + org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init ().string_to_object (str); + org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate (); + _set_delegate (delegate); + } catch (java.io.IOException e) {} + } + + private void writeObject (java.io.ObjectOutputStream s) + { + try + { + String str = org.omg.CORBA.ORB.init ().object_to_string (this); + s.writeUTF (str); + } catch (java.io.IOException e) {} + } +} // class _PolicyStub diff --git a/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html b/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html new file mode 100644 index 0000000..d78aa74 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html @@ -0,0 +1,143 @@ +<!doctype html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html"> + <title>Official Specifications for CORBA support in Java[tm] SE 6</title> +</head> +<body bgcolor="#FFFFFF"> + +<h1> +Official Specifications for CORBA support in Java[tm] SE 6</h1> + +<h2> +Specification References</h2> +The specifications with which the Java[tm] Platform, Standard Edition (Java SE) v.1.6.0 + ORB complies are as follows. If these links do not take you to the referenced + specification, the OMG may have changed the URL, and you can link to <a +href="http://www.omg.org/">www.omg.org</a> to search for the correct specification. +<ul> +<li> +CORBA 2.3.1 (<a +href="http://www.omg.org/cgi-bin/doc?formal/99-10-07">formal/99-10-07</a>)</li> + +<li> +IDL to Java language mapping (<a +href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08">ptc/00-01-08</a>)</li> + +<li>Revised IDL to Java language mapping (<a +href="http://www.omg.org/cgi-bin/doc?ptc/00-11-03">ptc/00-11-03</a>)</li> + +<li> +Java to IDL language mapping (<a +href="http://www.omg.org/cgi-bin/doc?ptc/00-01-06">ptc/00-01-06</a>)</li> + +<li> +Interoperable Naming Service (<a +href="http://www.omg.org/cgi-bin/doc?ptc/00-08-07">ptc/00-08-07</a>)</li> + +<li> +Portable Interceptors (<a +href="http://www.omg.org/cgi-bin/doc?ptc/2001-03-04">ptc/2001-03-04</a>)</li> +</ul> +These are the only specifications referenced by this document. + + +<h2> +Supported Specification Details</h2> +Not all of the above specifications are currently implemented in the ORB +in Java[tm] SE 6. The precise list of supported sections is as follows: +<ul> +<li> +CORBA 2.3.1 chapters 1-3 and 6-9</li> + +<li>Revised IDL to Java language mapping, section 1.21.8.2, the <code>orb.properties</code> +file.</li> + +<li> +CORBA 2.3.1 chapter 4 with the following replacements from the Portable +Interceptors specification: + <ul> + <li>section 4.2.3.5 <code>destroy</code></li> + <li>section 4.5.2 <code>CodeFactory</code> and <code>PICurrent</code> are required</li> + <li>Section 4.5.3.4 as updated for <code>register_initial_reference</code></li> + </ul> +</li> + +<li> +CORBA 2.3.1 chapter 5 with the following update from the Portable Interceptors +specification: + <ul> + <li> + 5.5.2 <code>StringSeq</code> and <code>WStringSeq</code> are required. + This adds the following classes to <code>org.omg.CORBA</code>: + <ul> + <li><code>StringSeqHolder</code></li> + <li><code>StringSeqHelper</code></li> + <li><code>WStringSeqHolder</code></li> + <li><code>WStringSeqHelper</code></li> + </ul> + </li> + </ul> +</li> + +<li> +CORBA 2.3.1 sections 10.6.1 and 10.6.2 are supported for repository IDs.</li> + +<li> +CORBA 2.3.1 section 10.7 for <code>TypeCode</code> APIs.</li> + +<li> +CORBA 2.3.1 chapter 11, Portable Object Adapter (POA), +with the following updates from the Portable Interceptors specification: + <ul> + <li>Section 11.3.7 POAs must preserve all policies</li> + <li>Section 11.3.8.2 again states that POAs must preserve all policies</li> + <li>Section 11.3.8.26 <code>POA::id</code> is required.</li> + </ul> +</li> + +<li> +CORBA 2.3.1 chapters 13 and 15 define GIOP 1.0, 1.1, and 1.2. The Java SE 6 +ORB fully supports all versions of GIOP, with the exception that the bi-directional +GIOP feature defined in sections 15.8 and 15.9 is not supported.</li> + +<li> +All of the Interoperable Naming Service is supported.</li> + +<li> +Portable Interceptors section 13.8 (the new +<code>Coder</code>/<code>Decoder</code> interfaces) +and all of chapter 21 (the interceptor specification).</li> + +<li>Section 1.21.8 of the Revised IDL to Java Language +Mapping Specification (ptc/00-11-03) +has been changed from the version in the +IDL to Java Language Mapping Specification (ptc/00-01-08).</li> +</ul> + +<h2> +Tools</h2> + +<ul> +<li>The IDL to Java compiler (<code>idlj</code>) complies with: + <ul> + <li>CORBA 2.3.1 chapter 3 (IDL definition)</li> + <li>CORBA 2.3.1 chapters 5 and 6 (semantics of Value types)</li> + <li>CORBA 2.3.1 section 10.6.5 (pragmas)</li> + <li>The IDL to Java mapping specification</li> + <li>The Revised IDL to Java language mapping specification section 1.12.1 "local interfaces"</li> + </ul> +</li> + +<li>The Java to IDL compiler (the IIOP backend for <code>rmic</code>) complies with: + <ul> + <li>CORBA 2.3.1 chapters 5 and 6 (value types)</li> + <li>The Java to IDL language mapping. Note that this implicitly references + section 1.21 of the IDL to Java language mapping</li> + <li>IDL generated by the <code>-idl</code> flag complies with CORBA 2.3.1 chapter 3.</li> + </ul> +</li> +</ul> + +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html b/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html new file mode 100644 index 0000000..39aa884 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html @@ -0,0 +1,118 @@ +<!doctype html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html"> + <title>IDL-to-Java Generated Files</title> +</head> +<body bgcolor="#FFFFFF"> + +<H1>IDL-to-Java Generated Files</H1> + +<P>The files that are generated by the IDL-to-Java compiler, in accordance with +the <em><a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08"> +IDL-to-Java Language Mapping Specification</a></em>, +which is implemented in Java<sup><font size="-2">TM</font></sup> SE 6 +according the <a href="compliance.html">compliance</a> document. + + +<P>In general IDL names and identifiers are mapped to Java names +and identifiers with no change. Because of the nature of the Java language, +a single IDL construct may be mapped to several (differently named) Java constructs. +The additional names are constructed by appending a descriptive suffix. +For example, the IDL interface <code>foo</code> is mapped to the Java +interfaces <code>foo</code> and <code>fooOperations</code>, and additional +Java classes <code>fooHelper</code>, <code>fooHolder</code>, <code>fooPOA</code>, +and optionally <code>fooPOATie</code>. + + + +<P>The mapping in effect reserves the use of several names for its own purposes. These are: +<UL> +<LI>The Java class <a href="#helper"><code><type>Helper</code></a>, +where <code><type></code> is the name of an IDL defined type. +<LI>The Java class <a href="#holder"><code><type>Holder</code></a>, +where <code><type></code> +is the name of an IDL defined type (with certain exceptions such as <code>typedef</code> aliases). +<LI>The Java classes <code><basicJavaType>Holder</code>, where <code><basicJavaType></code> +is one of the Java primitive datatypes that is used by one of the IDL basic datatypes. +<LI>The Java classes <a href="#operations"><code><interface>Operations</code></a>, <code><interface>POA</code>, +and <code><interface>POATie</code>, where <code><interface></code> is the name of an IDL interface type. +<LI>The nested scope Java package name <code><interface>Package</code>, where <code><interface></code> +is the name of an IDL interface. +</UL> + + +<H2><a id="helper">Helper Files</a></H2> + +<P>Helper files supply several static methods needed to manipulate the type. +These include <code>Any</code> insert and extract operations for the type, +getting the repository id, getting the typecode, and reading +and writing the type from and to a stream. + +<P>The helper class for a mapped IDL interface or abstract interface also +include narrow operation(s). The static narrow method allows an <code>org.omg.CORBA.Object</code> +to be narrowed to the object reference of a more specific type. +The IDL exception <code>CORBA::BAD_PARAM</code> is thrown if the narrow fails because +the object reference does not support the requested type. A different system exception +is raised to indicate other kinds of errors. Trying to narrow +a null will always succeed with a return value of null. + +<H2><a id="holder">Holder Files</a></H2> + +<P>Support for out and inout parameter passing modes requires the use of additional holder classes. +These classes are available for all of the basic IDL datatypes in the <code>org.omg.CORBA</code> package +and are generated for all named user defined IDL types except those defined by typedefs. +(Note that in this context user defined includes types that are defined in OMG specifications +such as those for the Interface Repository, and other OMG services.) + +<P>Each holder class has a constructor from an instance, a default constructor, and has +a public instance member, <code>value</code> which is the typed value. The default constructor +sets the value field to the default value for the type as defined by the Java language: +false for boolean, 0 for numeric and char types, null for strings, null for object references. + +<P>To support portable stubs and skeletons, holder classes also implement +the <code>org.omg.CORBA.portable.Streamable</code> interface. + + +<H2><a id="operations">Operations Files</a></H2> + +<P>A non abstract IDL interface is mapped to two public Java interfaces: +a <em>signature</em> interface and an <em>operations</em> interface. +The signature interface, which extends <code>IDLEntity</code>, has the same +name as the IDL interface name and is used +as the signature type in method declarations +when interfaces of the specified type are used in other interfaces. +The operations interface has the same name as the IDL interface +with the suffix <code>Operations</code> +appended to the end and is used in the server-side mapping and as a mechanism +for providing optimized calls for collocated client and servers. + +<P>The Java operations interface contains the mapped operation signatures. +The Java signature interface extends the operations interface, +the (mapped) base <code>org.omg.CORBA.Object</code>, +as well as <code>org.omg.portable.IDLEntity</code>. +Methods can be invoked on the signature interface. Interface inheritance +expressed in IDL is reflected in both the Java signature +interface and operations interface hierarchies. + + +<H2><a id="stub">Stubs</a></H2> + +<P>For the mapping of a non-object-oriented language, there will be +a programming interface to the stubs for each interface type. Generally, the stubs +will present access to the OMG IDL-defined operations on an object in a way that is easy +for programmers to predict once they are familiar with OMG IDL and the language mapping +for the particular programming language. The stubs make calls on the rest of the ORB +using interfaces that are private to, and presumably optimized for, the particular ORB Core. +If more than one ORB is available, there may be different stubs +corresponding to the different ORBs. In this case, it is necessary for +the ORB and language mapping to cooperate to associate +the correct stubs with the particular object reference. + +<P>Object-oriented programming languages, such as Java, +C++, and Smalltalk, do not require stub interfaces. + +<BR><BR> + +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA/ir.idl b/src/java.corba/share/classes/org/omg/CORBA/ir.idl new file mode 100644 index 0000000..656d163 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/ir.idl @@ -0,0 +1,793 @@ +/* + * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * This file contains OMG IDL from CORBA V2.0, July 1995. + * It also contains the TypeCode creation APIs in CORBA::ORB + **/ + +#pragma prefix "omg.org" +//#pragma javaPackage org.omg + +module CORBA { + typedef string Identifier; + typedef string ScopedName; + typedef string RepositoryId; + + enum DefinitionKind { + dk_none, dk_all, + dk_Attribute, dk_Constant, dk_Exception, dk_Interface, + dk_Module, dk_Operation, dk_Typedef, + dk_Alias, dk_Struct, dk_Union, dk_Enum, + dk_Primitive, dk_String, dk_Sequence, dk_Array, + dk_Repository, + dk_Wstring, dk_Fixed, + dk_Value, dk_ValueBox, dk_ValueMember, // orbos 98-01-18: Objects By Value + dk_Native + }; + + + interface IRObject + /** + An IRObject IDL interface represents the most generic interface + from which all other Interface Repository interfaces are derived, + even the Repository itself. + */ + { + // read interface + readonly attribute DefinitionKind def_kind; + + // write interface + void destroy (); + }; + + + + typedef string VersionSpec; + + interface Contained; + interface Repository; + interface Container; + + interface Contained : IRObject + /** + The Contained Interface is inherited by all Interface Repository + interfaces that are contained by other objects. + */ + { + // read/write interface + + attribute RepositoryId id; + attribute Identifier name; + attribute VersionSpec version; + + // read interface + + readonly attribute Container defined_in; + readonly attribute ScopedName absolute_name; + readonly attribute Repository containing_repository; + + struct Description { + DefinitionKind kind; + any value; + }; + + Description describe (); + + // write interface + + void move ( + in Container new_container, + in Identifier new_name, + in VersionSpec new_version + ); + }; + + + interface ModuleDef; + interface ConstantDef; + interface IDLType; + interface StructDef; + interface UnionDef; + interface EnumDef; + interface AliasDef; + interface InterfaceDef; + interface ExceptionDef; + interface ValueDef; // orbos 98-01-18: Objects By Value + interface ValueMemberDef; // orbos 98-01-18: Objects By Value + interface ValueBoxDef; // orbos 98-01-18: Objects By Value + interface NativeDef; + + + typedef sequence <InterfaceDef> InterfaceDefSeq; + + + typedef sequence <Contained> ContainedSeq; + + struct StructMember { + Identifier name; + TypeCode type; + IDLType type_def; + }; + typedef sequence <StructMember> StructMemberSeq; + + struct UnionMember { + Identifier name; + any label; + TypeCode type; + IDLType type_def; + }; + typedef sequence <UnionMember> UnionMemberSeq; + + + typedef sequence <Identifier> EnumMemberSeq; + + // orbos 98-01-18: Objects By Value -- begin + typedef short Visibility; + const Visibility PRIVATE_MEMBER = 0; + const Visibility PUBLIC_MEMBER = 1; + + struct ValueMember { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + IDLType type_def; + Visibility access; + }; + typedef sequence <ValueMember> ValueMemberSeq; + + struct Initializer { + StructMemberSeq members; + }; + typedef sequence <Initializer> InitializerSeq; + + typedef sequence <ValueDef> ValueDefSeq; + + // orbos 98-01-18: Objects By Value -- end + + + interface Container : IRObject + /** + The Container interface is used to form a containment hierarchy + in the Interface Repository. A Container can contain any number + of objects derived from the Contained interface. + */ + { + // read interface + + Contained lookup ( in ScopedName search_name); + + ContainedSeq contents ( + in DefinitionKind limit_type, + in boolean exclude_inherited + ); + + ContainedSeq lookup_name ( + in Identifier search_name, + in long levels_to_search, + in DefinitionKind limit_type, + in boolean exclude_inherited + ); + + struct Description { + Contained contained_object; + DefinitionKind kind; + any value; + }; + + typedef sequence<Description> DescriptionSeq; + + DescriptionSeq describe_contents ( + in DefinitionKind limit_type, + in boolean exclude_inherited, + in long max_returned_objs + ); + + // write interface + + ModuleDef create_module ( + in RepositoryId id, + in Identifier name, + in VersionSpec version + ); + + ConstantDef create_constant ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType type, + in any value + ); + + StructDef create_struct ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in StructMemberSeq members + ); + + UnionDef create_union ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType discriminator_type, + in UnionMemberSeq members + ); + + EnumDef create_enum ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in EnumMemberSeq members + ); + + AliasDef create_alias ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType original_type + ); + + ExceptionDef create_exception ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in StructMemberSeq members + ); + + + InterfaceDef create_interface ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in boolean is_abstract, + in InterfaceDefSeq base_interfaces + ); + + // orbos 98-01-18: Objects By Value + ValueDef create_value( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in boolean is_custom, + in boolean is_abstract, + in octet flags, // must be 0 + in ValueDef base_value, + in boolean has_safe_base, + in ValueDefSeq abstract_base_values, + in InterfaceDefSeq supported_interfaces, + in InitializerSeq initializers + ); + + // orbos 98-01-18: Objects By Value + ValueBoxDef create_value_box( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType original_type_def + ); + + NativeDef create_native( + in RepositoryId id, + in Identifier name, + in VersionSpec version + ); + + }; + + + + interface IDLType : IRObject + /** + The IDLType interface is an abstract interface inherited by all + IR objects that represent the OMG IDL types. It provides access + to the TypeCode describing the type, and is used in defining the + other interfaces wherever definitions of IDLType must be referenced. + */ + { + readonly attribute TypeCode type; + }; + + + + interface PrimitiveDef; + interface StringDef; + interface SequenceDef; + interface ArrayDef; + + enum PrimitiveKind { + pk_null, pk_void, pk_short, pk_long, pk_ushort, pk_ulong, + pk_float, pk_double, pk_boolean, pk_char, pk_octet, + pk_any, pk_TypeCode, pk_Principal, pk_string, pk_objref + }; + + interface Repository : Container + /** + Repository is an interface that provides global access to the + Interface Repository. Repository objects can contain constants, + typedefs, exceptions, interfaces, and modules. + */ + { + // read interface + + Contained lookup_id (in RepositoryId search_id); + + PrimitiveDef get_primitive (in PrimitiveKind kind); + + // write interface + + StringDef create_string (in unsigned long bound); + + SequenceDef create_sequence ( + in unsigned long bound, + in IDLType element_type + ); + + ArrayDef create_array ( + in unsigned long length, + in IDLType element_type + ); + }; + + + interface ModuleDef : Container, Contained + /** + A ModuleDef can contain constants, typedefs, exceptions, interfaces, + and other module objects. + */ + { + }; + + struct ModuleDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + }; + + + interface ConstantDef : Contained + /** + A ConstantDef object defines a named constant. + */ + { + readonly attribute TypeCode type; + attribute IDLType type_def; + attribute any value; + }; + + struct ConstantDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + any value; + }; + + + interface TypedefDef : Contained, IDLType + /** + TypedefDef is an abstract interface used as a base interface for + all named non-object types(structures, unions, enumerations, + aliases). The TypedefDef interface is not inherited by the definition + objects for the primitive or anonymous types. + */ + { + }; + + struct TypeDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + }; + + + interface StructDef : TypedefDef, Container + /** + A StructDef represents an OMG IDL structure definition. + */ + { + attribute StructMemberSeq members; + }; + + + interface UnionDef : TypedefDef, Container + /** + A UnionDef represents an OMG IDL union definition. + */ + { + readonly attribute TypeCode discriminator_type; + attribute IDLType discriminator_type_def; + attribute UnionMemberSeq members; + }; + + + interface EnumDef : TypedefDef + /** + A EnumDef represents an OMG IDL enum definition. + */ + { + attribute EnumMemberSeq members; + }; + + + interface AliasDef : TypedefDef + /** + An AliasDef represents an OMG IDL typedef that aliases other + definition. + */ + { + attribute IDLType original_type_def; + }; + + + interface PrimitiveDef: IDLType + /** + A PrimitiveDef represents one of the IDL primitive types. As + primitive types are unnamed, this interface is not derived from + TypedefDef or Contained. + */ + { + readonly attribute PrimitiveKind kind; + }; + + + interface StringDef : IDLType + /** + A StringDef represents an OMG IDL string type. As string + types are anonymous, this interface is not derived from TypedefDef + or Contained. + */ + { + attribute unsigned long bound; + }; + + + interface SequenceDef : IDLType + /** + A SequenceDef represents an OMG IDL sequence type. As sequence + types are anonymous, this interface is not derived from TypedefDef + or Contained. + */ + { + attribute unsigned long bound; + readonly attribute TypeCode element_type; + attribute IDLType element_type_def; + }; + + interface ArrayDef : IDLType + /** + An ArrayDef represents an OMG IDL array type. As array + types are anonymous, this interface is not derived from TypedefDef + or Contained. + */ + { + attribute unsigned long length; + readonly attribute TypeCode element_type; + attribute IDLType element_type_def; + }; + + + interface ExceptionDef : Contained, Container + /** + An ExceptionDef represents an exception definition. + */ + { + readonly attribute TypeCode type; + attribute StructMemberSeq members; + }; + struct ExceptionDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + }; + + + + enum AttributeMode {ATTR_NORMAL, ATTR_READONLY}; + + interface AttributeDef : Contained + /** + An AttributeDef represents the information that defines an + attribute of an interface. + */ + { + readonly attribute TypeCode type; + attribute IDLType type_def; + attribute AttributeMode mode; + }; + + struct AttributeDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode type; + AttributeMode mode; + }; + + + + enum OperationMode {OP_NORMAL, OP_ONEWAY}; + + enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT}; + struct ParameterDescription { + Identifier name; + TypeCode type; + IDLType type_def; + ParameterMode mode; + }; + typedef sequence <ParameterDescription> ParDescriptionSeq; + + typedef Identifier ContextIdentifier; + typedef sequence <ContextIdentifier> ContextIdSeq; + + typedef sequence <ExceptionDef> ExceptionDefSeq; + typedef sequence <ExceptionDescription> ExcDescriptionSeq; + + interface OperationDef : Contained + /** + An OperationDef represents the information that defines an + operation of an interface. + */ + { + readonly attribute TypeCode result; + attribute IDLType result_def; + attribute ParDescriptionSeq params; + attribute OperationMode mode; + attribute ContextIdSeq contexts; + attribute ExceptionDefSeq exceptions; + }; + + struct OperationDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + TypeCode result; + OperationMode mode; + ContextIdSeq contexts; + ParDescriptionSeq parameters; + ExcDescriptionSeq exceptions; + }; + + + + typedef sequence <RepositoryId> RepositoryIdSeq; + typedef sequence <OperationDescription> OpDescriptionSeq; + typedef sequence <AttributeDescription> AttrDescriptionSeq; + + interface InterfaceDef : Container, Contained, IDLType + /** + An InterfaceDef object represents an interface definition. It can + contains constants, typedefs, exceptions, operations, and + attributes. + */ + { + // read/write interface + + attribute InterfaceDefSeq base_interfaces; + attribute boolean is_abstract; + + // read interface + + boolean is_a (in RepositoryId interface_id); + + struct FullInterfaceDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + boolean is_abstract; + OpDescriptionSeq operations; + AttrDescriptionSeq attributes; + RepositoryIdSeq base_interfaces; + TypeCode type; + }; + + FullInterfaceDescription describe_interface(); + + // write interface + + AttributeDef create_attribute ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType type, + in AttributeMode mode + ); + + OperationDef create_operation ( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType result, + in OperationMode mode, + in ParDescriptionSeq params, + in ExceptionDefSeq exceptions, + in ContextIdSeq contexts + ); + }; + + struct InterfaceDescription { + Identifier name; + RepositoryId id; + RepositoryId defined_in; + VersionSpec version; + RepositoryIdSeq base_interfaces; + }; + + + // orbos 98-01-18: Objects By Value -- begin + + interface ValueMemberDef : Contained + + /** A <code>ValueMemberDef</code> object represents the public + and private data member definition of a <code>Value</code> type + */ + + { + readonly attribute TypeCode type; + attribute IDLType type_def; + attribute Visibility access; + }; + + interface ValueDef : Container, Contained, IDLType + /** + A ValueDef object represents the definition of the + <code>Value</code> object used to pass the object state + between hosts + */ + + { + // read/write interface + attribute InterfaceDefSeq supported_interfaces; + attribute InitializerSeq initializers; + attribute ValueDef base_value; + attribute ValueDefSeq abstract_base_values; + attribute boolean is_abstract; + attribute boolean is_custom; + attribute octet flags; // always 0 + attribute boolean has_safe_base; + + // read interface + boolean is_a(in RepositoryId value_id); + + struct FullValueDescription { + Identifier name; + RepositoryId id; + boolean is_abstract; + boolean is_custom; + octet flags; // always 0 + RepositoryId defined_in; + VersionSpec version; + OpDescriptionSeq operations; + AttrDescriptionSeq attributes; + ValueMemberSeq members; + InitializerSeq initializers; + RepositoryIdSeq supported_interfaces; + RepositoryIdSeq abstract_base_values; + boolean has_safe_base; + RepositoryId base_value; + TypeCode type; + }; + + FullValueDescription describe_value(); + + // write interface + + ValueMemberDef create_value_member( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType type_def, + in Visibility access + ); + + AttributeDef create_attribute( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType type, + in AttributeMode mode + ); + + OperationDef create_operation( + in RepositoryId id, + in Identifier name, + in VersionSpec version, + in IDLType result, + in OperationMode mode, + in ParDescriptionSeq params, + in ExceptionDefSeq exceptions, + in ContextIdSeq contexts + ); + }; + struct ValueDescription { + Identifier name; + RepositoryId id; + boolean is_abstract; + boolean is_custom; + octet flags; // always 0 + RepositoryId defined_in; + VersionSpec version; + RepositoryIdSeq supported_interfaces; + RepositoryIdSeq abstract_base_values; + boolean has_safe_base; + RepositoryId base_value; + }; + + interface ValueBoxDef : IDLType + + /** ValueBoxDef is an interface that reresents a value type with + a single data member inside its state section and no + inheritance or methods. For example, when transmitting a + string or sequence as an actual parameter on an interface + operation or as a data member of a value type that is an + actual parameter, it may be important to preserve any sharing + of the string or sequence within the object graph being + transmitted. Because current IDL data types do not preserve + referential integrity in this way, this requirement is + conveniently handled by using a value type. Value types also + support the transmission of nulls (as a distinguished value), + whereas IDL data types such as string and sequence (which are + mapped to empty strings and sequences) do not. The Java to IDL + mapping requires both preservation of referential integrity + and transmission of nulls. Because it would be cumbersome to + require the full IDL syntax for a value type for this specific + usage, this shorthand notation is introduced to cover this use + of value types for simple containment of a single data member. + */ + + { + attribute IDLType original_type_def; + }; + + // orbos 98-01-18: Objects By Value -- end + + enum TCKind { + tk_null, tk_void, + tk_short, tk_long, tk_ushort, tk_ulong, + tk_float, tk_double, tk_boolean, tk_char, + tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, + tk_struct, tk_union, tk_enum, tk_string, + tk_sequence, tk_array, tk_alias, tk_except, + tk_longlong, tk_ulonglong, tk_longdouble, + tk_wchar, tk_wstring, tk_fixed, + tk_value, tk_value_box, + tk_native, + tk_abstract_interface + }; + + interface NativeDef : TypedefDef { + }; +}; diff --git a/src/java.corba/share/classes/org/omg/CORBA/orb.idl b/src/java.corba/share/classes/org/omg/CORBA/orb.idl new file mode 100644 index 0000000..bd6cb07 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/orb.idl @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +// IDL not generated by rmic, do not edit +// These are all in IDL module CORBA +// The Java classes are in the package org.omg.CORBA +// See ValueType Semantics:Standard Value Box Definitions (5.3) in CORBA 2.3 spec + +#ifndef __org_omg_CORBA__ +#define __org_omg_CORBA__ + +#pragma prefix "omg.org" + +module CORBA{ + + valuetype StringValue string; + valuetype WStringValue wstring; + +}; + +#include "ir.idl" + +#pragma prefix "" + +#endif diff --git a/src/java.corba/share/classes/org/omg/CORBA/package.html b/src/java.corba/share/classes/org/omg/CORBA/package.html new file mode 100644 index 0000000..d8eb990 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/package.html @@ -0,0 +1,982 @@ +<!doctype html> +<HTML> +<HEAD> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> + <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en]C-gatewaynet (WinNT; U) +[Netscape]"> + <TITLE>package</TITLE> +<!-- +/* +* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> +</HEAD> +<BODY> +Provides the mapping of the OMG CORBA APIs to the Java™ +programming language, including the class <code>ORB</code>, which is implemented +so that a programmer can use it as a fully-functional Object Request Broker +(ORB). + +<P>For a precise list of supported sections of official CORBA specifications with which +the Java[TM] Platform, Standard Edition 6 complies, see <A +HREF="doc-files/compliance.html"><em>Official Specifications for CORBA support in +Java[TM] SE 6</em></A>. + + +<H1>General Information</H1> +The information in this section is information relevant to someone who +compiles Interface Definition Language (IDL) files and uses the +ORB to write clients and servers. + +<P>The classes and interfaces described in this section can be put into +four groups: <code>ORB classes</code>, Exceptions, <code>Helper</code> classes, +and <code>Holder</code> classes. + +<H2> +The <code>ORB</code> Class</H2> + +<P>An ORB handles (or brokers) method invocations between a client and +the method's implementation on a server. Because the client and server +may be anywhere on a network, and because the invocation and implementation +may be written in different programming languages, an ORB does a great +deal of work behind the scenes to accomplish this communication. + +<P>Most of what an ORB does is completely transparent to the user, and a major +portion of the <code>CORBA</code> package consists of classes used by the ORB +behind the scenes. The result is that most programmers will use only a +small part of this package directly. In fact, most programmers will use +only a few methods from the <code>ORB</code> class, some exceptions, and +occasionally, +a holder class. +<H3> +<code>ORB</code> Methods</H3> + +<P>Before an application can enter the CORBA environment, it must first: +<UL> +<LI>Be initialized into the ORB and possibly the object adapter (POA) environments. +<LI>Get references to ORB object (for use in future ORB operations) +and perhaps other objects (including the root POA or some Object Adapter objects). +</UL> +<P>The following operations are provided to initialize applications and obtain + the appropriate object references: + <UL> + <LI>Operations providing access to the ORB, which are discussed in this + section. + <LI>Operations providing access to Object Adapters, Interface Repository, + Naming Service, and other Object Services. These operations are described + in <a href="#adv"><em>Other Classes</em></a>. + </UL> + <P> +When an application requires a CORBA environment it needs a mechanism to +get an ORB object reference and possibly an OA object reference +(such as the root POA). This serves two purposes. First, it initializes +an application into the ORB and OA environments. Second, it returns the +ORB object reference and the OA object reference to the application +for use in future ORB and OA operations. + +<P>In order to obtain an ORB object reference, applications call +the <code>ORB.init</code> operation. The parameters to the call can comprise an +identifier for the ORB for which the object reference is required, + and an arg_list, which is used to allow environment-specific data to be + passed into the call. + +<P>These are the <code>ORB</code> methods + that provide access to the ORB: +<UL> +<LI> +<code><b>init</b>()</code> + +<LI> +<code><b>init</b>(String [] args, Properties props)</code> + +<LI> +<code><b>init</b>(Applet app, Properties props)</code> +</UL> + +<P>Using the <code>init()</code> method without parameters initiates +a singleton ORB, which can only +give typecode creation <code>any</code>s needed in code generated +in Helper classes by <code>idlj</code>. + +<P>Applications require a portable means by which to obtain their +initial object references. References are required for the root +POA, POA Current, Interface Repository, and various Object Services +instances. The functionality required by the application is similar + to that provided by the Naming Service. However, the OMG does not + want to mandate that the Naming Service be made available to all + applications in order that they may be portably initialized. + Consequently, the operations shown in this section provide a + simplified, local version of the Naming Service that applications + can use to obtain a small, defined set of object references which + are essential to its operation. Because only a small well-defined + set of objects are expected with this mechanism, the naming context + can be flattened to be a single-level name space. This simplification + results in only two operations being defined to achieve the functionality + required. + +<P>Initial references are obtained via two operations provided in +the ORB object interface, providing facilities to list and +resolve initial object references. These are: +<UL> +<LI> +<code><b>resolve_initial_references</b>(String name)</code> +<LI> +<code><b>list_initial_services</b>()</code> +<LI> +<code><b>register_initial_reference</b>(String id, org.omg.CORBA.Object obj)</code> +</UL> + +<P>An example that uses some of these methods is {@extLink idl_getting_started Getting Started with Java IDL}. + +<H2> +Exceptions</H2> +Exceptions in Java IDL are similar to those in any code written in the +Java programming language. If a method is defined to throw an exception, +then any code using that method must have a <code>try</code>/<code>catch</code> +block and handle that exception when it is thrown. + +<P>The documentation on {@extLink jidlexception Java IDL exceptions } +has more information and explains the difference between +system exceptions and user-defined exceptions. + +<P>The following is a list of the system exceptions (which are unchecked +exceptions inheriting through <code><a href="SystemException.html"> +org.omg.CORBA.SystemException</a></code> from +<code>java.lang.RuntimeException</code>) that are defined in the package +<code>org.omg.CORBA</code>: +<PRE><code> + BAD_CONTEXT + BAD_INV_ORDER + BAD_OPERATION + BAD_PARAM + BAD_TYPECODE + COMM_FAILURE + DATA_CONVERSION + FREE_MEM + IMP_LIMIT + INITIALIZE + INTERNAL + INTF_REPOS + INVALID_TRANSACTION + INV_FLAG + INV_IDENT + INV_OBJREF + INV_POLICY + MARSHAL + <a href="#NO_IMPLEMENT">NO_IMPLEMENT</a> + NO_MEMORY + NO_PERMISSION + NO_RESOURCES + NO_RESPONSE + OBJECT_NOT_EXIST + OBJ_ADAPTER + PERSIST_STORE + TRANSACTION_REQUIRED + TRANSACTION_ROLLEDBACK + TRANSIENT + UNKNOWN +</code></PRE> +<P> +The following is a list of user-defined exceptions defined in the package +<code>org.omg.CORBA</code>. +<PRE><code> + Bounds + UnknownUserException + WrongTransaction + PolicyError +</code></PRE> + + <H2>Subpackages</H2> +There are some packages inside the <code>CORBA</code> package with +"Package" as part of their names. These packages are generally quite small +because all they do is provide exceptions or classes for use by interfaces +and classes in the <code>CORBA</code> package. + +<P>For example, the package <code><a href="TypeCodePackage/package-summary.html"> +org.omg.CORBA.TypeCodePackage</a></code> contains +two exceptions thrown by methods in the class <code>TypeCode</code>. These +exceptions are: +<UL> +<LI> +<code>BadKind</code> + +<LI> +<code>Bounds</code> +</UL> +The package <code><a href="ORBPackage/package-summary.html"> +org.omg.CORBA.ORBPackage</a></code> contains two exceptions: +<UL> +<LI> +<code>InvalidName</code> + +<LI> +<code>InconsistentTypeCode</code> +</UL> + +<P>Another package that is a subpackage of <code>CORBA</code> is the +<code><a href="portable/package-summary.html">portable</a></code> +package. It provides a set of ORB APIs that makes it +possible for code generated by one vendor's IDL compiler to run +on another vendor's ORB. + + + + +<H2> +Holder classes</H2> + + +<P>Support for out and inout parameter passing modes requires the use of +additional <em><a href="doc-files/generatedfiles.html#holder">holder +classes</a></em>. Because the Java programming language does not support out or +inout parameters, holder classes are needed as a means of passing a parameter +that can be modified. To support portable stubs and skeletons, +holder classes also implement the +<code><a href="portable/Streamable.html">org.omg.CORBA.portable.Streamable</a></code> +interface. + + <P>Holder classes are named by appending "Holder" to the name of the type. + The name of the type refers to its name in the Java programming language. For + example, a holder class for the interface named <code>Account</code> + in the Java programming + language would be named <code>AccountHolder</code>. + + +<P>Holder classes are available for all of the basic IDL + datatypes in the <code>org.omg.CORBA</code> package. So, for example, + there are already-defined classes for <code>LongHolder</code>, <code>ShortHolder</code>, + <code>FloatHolder</code>, and so on. Classes are also generated for + all named user-defined IDL types except those defined by <code>typedefs</code>. + (Note that in this context user defined includes types that are + defined in OMG specifications such as those for the Interface + Repository, and other OMG services.) + + +<P>Each holder class has: +<UL> +<LI>a constructor from an instance +<LI>a default constructor +<LI>a public instance member, <code>value</code> which is the typed value. +<LI>a method for reading an input stream and assigning the contents to the +type's <code>value</code> field +<LI>a method for writing the value of the <code>value</code> field to an output stream +<LI>a method for getting the typecode of the type +</UL> + +<P>The default constructor sets the value field to the default value for the +type as defined by the Java language: +<UL> +<LI><code>false</code> for boolean +<LI><code>0</code> for numeric and char types +<LI><code>null</code> for strings and object references +</UL> + + + +<P> +As an example, if the interface <code>Account</code>, defined in OMG IDL, +were mapped to the Java programming language, the following holder class +would be generated: +<PRE> +public final class AccountHolder implements + org.omg.CORBA.portable.Streamable +{ + // field that holds an Account object + public Account value = null; + + // default constructor + public AccountHolder () + { + } + + // creates a new AccountHolder from initialValue + public AccountHolder (Account initialValue) + { + value = initialValue; + } + + // reads the contents of i and assigns the contents to value + public void _read (org.omg.CORBA.portable.InputStream i) + { + value = AccountHelper.read (i); + } + + // writes value to o + public void _write (org.omg.CORBA.portable.OutputStream o) + { + AccountHelper.write (o, value); + } + + // returns the typecode for Account + public org.omg.CORBA.TypeCode _type () + { + return AccountHelper.type (); + } + +} +</PRE> + +<P>For more information on Holder classes, see Chapter 1.4, <em>Mapping for +Basic Types</em> in the <a href="http://www.omg.org/cgi-bin/doc?ptc/00-01-08"> +<em>OMG IDL to Java Language Mapping</em></a>. The Holder classes defined +in the package <code>org.omg.CORBA</code> are: +<PRE><code> + AnyHolder + AnySeqHolder + BooleanHolder + BooleanSeqHolder + ByteHolder + CharHolder + CharSeqHolder + CurrentHolder + DoubleHolder + DoubleSeqHolder + FixedHolder + FloatHolder + FloatSeqHolder + IntHolder + LongHolder + LongLongSeqHolder + LongSeqHolder + ObjectHolder + OctetSeqHolder + ParameterModeHolder + PolicyErrorHolder + PolicyListHolder + PrincipalHolder + ServiceInformationHolder + ShortHolder + ShortSeqHolder + StringHolder + StringSeqHolder + TypeCodeHolder + ULongLongSeqHolder + ULongSeqHolder + UnknownUserExceptionHolder + UShortSeqHolder + ValueBaseHolder + WCharSeqHolder + WrongTransactionHolder + WStringSeqHolder +</code></PRE> + +<h2>Helper Classes </h2> +<P>Helper files supply several static methods needed to manipulate the type. + These include: + <UL> + <LI><code>Any</code> insert and extract operations for the type + <LI>getting the repository id + <LI>getting the typecode + <LI>reading and writing the type from and to a stream + <LI>implement the <code>ValueHelper</code> interface (if it is a user-defined + value type) + </UL> + +<P>The helper class for a mapped IDL interface or abstract interface +also include narrow operation(s). The static narrow method allows +an <code>org.omg.CORBA.Object</code> to be narrowed to the object reference +of a more specific type. The IDL exception <code>CORBA.BAD_PARAM</code> +is thrown if the narrow fails because the object reference does not +support the requested type. A different system exception is raised +to indicate other kinds of errors. Trying to narrow a <code>null</code> will always +succeed with a return value of <code>null</code>. +Generally, the only helper method an application programmer uses is +the <code>narrow</code> method. The other methods are normally used behind +the scenes and are transparent to the programmer. + +<P>Helper classes +fall into two broad categories, <a href="#value">helpers for value types</a> and +<a href="#basic">helpers for non value types</a>. Because all of the helper +classes in one category +provide the same methods, one generic explanation of each +category of helper classes is presented here. + +<P> +When OMG IDL is mapped to the Java programming language, +a "helper" class is generated for each user-defined type. +This generated class will have the name of the user-defined type with +the suffix <code>Helper</code> appended. For example, if the +interface <code>Account</code> is defined in OMG IDL, the +<code>idlj</code> compiler will automatically generate a class named +<code>AccountHelper</code>. The <code>AccountHelper</code> class +will contain the static methods needed for manipulating instances of the type, +in this case, <code>Account</code> objects. + + +<a id="narrow"></a> +<h3>The <code>narrow</code> Method</h3> +When an object is the return value for a method, it is returned in the +form of a generic object, either an <code>org.omg.CORBA.Object</code> object +or a <code>java.lang.Object</code> object. This object must be cast to its +more specific type before it can be operated on. For example, an +<code>Account</code> object will be returned as a generic object and must +be narrowed to an <code>Account</code> object so that <code>Account</code> +methods may be called on it. +<P> +The <code>narrow</code> method has two forms, one that takes an +<code>org.omg.CORBA.Object</code> object and one that takes a +<code>java.lang.Object</code> object. Whether the interface is abstract or +not determines which <code>narrow</code> method its helper class will provide. +The helper class for an interface +that is not abstract will have a <code>narrow</code> method that takes a CORBA +object, whereas the <code>narrow</code> method for an interface that is abstract +will take an object in the Java programming language. The helper class for a +non-abstract interface that has at least one abstract base interface will provide +both versions of the <code>narrow</code> method. +<P>The {@extLink idl_guides Hello World tutorial} +uses a <code>narrow</code> method that looks like this: +<PRE> + // create and initialize the ORB + ORB orb = ORB.init(args, null); + + // get the root naming context + org.omg.CORBA.Object objRef = + orb.resolve_initial_references("NameService"); + // Use NamingContextExt instead of NamingContext. This is + // part of latest Inter-Operable naming Service. + NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); + + // resolve the Object Reference in Naming + String name = "Hello"; + helloImpl = HelloHelper.narrow(ncRef.resolve_str(name)); +</PRE> + +<a id="basic"></a> +<h3>Example of a Basic Helper Class</h3> +A basic helper class, for purposes of this explanation, is one with +the methods that are provided by every helper class, plus a <code>narrow</code> +method if the type defined in OMG IDL maps to an interface in the Java +programming language. Types that are not value types will have a basic +helper class generated for them. +<P> +For example, assuming that the interface <code>Account</code> is not a +value type IDL type and is also not an abstract interface and has no +abstract base interfaces, its <code>AccountHelper</code> class will look +like this: +<PRE> +abstract public class AccountHelper +{ + private static String _id = "IDL:Account:1.0"; + + // inserts an Account object into an Any object + public static void insert (org.omg.CORBA.Any a, Account that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + // extracts an Account object from an Any object + public static Account extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + + private static org.omg.CORBA.TypeCode __typeCode = null; + // gets the typecode for this type + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (AccountHelper.id (), "Account"); + } + return __typeCode; + } + + // gets the repository id for this type + public static String id () + { + return _id; + } + + // reads an Account object from an input stream + public static Account read (org.omg.CORBA.portable.InputStream istream) + { + return narrow (istream.read_Object (_AccountStub.class)); + } + + // writes an Account object to an outputstream + public static void write (org.omg.CORBA.portable.OutputStream ostream, Account value) + { + ostream.write_Object ((org.omg.CORBA.Object) value); + } + + // converts (narrows) an Object to an Account object + public static Account narrow (org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof Account) + return (Account)obj; + else if (!obj._is_a (id ())) + throw new org.omg.CORBA.BAD_PARAM (); + else + { + org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate (); + _AccountStub stub = new _AccountStub (); + stub._set_delegate(delegate); + return stub; + } + } + +} +</PRE> + +<a id="value"></a> +<h3>Value Type Helper Classes</h3> +A helper class for a value type includes different renderings of +the same methods generated for non-value type methods. The main difference + is that value types are types that can be +passed by value as parameters or return values of a method, which means that +they must be serializable. +<P>Assuming that <code>Address</code> is a value type, the +<code>AddressHelper</code> class will look like this: +<pre> +abstract public class AddressHelper +{ + private static String _id = "IDL:Address:1.0"; + + // same as for non-value type + public static void insert (org.omg.CORBA.Any a, Address that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + // same as for non-value type + public static Address extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + private static boolean __active = false; + + // getting the typecode for the type + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + synchronized (org.omg.CORBA.TypeCode.class) + { + if (__typeCode == null) + { + if (__active) + { + return org.omg.CORBA.ORB.init().create_recursive_tc ( _id ); + } + __active = true; + org.omg.CORBA.ValueMember[] _members0 = new org.omg.CORBA.ValueMember[0]; + org.omg.CORBA.TypeCode _tcOf_members0 = null; + __typeCode = org.omg.CORBA.ORB.init ().create_value_tc (_id, "Address", org.omg.CORBA.VM_NONE.value, null, _members0); + __active = false; + } + } + } + return __typeCode; + } + + // same as for non-value type + public static String id () + { + return _id; + } + + // reads a serializable instance of Address from the given input stream + public static Address read (org.omg.CORBA.portable.InputStream istream) + { + return (Address)((org.omg.CORBA_2_3.portable.InputStream) istream).read_value (id ()); + } + + // writes a serializable instance of Address to the given output stream + public static void write (org.omg.CORBA.portable.OutputStream ostream, Address value) + { + ((org.omg.CORBA_2_3.portable.OutputStream) ostream).write_value (value, id ()); + } + + +} +</pre> + +<P>The Helper classes defined in the package <code>org.omg.CORBA</code> are: +<PRE><code> + AnySeqHelper + BooleanSeqHelper + CharSeqHelper + CompletionStatusHelper + CurrentHelper + DefinitionKindHelper + DoubleSeqHelper + FieldNameHelper + FloatSeqHelper + IdentifierHelper + IDLTypeHelper + LongLongSeqHelper + LongSeqHelper + NameValuePairHelper + ObjectHelper + OctetSeqHelper + ParameterModeHelper + PolicyErrorCodeHelper + PolicyErrorHelper + PolicyHelper + PolicyListHelper + PolicyTypeHelper + RepositoryIdHelper + ServiceDetailHelper + ServiceInformationHelper + SetOverrideTypeHelper + ShortSeqHelper + StringSeqHelper + StringValueHelper + StructMemberHelper + ULongLongSeqHelper + ULongSeqHelper + UnionMemberHelper + UnknownUserExceptionHelper + UShortSeqHelper + ValueBaseHelper + ValueMemberHelper + VersionSpecHelper + VisibilityHelper + WCharSeqHelper + WrongTransactionHelper + WStringSeqHelper + WStringValueHelper +</code></PRE> +<a id="adv"></a> +<H1> +Other Classes</H1> +The other classes and interfaces in the <code>CORBA</code> package, which are +used behind the scenes, can be put into four groups. Three of the groups +are used with requests in some capacity, and the fourth group, concerning +the Interface Repository, is a category by itself. +<H2> +Classes Created by an ORB</H2> +The first group contains classes that are created by an ORB and contain +information used in request operations. +<UL> +<LI> +<code>TCKind</code> -- indicates the kind (datatype) for a <code>TypeCode</code> +object + +<LI> +<code>TypeCode</code> -- indicates a datatype and possibly other information + +<LI> +<code>Any</code> -- contains a value and its typecode + +<LI> +<code>NamedValue</code> -- contains a name, an <code>Any</code> object, and an +argument mode flag. <code>NamedValue</code> objects contain information about +method arguments, method return values, or a context. + +<LI> +<code>ContextList</code> -- a list of strings that describe the contexts that +need to be resolved and sent with an invocation + +<LI> +<code>ExceptionList</code> -- a list of <code>TypeCode</code>s for exceptions that +may be thrown by a method + +<LI> +<code>Environment</code> -- a container for the exception thrown during a method +invocation + +<LI> +<code>Context</code> -- a list of <code>NamedValue</code> objects used to pass +auxiliary information from client to server + +<LI> +<code>NVList</code> -- a list of <code>NamedValue</code> objects, used to pass +arguments or get results +</UL> + +<H2> +Classes That Deal with Requests</H2> +The second group of classes deals with requests: +<UL> +<LI> +<code>Object</code> -- the base class for all CORBA object references + +<LI> +<code>Request</code> -- the main class in the DII, which contains methods for +adding arguments to the request, for accessing information about the method +being invoked (the method name, its arguments, exceptions it throws, and +so on), and for making invocations on the request + +<LI> +<code>DynamicImplementation</code> -- the base class for server implementations +using the DSI. It has the method <code>invoke</code>, which is used by an +implementation +of this class to determine the state of a <code>ServerRequest</code> object +and to set its result or exception + +<LI> +<code>ServerRequest</code> -- captures the explicit state of a request for +the Dynamic Skeleton Interface +</UL> + +<H2> +Interfaces That Serve as Constants</H2> +The third group contains interfaces that serve as constants. The IDL-to-Java +mapping mandates that IDL enums are mapped to a Java class with the enumerated +values represented as public static final fields in that class (e.g. +DefinitionKind). +On the other hand IDL constants defined outside of an IDL interface are +mapped to a Java interface for each constant. + +<P>This is why several interfaces in the <code>org.omg.CORBA</code> package +consist of a single field, <code>value</code>, which is a <code>short</code>. This +field is a constant used for such things as an error code or value modifier. +For example, the <code>value</code> field of the interface <code>BAD_POLICY</code> +is one of the possible reasons for the exception <code>PolicyError</code> to +be thrown. To specify this error code, you would use <code>BAD_POLICY.value</code>. + +<P>The exception <code>PolicyError</code> uses the <code>value</code> field of +the following interfaces as its possible error codes. +<UL> +<LI> +<code>BAD_POLICY</code> + +<LI> +<code>BAD_POLICY_TYPE</code> + +<LI> +<code>BAD_POLICY_VALUE</code> + +<LI> +<code>UNSUPPORTED_POLICY</code> + +<LI> +<code>UNSUPPORTED_POLICY_VALUE</code> +</UL> +The method <code>TypeCode.type_modifier</code> returns the <code>value</code> field +of one of the following interfaces. The <code>VM</code> in the names of these +interfaces stands for "value modifier." +<UL> +<LI> +<code>VM_NONE</code> + +<LI> +<code>VM_ABSTRACT</code> + +<LI> +<code>VM_CUSTOM</code> + +<LI> +<code>VM_TRUNCATABLE</code> +</UL> +The following constants are returned by a <code>ValueMember</code> object's +access method to denote the visibility of the <code>ValueMember</code> object. +<UL> +<LI> +<code>PRIVATE_MEMBER</code> + +<LI> +<code>PUBLIC_MEMBER</code> +</UL> +These flags, used in <code>NamedValue</code> objects or as parameters to methods, +are defined in the following interfaces: +<UL> +<LI> +<code>ARG_IN</code> + +<LI> +<code>ARG_INOUT</code> + +<LI> +<code>ARG_OUT</code> + +<LI> +<code>CTX_RESTRICT_SCOPE</code> +</UL> + +<H2> +Interface Repository Interfaces and Classes</H2> +A fourth group contains the Interface Repository interfaces and classes, +which are generated by the <code>idlj</code> compiler from the OMG IDL +interface <code>ir.idl</code>. The purpose of the Interface Repository is to +identify the interfaces stored in it so that they can be accessed by an +ORB. Each module, type, interface, attribute, operation, parameter, exception, +constant, and so on is described completely by the Interface Repository +API. + +<P>An ORB does not require that there be an interface repository, and Java +IDL does not include one. Even though this release does not include an +implementation of an interface repository, the following IR classes and +interfaces have been included for the purpose of creating typecodes (see +create_value_tc, create_struct_tc, create_union_tc and create_exception_tc +methods in interface org.omg.CORBA.ORB): +<BR> +<UL> +<LI> +IRObject + +<LI> +IDLType + +<LI> +DefinitionKind + +<LI> +StructMember + +<LI> +UnionMember + +<LI> +ValueMember +</UL> +<!-- End Page Data --> +<HR> +<H1> +Related Documentation</H1> +For overviews, guides, and a tutorial, please see: +<UL> +<LI> {@extLink idl_guides Java IDL tutorial page}.</LI> +<LI> {@extLink rmi_iiop_guides RMI-IIOP developer's guide}.</LI> +</UL> + + + + +<P><A id="unimpl"></A> +<H1> +CORBA Features Not Implemented in Java IDL</H1> + +<P>Some of the API included in <code>org.omg</code> subpackages is provided for +conformance with the current OMG CORBA specification but is not implemented +in Sun's release of the JDK™. This enables +other JDK licensees to provide implementations of this API in standard +extensions and products. + +<P><A id="NO_IMPLEMENT"></A> +<h2>Features That Throw NO_IMPLEMENT</h2> + +<P>Some of the API included in <code>org.omg</code> subpackages throw +<code>NO_IMPLEMENT</code> exceptions for various reasons. Among these reasons +are: + <UL> + <LI>In some cases, for example <code>LocalObject</code>, the complete + implementation according to the specification indicates that + these API should throw <code>NO_IMPLEMENT</code>. + + <LI>In most cases, for example methods in <code>ORB.java</code>, + methods that throw + <code>NO_IMPLEMENT</code> are actually implemented in subclasses + elsewhere in the ORB code. + + <LI>In some cases, for example <code>_get_interface_def()</code> + and <code>_get_interface</code>, API are really not yet implemented. + </UL> + + + + +<H2> +General Summary of Features or API Not Implemented in This Release:</H2> + +<UL> +<LI> +Interface Repository. An Interface Repository is not required for normal +operation of Java IDL. + +<LI> +Java IDL does not support <code>long double</code>. + + +<LI> +Policies (<code><a href="Policy.html">org.omg.CORBA.Policy</a></code>) +and methods for getting them are not implemented. + +<LI> +Domain managers (<code><a href="DomainManager.html">org.omg.CORBA.DomainManager</a></code>) and methods for +getting them are not implemented. + +<LI> +Service Information <code><a href="ServiceInformation.html">org.omg.CORBA.ServiceInformation</a></code> +and ORB method +<code>public boolean get_service_information(short service_type, ServiceInformationHolder service_info)</code> +are not implemented. + +<LI>ORB methods for supporting single-threading +(<code>perform_work</code>, <code>work_pending</code>) are not implemented. + +<LI>IDL contexts. +</UL> + +<HR> +<H2> +Specific List of Unimplemented Features in Package <code>org.omg.CORBA</code></H2> + + +<H3> +Unimplemented Methods in package <code>org.omg.CORBA</code>:</H3> + +<UL> +<LI> +<code>ORB</code> + +<UL> +<LI> +<code>public org.omg.CORBA.Policy create_policy(int type, org.omg.CORBA.Any val)</code> + + + +<LI> +<code>public void perform_work()</code> + +<LI> +<code>public boolean work_pending()</code> + +<LI> +<code>public org.omg.CORBA.Current get_current()</code> + +<LI> +<code>create_operation_list</code> + +<LI> +<code>get_default_context</code> + +<LI> +<code>get_service_information</code> + +<LI> +obsolete <code>DynAnys</code> (deprecated in favor of <code>DynamicAny</code> package) + + +</UL> + + + +</UL> +@since JDK1.2 +@serial exclude +</BODY> +</HTML> diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java new file mode 100644 index 0000000..f9cf860 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ApplicationException.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.portable; + +/** +This class is used for reporting application level exceptions between ORBs and stubs. +*/ + +public class ApplicationException extends Exception { + /** + * Constructs an ApplicationException from the CORBA repository ID of the exception + * and an input stream from which the exception data can be read as its parameters. + * @param id the repository id of the user exception + * @param ins the stream which contains the user exception data + */ + public ApplicationException(String id, + InputStream ins) { + this.id = id; + this.ins = ins; + } + + /** + * Returns the CORBA repository ID of the exception + * without removing it from the exceptions input stream. + * @return The CORBA repository ID of this exception + */ + public String getId() { + return id; + } + + /** + * Returns the input stream from which the exception data can be read as its parameters. + * @return The stream which contains the user exception data + */ + public InputStream getInputStream() { + return ins; + } + + private String id; + private InputStream ins; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java b/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java new file mode 100644 index 0000000..71ad68e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA.portable; +import java.io.Serializable; + +public interface BoxedValueHelper { + Serializable read_value(InputStream is); + void write_value(OutputStream os, Serializable value); + String get_id(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java b/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java new file mode 100644 index 0000000..9e785ba --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/CustomValue.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * Defines the base interface for all custom value types + * generated from IDL. + * + * All value types implement ValueBase either directly + * or indirectly by implementing either the StreamableValue + * or CustomValue interface. + * @author OMG + */ + +package org.omg.CORBA.portable; + +import org.omg.CORBA.CustomMarshal; +/** + * An extension of <code>ValueBase</code> that is implemented by custom value + * types. + */ +public interface CustomValue extends ValueBase, CustomMarshal { + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java b/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java new file mode 100644 index 0000000..a0375fb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/Delegate.java @@ -0,0 +1,408 @@ +/* + * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +import org.omg.CORBA.Request; +import org.omg.CORBA.NamedValue; +import org.omg.CORBA.NVList; +import org.omg.CORBA.Context; +import org.omg.CORBA.ContextList; +import org.omg.CORBA.ExceptionList; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.SystemException; + +/** + * Specifies a portable API for ORB-vendor-specific + * implementation of the org.omg.CORBA.Object methods. + * + * Each stub (proxy) contains a delegate + * object, to which all org.omg.CORBA.Object methods are forwarded. + * This allows a stub generated by one vendor's ORB to work with the delegate + * from another vendor's ORB. + * + * @see org.omg.CORBA.Object + * @author OMG + */ + +public abstract class Delegate { + + /** + * Return an InterfaceDef for the object reference provided. + * @param self The object reference whose InterfaceDef needs to be returned + * @return the InterfaceDef + */ + public abstract org.omg.CORBA.Object get_interface_def( + org.omg.CORBA.Object self); + + /** + * Returns a duplicate of the object reference provided. + * @param obj The object reference whose duplicate needs to be returned + * @return the duplicate object reference + */ + public abstract org.omg.CORBA.Object duplicate(org.omg.CORBA.Object obj); + + /** + * Releases resources associated with the object reference provided. + * @param obj The object reference whose resources need to be released + */ + public abstract void release(org.omg.CORBA.Object obj); + + /** + * Checks if the object reference is an instance of the given interface. + * @param obj The object reference to be checked. + * @param repository_id The repository identifier of the interface + * to check against. + * @return true if the object reference supports the interface + */ + public abstract boolean is_a(org.omg.CORBA.Object obj, String repository_id); + + /** + * Determines whether the server object for the object reference has been + * destroyed. + * @param obj The object reference which delegated to this delegate. + * @return true if the ORB knows authoritatively that the server object does + * not exist, false otherwise + */ + public abstract boolean non_existent(org.omg.CORBA.Object obj); + + /** + * Determines if the two object references are equivalent. + * @param obj The object reference which delegated to this delegate. + * @param other The object reference to check equivalence against. + * @return true if the objects are CORBA-equivalent. + */ + public abstract boolean is_equivalent(org.omg.CORBA.Object obj, + org.omg.CORBA.Object other); + + /** + * Returns an ORB-internal identifier (hashcode) for this object reference. + * @param obj The object reference which delegated to this delegate. + * @param max specifies an upper bound on the hash value returned by + * the ORB. + * @return ORB-internal hash identifier for object reference + */ + public abstract int hash(org.omg.CORBA.Object obj, int max); + + /** + * Creates a Request instance for use in the Dynamic Invocation Interface. + * @param obj The object reference which delegated to this delegate. + * @param operation The name of the operation to be invoked using the + * Request instance. + * @return the created Request instance + */ + public abstract Request request(org.omg.CORBA.Object obj, String operation); + + /** + * Creates a Request instance for use in the Dynamic Invocation Interface. + * + * @param obj The object reference which delegated to this delegate. + * @param ctx The context to be used. + * @param operation The name of the operation to be + * invoked. + * @param arg_list The arguments to the operation in the + * form of an NVList. + * @param result A container for the result as a NamedValue. + * @return The created Request object. + * + */ + public abstract Request create_request(org.omg.CORBA.Object obj, + Context ctx, + String operation, + NVList arg_list, + NamedValue result); + + /** + * Creates a Request instance for use in the Dynamic Invocation Interface. + * + * @param obj The object reference which delegated to this delegate. + * @param ctx The context to be used. + * @param operation The name of the operation to be + * invoked. + * @param arg_list The arguments to the operation in the + * form of an NVList. + * @param result A container for the result as a NamedValue. + * @param exclist A list of possible exceptions the + * operation can throw. + * @param ctxlist A list of context strings that need + * to be resolved and sent with the + * Request. + * @return The created Request object. + */ + public abstract Request create_request(org.omg.CORBA.Object obj, + Context ctx, + String operation, + NVList arg_list, + NamedValue result, + ExceptionList exclist, + ContextList ctxlist); + + /** + * Provides a reference to the orb associated with its parameter. + * + * @param obj the object reference which delegated to this delegate. + * @return the associated orb. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.ORB orb(org.omg.CORBA.Object obj) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Returns the <code>Policy</code> object of the specified type + * which applies to this object. + * + * @param self The object reference which delegated to this delegate. + * @param policy_type The type of policy to be obtained. + * @return A <code>Policy</code> object of the type specified by + * the policy_type parameter. + * @exception org.omg.CORBA.BAD_PARAM raised when the value of policy type + * is not valid either because the specified type is not supported by this + * ORB or because a policy object of that type is not associated with this + * Object. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.Policy get_policy(org.omg.CORBA.Object self, + int policy_type) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Retrieves the <code>DomainManagers</code> of this object. + * This allows administration services (and applications) to retrieve the + * domain managers, and hence the security and other policies applicable + * to individual objects that are members of the domain. + * + * @param self The object reference which delegated to this delegate. + * @return The list of immediately enclosing domain managers of this object. + * At least one domain manager is always returned in the list since by + * default each object is associated with at least one domain manager at + * creation. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.DomainManager[] get_domain_managers( + org.omg.CORBA.Object + self) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Associates the policies passed in + * with a newly created object reference that it returns. Only certain + * policies that pertain to the invocation of an operation at the client + * end can be overridden using this operation. Attempts to override any + * other policy will result in the raising of the CORBA::NO_PERMISSION + * exception. + * + * @param self The object reference which delegated to this delegate. + * @param policies A sequence of references to Policy objects. + * @param set_add Indicates whether these policies should be added + * onto any otheroverrides that already exist (ADD_OVERRIDE) in + * the object reference, or they should be added to a clean + * override free object reference (SET_OVERRIDE). + * @return A new object reference with the new policies associated with it. + * + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.Object set_policy_override(org.omg.CORBA.Object self, + org.omg.CORBA.Policy[] policies, + org.omg.CORBA.SetOverrideType set_add) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * Returns true if this object is implemented by a local servant. + * + * @param self The object reference which delegated to this delegate. + * @return true only if the servant incarnating this object is located in + * this Java VM. Return false if the servant is not local or the ORB + * does not support local stubs for this particular servant. The default + * behavior of is_local() is to return false. + */ + public boolean is_local(org.omg.CORBA.Object self) { + return false; + } + + /** + * Returns a Java reference to the servant which should be used for this + * request. servant_preinvoke() is invoked by a local stub. + * If a ServantObject object is returned, then its servant field + * has been set to an object of the expected type (Note: the object may + * or may not be the actual servant instance). The local stub may cast + * the servant field to the expected type, and then invoke the operation + * directly. The ServantRequest object is valid for only one invocation, + * and cannot be used for more than one invocation. + * + * @param self The object reference which delegated to this delegate. + * + * @param operation a string containing the operation name. + * The operation name corresponds to the operation name as it would be + * encoded in a GIOP request. + * + * @param expectedType a Class object representing the expected type of the servant. + * The expected type is the Class object associated with the operations + * class of the stub's interface (e.g. A stub for an interface Foo, + * would pass the Class object for the FooOperations interface). + * + * @return a ServantObject object. + * The method may return a null value if it does not wish to support + * this optimization (e.g. due to security, transactions, etc). + * The method must return null if the servant is not of the expected type. + */ + public ServantObject servant_preinvoke(org.omg.CORBA.Object self, + String operation, + Class expectedType) { + return null; + } + + /** + * servant_postinvoke() is invoked by the local stub after the operation + * has been invoked on the local servant. + * This method must be called if servant_preinvoke() returned a non-null + * value, even if an exception was thrown by the servant's method. + * For this reason, the call to servant_postinvoke() should be placed + * in a Java finally clause. + * + * @param self The object reference which delegated to this delegate. + * + * @param servant the instance of the ServantObject returned from + * the servant_preinvoke() method. + */ + public void servant_postinvoke(org.omg.CORBA.Object self, + ServantObject servant) { + } + + /** + * request is called by a stub to obtain an OutputStream for + * marshaling arguments. The stub must supply the operation name, + * and indicate if a response is expected (i.e is this a oneway + * call). + * + * @param self The object reference which delegated to this delegate. + * @param operation a string containing the operation name. + * The operation name corresponds to the operation name as it would be + * encoded in a GIOP request. + * @param responseExpected false if the operation is a one way operation, + * and true otherwise. + * @return OutputStream the OutputStream into which request arguments + * can be marshaled. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public OutputStream request(org.omg.CORBA.Object self, + String operation, + boolean responseExpected) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * invoke is called by a stub to invoke an operation. The stub provides an + * OutputStream that was previously returned by a request() + * call. invoke returns an InputStream which contains the + * marshaled reply. If an exception occurs, invoke may throw an + * ApplicationException object which contains an InputStream from + * which the user exception state may be unmarshaled. + * + * @param self The object reference which delegated to this delegate. + * @param output the OutputStream which contains marshaled arguments + * @return input the InputStream from which reply parameters can be + * unmarshaled. + * @throws ApplicationException thrown when implementation throws + * (upon invocation) an exception defined as part of its remote method + * definition. + * @throws RemarshalException thrown when remarshalling fails. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public InputStream invoke(org.omg.CORBA.Object self, + OutputStream output) + throws ApplicationException, RemarshalException { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * releaseReply may optionally be called by a stub to release a + * reply stream back to the ORB when the unmarshaling has + * completed. The stub passes the InputStream returned by + * invoke() or ApplicationException.getInputStream(). A null + * value may also be passed to releaseReply, in which case the + * method is a noop. + * + * @param self The object reference which delegated to this delegate. + * @param input the InputStream returned from invoke(). + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public void releaseReply(org.omg.CORBA.Object self, + InputStream input) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Provides the implementation to override the toString() method + * of the delegating CORBA object. + * + * @param self the object reference that delegated to this delegate + * @return a <code>String</code> object that represents the object + * reference that delegated to this <code>Delegate</code> + * object + */ + + public String toString(org.omg.CORBA.Object self) { + return self.getClass().getName() + ":" + this.toString(); + } + + /** + * Provides the implementation to override the hashCode() method + * of the delegating CORBA object. + * + * @param self the object reference that delegated to this delegate + * @return an <code>int</code> that represents the hashcode for the + * object reference that delegated to this <code>Delegate</code> + * object + */ + public int hashCode(org.omg.CORBA.Object self) { + return System.identityHashCode(self); + } + + /** + * Provides the implementation to override the equals(java.lang.Object obj) + * method of the delegating CORBA object. + * + * @param self the object reference that delegated to this delegate + * @param obj the <code>Object</code> with which to compare + * @return <code>true</code> if <code>obj</code> equals <code>self</code>; + * <code>false</code> otherwise + */ + public boolean equals(org.omg.CORBA.Object self, java.lang.Object obj) { + return (self == obj); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java b/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java new file mode 100644 index 0000000..867fdeb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/IDLEntity.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.portable; + +/** + * An interface with no members whose only purpose is to serve as a marker + * indicating that an implementing class is a + * Java value type from IDL that has a corresponding Helper class. + * RMI IIOP serialization looks for such a marker to perform + * marshalling/unmarshalling. + **/ +public interface IDLEntity extends java.io.Serializable { + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java new file mode 100644 index 0000000..cdf73ac --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/IndirectionException.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA.portable; + +import org.omg.CORBA.SystemException; +/** + * The Indirection exception is a Java specific system exception. + * It is thrown when the ORB's input stream is called to demarshal + * a value that is encoded as an indirection that is in the process + * of being demarshaled. This can occur when the ORB input stream + * calls the ValueHandler to demarshal an RMI value whose state + * contains a recursive reference to itself. Because the top-level + * ValueHandler.read_value() call has not yet returned a value, + * the ORB input stream's indirection table does not contain an entry + * for an object with the stream offset specified by the indirection + * tag. The stream offset is returned in the exception's offset field. + * @see org.omg.CORBA_2_3.portable.InputStream + * @see org.omg.CORBA_2_3.portable.OutputStream + */ +public class IndirectionException extends SystemException { + + /** + * Points to the stream's offset. + */ + public int offset; + + /** + * Creates an IndirectionException with the right offset value. + * The stream offset is returned in the exception's offset field. + * This exception is constructed and thrown during reading + * recursively defined values off of a stream. + * + * @param offset the stream offset where recursion is detected. + */ + public IndirectionException(int offset){ + super("", 0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); + this.offset = offset; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java new file mode 100644 index 0000000..e03578e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/InputStream.java @@ -0,0 +1,320 @@ +/* + * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.Principal; +import org.omg.CORBA.Any; + +/** + * InputStream is the Java API for reading IDL types + * from CDR marshal streams. These methods are used by the ORB to + * unmarshal IDL types as well as to extract IDL types out of Anys. + * The <code>_array</code> versions of the methods can be directly + * used to read sequences and arrays of IDL types. + * + * @since JDK1.2 + */ + +public abstract class InputStream extends java.io.InputStream +{ + /** + * Reads a boolean value from this input stream. + * + * @return the <code>boolean</code> value read from this input stream + */ + public abstract boolean read_boolean(); + /** + * Reads a char value from this input stream. + * + * @return the <code>char</code> value read from this input stream + */ + public abstract char read_char(); + /** + * Reads a wide char value from this input stream. + * + * @return the <code>char</code> value read from this input stream + */ + public abstract char read_wchar(); + /** + * Reads an octet (that is, a byte) value from this input stream. + * + * @return the <code>byte</code> value read from this input stream + */ + public abstract byte read_octet(); + /** + * Reads a short value from this input stream. + * + * @return the <code>short</code> value read from this input stream + */ + public abstract short read_short(); + /** + * Reads a unsigned short value from this input stream. + * + * @return the <code>short</code> value read from this input stream + */ + public abstract short read_ushort(); + /** + * Reads a CORBA long (that is, Java int) value from this input stream. + * + * @return the <code>int</code> value read from this input stream + */ + public abstract int read_long(); + /** + * Reads an unsigned CORBA long (that is, Java int) value from this input +stream. + * + * @return the <code>int</code> value read from this input stream + */ + public abstract int read_ulong(); + /** + * Reads a CORBA longlong (that is, Java long) value from this input stream. + * + * @return the <code>long</code> value read from this input stream + */ + public abstract long read_longlong(); + /** + * Reads a CORBA unsigned longlong (that is, Java long) value from this input +stream. + * + * @return the <code>long</code> value read from this input stream + */ + public abstract long read_ulonglong(); + /** + * Reads a float value from this input stream. + * + * @return the <code>float</code> value read from this input stream + */ + public abstract float read_float(); + /** + * Reads a double value from this input stream. + * + * @return the <code>double</code> value read from this input stream + */ + public abstract double read_double(); + /** + * Reads a string value from this input stream. + * + * @return the <code>String</code> value read from this input stream + */ + public abstract String read_string(); + /** + * Reads a wide string value from this input stream. + * + * @return the <code>String</code> value read from this input stream + */ + public abstract String read_wstring(); + + /** + * Reads an array of booleans from this input stream. + * @param value returned array of booleans. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_boolean_array(boolean[] value, int offset, int +length); + /** + * Reads an array of chars from this input stream. + * @param value returned array of chars. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_char_array(char[] value, int offset, int +length); + /** + * Reads an array of wide chars from this input stream. + * @param value returned array of wide chars. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_wchar_array(char[] value, int offset, int +length); + /** + * Reads an array of octets (that is, bytes) from this input stream. + * @param value returned array of octets (that is, bytes). + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_octet_array(byte[] value, int offset, int +length); + /** + * Reads an array of shorts from this input stream. + * @param value returned array of shorts. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_short_array(short[] value, int offset, int +length); + /** + * Reads an array of unsigned shorts from this input stream. + * @param value returned array of shorts. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_ushort_array(short[] value, int offset, int +length); + /** + * Reads an array of CORBA longs (that is, Java ints) from this input stream. + * @param value returned array of CORBA longs (that is, Java ints). + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_long_array(int[] value, int offset, int +length); + /** + * Reads an array of unsigned CORBA longs (that is, Java ints) from this input +stream. + * @param value returned array of CORBA longs (that is, Java ints). + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_ulong_array(int[] value, int offset, int +length); + /** + * Reads an array of CORBA longlongs (that is, Java longs) from this input +stream. + * @param value returned array of CORBA longs (that is, Java longs). + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_longlong_array(long[] value, int offset, int +length); + /** + * Reads an array of unsigned CORBA longlongs (that is, Java longs) from this +input stream. + * @param value returned array of CORBA longs (that is, Java longs). + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_ulonglong_array(long[] value, int offset, int +length); + /** + * Reads an array of floats from this input stream. + * @param value returned array of floats. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_float_array(float[] value, int offset, int +length); + /** + * Reads an array of doubles from this input stream. + * @param value returned array of doubles. + * @param offset offset on the stream. + * @param length length of buffer to read. + */ + public abstract void read_double_array(double[] value, int offset, int +length); + + /** + * Reads a CORBA object from this input stream. + * + * @return the <code>Object</code> instance read from this input stream. + */ + public abstract org.omg.CORBA.Object read_Object(); + /** + * Reads a <code>TypeCode</code> from this input stream. + * + * @return the <code>TypeCode</code> instance read from this input stream. + */ + public abstract TypeCode read_TypeCode(); + /** + * Reads an Any from this input stream. + * + * @return the <code>Any</code> instance read from this input stream. + */ + public abstract Any read_any(); + + /** + * Returns principal for invocation. + * @return Principal for invocation. + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public Principal read_Principal() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + + /** + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public int read() throws java.io.IOException { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Reads a BigDecimal number. + * @return a java.math.BigDecimal number + */ + public java.math.BigDecimal read_fixed() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Reads a CORBA context from the stream. + * @return a CORBA context + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.Context read_Context() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + /* + * The following methods were added by orbos/98-04-03: Java to IDL + * Mapping. These are used by RMI over IIOP. + */ + + /** + * Unmarshals an object and returns a CORBA Object, + * which is an instance of the class passed as its argument. + * This class is the stub class of the expected type. + * + * @param clz The Class object for the stub class which + * corresponds to the type that is statistically expected, or + * the Class object for the RMI/IDL interface type that + * is statistically expected. + * @return an Object instance of clz read from this stream + * + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.Object read_Object(java.lang.Class + clz) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Returns the ORB that created this InputStream. + * + * @return the <code>ORB</code> object that created this stream + * + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.ORB orb() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java b/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java new file mode 100644 index 0000000..b626a5c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/InvokeHandler.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +/** +This interface provides a dispatching mechanism for an incoming call. +It is invoked by the ORB to dispatch a request to a servant. +*/ + +public interface InvokeHandler { + /** + * Invoked by the ORB to dispatch a request to the servant. + * + * ORB passes the method name, an InputStream containing the + * marshalled arguments, and a ResponseHandler which the servant + * uses to construct a proper reply. + * + * Only CORBA SystemException may be thrown by this method. + * + * The method must return an OutputStream created by the + * ResponseHandler which contains the marshalled reply. + * + * A servant must not retain a reference to the ResponseHandler + * beyond the lifetime of a method invocation. + * + * Servant behaviour is defined as follows: + * <p>1. Determine correct method, and unmarshal parameters from + * InputStream. + * <p>2. Invoke method implementation. + * <p>3. If no user exception, create a normal reply using + * ResponseHandler. + * <p>4. If user exception occurred, create exception reply using + * ResponseHandler. + * <p>5. Marshal reply into OutputStream returned by + * ResponseHandler. + * <p>6. Return OutputStream to ORB. + * + * @param method The method name. + * @param input The <code>InputStream</code> containing the marshalled arguments. + * @param handler The <code>ResponseHandler</code> which the servant uses + * to construct a proper reply + * @return The <code>OutputStream</code> created by the + * ResponseHandler which contains the marshalled reply + * @throws SystemException is thrown when invocation fails due to a CORBA system exception. + */ + + OutputStream _invoke(String method, InputStream input, + ResponseHandler handler) + throws org.omg.CORBA.SystemException; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java new file mode 100644 index 0000000..3cd515d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ObjectImpl.java @@ -0,0 +1,534 @@ +/* + * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +import org.omg.CORBA.Request; +import org.omg.CORBA.NamedValue; +import org.omg.CORBA.NVList; +import org.omg.CORBA.ExceptionList; +import org.omg.CORBA.ContextList; +import org.omg.CORBA.Context; +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.BAD_OPERATION; +import org.omg.CORBA.SystemException; + + +/** + * The common base class for all stub classes; provides default implementations + * of the <code>org.omg.CORBA.Object</code> methods. All method implementations are + * forwarded to a <code>Delegate</code> object stored in the <code>ObjectImpl</code> + * instance. <code>ObjectImpl</code> allows for portable stubs because the + * <code>Delegate</code> can be implemented by a different vendor-specific ORB. + */ + +abstract public class ObjectImpl implements org.omg.CORBA.Object +{ + + /** + * The field that stores the <code>Delegate</code> instance for + * this <code>ObjectImpl</code> object. This <code>Delegate</code> + * instance can be implemented by a vendor-specific ORB. Stub classes, + * which are derived from this <code>ObjectImpl</code> class, can be + * portable because they delegate all of the methods called on them to this + * <code>Delegate</code> object. + */ + private transient Delegate __delegate; + + + /** + * Retrieves the reference to the vendor-specific <code>Delegate</code> + * object to which this <code>ObjectImpl</code> object delegates all + * methods invoked on it. + * + * @return the Delegate contained in this ObjectImpl instance + * @throws BAD_OPERATION if the delegate has not been set + * @see #_set_delegate + */ + public Delegate _get_delegate() { + if (__delegate == null) + throw new BAD_OPERATION("The delegate has not been set!"); + return __delegate; + } + + + /** + * Sets the Delegate for this <code>ObjectImpl</code> instance to the given + * <code>Delegate</code> object. All method invocations on this + * <code>ObjectImpl</code> object will be forwarded to this delegate. + * + * @param delegate the <code>Delegate</code> instance to which + * all method calls on this <code>ObjectImpl</code> object + * will be delegated; may be implemented by a third-party ORB + * @see #_get_delegate + */ + public void _set_delegate(Delegate delegate) { + __delegate = delegate; + } + + /** + * Retrieves a string array containing the repository identifiers + * supported by this <code>ObjectImpl</code> object. For example, + * for a stub, this method returns information about all the + * interfaces supported by the stub. + * + * @return the array of all repository identifiers supported by this + * <code>ObjectImpl</code> instance + */ + public abstract String[] _ids(); + + + /** + * Returns a duplicate of this <code>ObjectImpl</code> object. + * + * @return an <code>orb.omg.CORBA.Object</code> object that is + * a duplicate of this object + */ + public org.omg.CORBA.Object _duplicate() { + return _get_delegate().duplicate(this); + } + + /** + * Releases the resources associated with this <code>ObjectImpl</code> object. + */ + public void _release() { + _get_delegate().release(this); + } + + /** + * Checks whether the object identified by the given repository + * identifier is an <code>ObjectImpl</code> object. + * + * @param repository_id a <code>String</code> object with the repository + * identifier to check + * @return <code>true</code> if the object identified by the given + * repository id is an instance of <code>ObjectImpl</code>; + * <code>false</code> otherwise + */ + public boolean _is_a(String repository_id) { + return _get_delegate().is_a(this, repository_id); + } + + /** + * Checks whether the the given <code>ObjectImpl</code> object is + * equivalent to this <code>ObjectImpl</code> object. + * + * @param that an instance of <code>ObjectImpl</code> to compare with + * this <code>ObjectImpl</code> object + * @return <code>true</code> if the given object is equivalent + * to this <code>ObjectImpl</code> object; + * <code>false</code> otherwise + */ + public boolean _is_equivalent(org.omg.CORBA.Object that) { + return _get_delegate().is_equivalent(this, that); + } + + /** + * Checks whether the server object for this <code>ObjectImpl</code> + * object has been destroyed. + * + * @return <code>true</code> if the ORB knows authoritatively that the + * server object does not exist; <code>false</code> otherwise + */ + public boolean _non_existent() { + return _get_delegate().non_existent(this); + } + + /** + * Retrieves the hash code that serves as an ORB-internal identifier for + * this <code>ObjectImpl</code> object. + * + * @param maximum an <code>int</code> indicating the upper bound on the hash + * value returned by the ORB + * @return an <code>int</code> representing the hash code for this + * <code>ObjectImpl</code> object + */ + public int _hash(int maximum) { + return _get_delegate().hash(this, maximum); + } + + /** + * Creates a <code>Request</code> object containing the given method + * that can be used with the Dynamic Invocation Interface. + * + * @param operation the method to be invoked by the new <code>Request</code> + * object + * @return a new <code>Request</code> object initialized with the + * given method + */ + public Request _request(String operation) { + return _get_delegate().request(this, operation); + } + + /** + * Creates a <code>Request</code> object that contains the given context, + * method, argument list, and container for the result. + * + * @param ctx the Context for the request + * @param operation the method that the new <code>Request</code> + * object will invoke + * @param arg_list the arguments for the method; an <code>NVList</code> + * in which each argument is a <code>NamedValue</code> object + * @param result a <code>NamedValue</code> object to be used for + * returning the result of executing the request's method + * @return a new <code>Request</code> object initialized with the + * given context, method, argument list, and container for the + * return value + */ + public Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result) { + return _get_delegate().create_request(this, + ctx, + operation, + arg_list, + result); + } + + /** + * Creates a <code>Request</code> object that contains the given context, + * method, argument list, container for the result, exceptions, and + * list of property names to be used in resolving the context strings. + * This <code>Request</code> object is for use in the Dynamic + * Invocation Interface. + * + * @param ctx the <code>Context</code> object that contains the + * context strings that must be resolved before they are + * sent along with the request + * @param operation the method that the new <code>Request</code> + * object will invoke + * @param arg_list the arguments for the method; an <code>NVList</code> + * in which each argument is a <code>NamedValue</code> object + * @param result a <code>NamedValue</code> object to be used for + * returning the result of executing the request's method + * @param exceptions a list of the exceptions that the given method + * throws + * @param contexts a list of the properties that are needed to + * resolve the contexts in <i>ctx</i>; the strings in + * <i>contexts</i> are used as arguments to the method + * <code>Context.get_values</code>, + * which returns the value associated with the given property + * @return a new <code>Request</code> object initialized with the + * given context strings to resolve, method, argument list, + * container for the result, exceptions, and list of property + * names to be used in resolving the context strings + */ + public Request _create_request(Context ctx, + String operation, + NVList arg_list, + NamedValue result, + ExceptionList exceptions, + ContextList contexts) { + return _get_delegate().create_request(this, + ctx, + operation, + arg_list, + result, + exceptions, + contexts); + } + + /** + * Retrieves the interface definition for this <code>ObjectImpl</code> + * object. + * + * @return the <code>org.omg.CORBA.Object</code> instance that is the + * interface definition for this <code>ObjectImpl</code> object + */ + public org.omg.CORBA.Object _get_interface_def() + { + // First try to call the delegate implementation class's + // "Object get_interface_def(..)" method (will work for JDK1.2 ORBs). + // Else call the delegate implementation class's + // "InterfaceDef get_interface(..)" method using reflection + // (will work for pre-JDK1.2 ORBs). + + org.omg.CORBA.portable.Delegate delegate = _get_delegate(); + try { + // If the ORB's delegate class does not implement + // "Object get_interface_def(..)", this will call + // get_interface_def(..) on portable.Delegate. + return delegate.get_interface_def(this); + } + catch( org.omg.CORBA.NO_IMPLEMENT ex ) { + // Call "InterfaceDef get_interface(..)" method using reflection. + try { + Class[] argc = { org.omg.CORBA.Object.class }; + java.lang.reflect.Method meth = + delegate.getClass().getMethod("get_interface", argc); + Object[] argx = { this }; + return (org.omg.CORBA.Object)meth.invoke(delegate, argx); + } + catch( java.lang.reflect.InvocationTargetException exs ) { + Throwable t = exs.getTargetException(); + if (t instanceof Error) { + throw (Error) t; + } + else if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } + else { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } catch( RuntimeException rex ) { + throw rex; + } catch( Exception exr ) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } + } + + /** + * Returns a reference to the ORB associated with this object and + * its delegate. This is the <code>ORB</code> object that created + * the delegate. + * + * @return the <code>ORB</code> instance that created the + * <code>Delegate</code> object contained in this + * <code>ObjectImpl</code> object + */ + public org.omg.CORBA.ORB _orb() { + return _get_delegate().orb(this); + } + + + /** + * Retrieves the <code>Policy</code> object for this + * <code>ObjectImpl</code> object that has the given + * policy type. + * + * @param policy_type an int indicating the policy type + * @return the <code>Policy</code> object that is the specified policy type + * and that applies to this <code>ObjectImpl</code> object + * @see org.omg.CORBA.PolicyOperations#policy_type + */ + public org.omg.CORBA.Policy _get_policy(int policy_type) { + return _get_delegate().get_policy(this, policy_type); + } + + /** + * Retrieves a list of the domain managers for this + * <code>ObjectImpl</code> object. + * + * @return an array containing the <code>DomainManager</code> + * objects for this instance of <code>ObjectImpl</code> + */ + public org.omg.CORBA.DomainManager[] _get_domain_managers() { + return _get_delegate().get_domain_managers(this); + } + + /** + * Sets this <code>ObjectImpl</code> object's override type for + * the given policies to the given instance of + * <code>SetOverrideType</code>. + * + * @param policies an array of <code>Policy</code> objects with the + * policies that will replace the current policies or be + * added to the current policies + * @param set_add either <code>SetOverrideType.SET_OVERRIDE</code>, + * indicating that the given policies will replace any existing + * ones, or <code>SetOverrideType.ADD_OVERRIDE</code>, indicating + * that the given policies should be added to any existing ones + * @return an <code>Object</code> with the given policies replacing or + * added to its previous policies + */ + public org.omg.CORBA.Object + _set_policy_override(org.omg.CORBA.Policy[] policies, + org.omg.CORBA.SetOverrideType set_add) { + return _get_delegate().set_policy_override(this, policies, + set_add); + } + + /** + * Checks whether this <code>ObjectImpl</code> object is implemented + * by a local servant. If so, local invocation API's may be used. + * + * @return <code>true</code> if this object is implemented by a local + * servant; <code>false</code> otherwise + */ + public boolean _is_local() { + return _get_delegate().is_local(this); + } + + /** + * Returns a Java reference to the local servant that should be used for sending + * a request for the method specified. If this <code>ObjectImpl</code> + * object is a local stub, it will invoke the <code>_servant_preinvoke</code> + * method before sending a request in order to obtain the + * <code>ServantObject</code> instance to use. + * <P> + * If a <code>ServantObject</code> object is returned, its <code>servant</code> + * field has been set to an object of the expected type (Note: the object may + * or may not be the actual servant instance). The local stub may cast + * the servant field to the expected type, and then invoke the operation + * directly. The <code>ServantRequest</code> object is valid for only one + * invocation and cannot be used for more than one invocation. + * + * @param operation a <code>String</code> containing the name of the method + * to be invoked. This name should correspond to the method name as + * it would be encoded in a GIOP request. + * + * @param expectedType a <code>Class</code> object representing the + * expected type of the servant that is returned. This expected + * type is the <code>Class</code> object associated with the + * operations class for the stub's interface. For example, a + * stub for an interface <code>Foo</code> would pass the + * <code>Class</code> object for the <code>FooOperations</code> + * interface. + * + * @return (1) a <code>ServantObject</code> object, which may or may + * not be the actual servant instance, or (2) <code>null</code> if + * (a) the servant is not local or (b) the servant has ceased to + * be local due to a ForwardRequest from a POA ServantManager + * @throws org.omg.CORBA.BAD_PARAM if the servant is not the expected type + */ + public ServantObject _servant_preinvoke(String operation, + Class expectedType) { + return _get_delegate().servant_preinvoke(this, operation, + expectedType); + } + + /** + * Is called by the local stub after it has invoked an operation + * on the local servant that was previously retrieved from a + * call to the method <code>_servant_preinvoke</code>. + * The <code>_servant_postinvoke</code> method must be called + * if the <code>_servant_preinvoke</code> + * method returned a non-null value, even if an exception was thrown + * by the method invoked by the servant. For this reason, the call + * to the method <code>_servant_postinvoke</code> should be placed + * in a Java <code>finally</code> clause. + * + * @param servant the instance of the <code>ServantObject</code> + * returned by the <code>_servant_preinvoke</code> method + */ + public void _servant_postinvoke(ServantObject servant) { + _get_delegate().servant_postinvoke(this, servant); + } + + /* + * The following methods were added by orbos/98-04-03: Java to IDL + * Mapping. These are used by RMI over IIOP. + */ + + /** + * Returns an <code>OutputStream</code> object to use for marshalling + * the arguments of the given method. This method is called by a stub, + * which must indicate if a response is expected, that is, whether or not + * the call is oneway. + * + * @param operation a String giving the name of the method. + * @param responseExpected a boolean -- <code>true</code> if the + * request is not one way, that is, a response is expected + * @return an <code>OutputStream</code> object for dispatching the request + */ + public OutputStream _request(String operation, + boolean responseExpected) { + return _get_delegate().request(this, operation, responseExpected); + } + + /** + * Invokes an operation and returns an <code>InputStream</code> + * object for reading the response. The stub provides the + * <code>OutputStream</code> object that was previously returned by a + * call to the <code>_request</code> method. The method specified + * as an argument to <code>_request</code> when it was + * called previously is the method that this method invokes. + * <P> + * If an exception occurs, the <code>_invoke</code> method may throw an + * <code>ApplicationException</code> object that contains an InputStream from + * which the user exception state may be unmarshalled. + * + * @param output an OutputStream object for dispatching the request + * @return an <code>InputStream</code> object containing the marshalled + * response to the method invoked + * @throws ApplicationException if the invocation + * meets application-defined exception + * @throws RemarshalException if the invocation leads + * to a remarshalling error + * @see #_request + */ + public InputStream _invoke(OutputStream output) + throws ApplicationException, RemarshalException { + return _get_delegate().invoke(this, output); + } + + /** + * Releases the given + * reply stream back to the ORB when unmarshalling has + * completed after a call to the method <code>_invoke</code>. + * Calling this method is optional for the stub. + * + * @param input the <code>InputStream</code> object that was returned + * by the <code>_invoke</code> method or the + * <code>ApplicationException.getInputStream</code> method; + * may be <code>null</code>, in which case this method does + * nothing + * @see #_invoke + */ + public void _releaseReply(InputStream input) { + _get_delegate().releaseReply(this, input); + } + + /** + * Returns a <code>String</code> object that represents this + * <code>ObjectImpl</code> object. + * + * @return the <code>String</code> representation of this object + */ + public String toString() { + if ( __delegate != null ) + return __delegate.toString(this); + else + return getClass().getName() + ": no delegate set"; + } + + /** + * Returns the hash code for this <code>ObjectImpl</code> object. + * + * @return the hash code for this object + */ + public int hashCode() { + if ( __delegate != null ) + return __delegate.hashCode(this); + else + return super.hashCode(); + } + + /** + * Compares this <code>ObjectImpl</code> object with the given one + * for equality. + * + *@param obj the object with which to compare this object + *@return <code>true</code> if the two objects are equal; + * <code>false</code> otherwise + */ + public boolean equals(java.lang.Object obj) { + if ( __delegate != null ) + return __delegate.equals(this, obj); + else + return (this==obj); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java new file mode 100644 index 0000000..9dab5ae --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/OutputStream.java @@ -0,0 +1,287 @@ +/* + * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +import org.omg.CORBA.TypeCode; +import org.omg.CORBA.Principal; +import org.omg.CORBA.Any; + +/** + * OuputStream is the Java API for writing IDL types + * to CDR marshal streams. These methods are used by the ORB to + * marshal IDL types as well as to insert IDL types into Anys. + * The <code>_array</code> versions of the methods can be directly + * used to write sequences and arrays of IDL types. + * + * @since JDK1.2 + */ + + +public abstract class OutputStream extends java.io.OutputStream +{ + /** + * Returns an input stream with the same buffer. + *@return an input stream with the same buffer. + */ + public abstract InputStream create_input_stream(); + + /** + * Writes a boolean value to this stream. + * @param value the value to be written. + */ + public abstract void write_boolean(boolean value); + /** + * Writes a char value to this stream. + * @param value the value to be written. + */ + public abstract void write_char(char value); + /** + * Writes a wide char value to this stream. + * @param value the value to be written. + */ + public abstract void write_wchar(char value); + /** + * Writes a CORBA octet (i.e. byte) value to this stream. + * @param value the value to be written. + */ + public abstract void write_octet(byte value); + /** + * Writes a short value to this stream. + * @param value the value to be written. + */ + public abstract void write_short(short value); + /** + * Writes an unsigned short value to this stream. + * @param value the value to be written. + */ + public abstract void write_ushort(short value); + /** + * Writes a CORBA long (i.e. Java int) value to this stream. + * @param value the value to be written. + */ + public abstract void write_long(int value); + /** + * Writes an unsigned CORBA long (i.e. Java int) value to this stream. + * @param value the value to be written. + */ + public abstract void write_ulong(int value); + /** + * Writes a CORBA longlong (i.e. Java long) value to this stream. + * @param value the value to be written. + */ + public abstract void write_longlong(long value); + /** + * Writes an unsigned CORBA longlong (i.e. Java long) value to this stream. + * @param value the value to be written. + */ + public abstract void write_ulonglong(long value); + /** + * Writes a float value to this stream. + * @param value the value to be written. + */ + public abstract void write_float(float value); + /** + * Writes a double value to this stream. + * @param value the value to be written. + */ + public abstract void write_double(double value); + /** + * Writes a string value to this stream. + * @param value the value to be written. + */ + public abstract void write_string(String value); + /** + * Writes a wide string value to this stream. + * @param value the value to be written. + */ + public abstract void write_wstring(String value); + + /** + * Writes an array of booleans on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_boolean_array(boolean[] value, int offset, + int length); + /** + * Writes an array of chars on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_char_array(char[] value, int offset, + int length); + /** + * Writes an array of wide chars on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_wchar_array(char[] value, int offset, + int length); + /** + * Writes an array of CORBA octets (bytes) on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_octet_array(byte[] value, int offset, + int length); + /** + * Writes an array of shorts on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_short_array(short[] value, int offset, + int length); + /** + * Writes an array of unsigned shorts on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_ushort_array(short[] value, int offset, + int length); + /** + * Writes an array of CORBA longs (i.e. Java ints) on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_long_array(int[] value, int offset, + int length); + /** + * Writes an array of unsigned CORBA longs (i.e. Java ints) on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_ulong_array(int[] value, int offset, + int length); + /** + * Writes an array of CORBA longlongs (i.e. Java longs) on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_longlong_array(long[] value, int offset, + int length); + /** + * Writes an array of unsigned CORBA longlongs (i.e. Java ints) on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_ulonglong_array(long[] value, int offset, + int length); + /** + * Writes an array of floats on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_float_array(float[] value, int offset, + int length); + /** + * Writes an array of doubles on this output stream. + * @param value the array to be written. + * @param offset offset on the stream. + * @param length length of buffer to write. + */ + public abstract void write_double_array(double[] value, int offset, + int length); + /** + * Writes a CORBA Object on this output stream. + * @param value the value to be written. + */ + public abstract void write_Object(org.omg.CORBA.Object value); + /** + * Writes a TypeCode on this output stream. + * @param value the value to be written. + */ + public abstract void write_TypeCode(TypeCode value); + /** + * Writes an Any on this output stream. + * @param value the value to be written. + */ + public abstract void write_any(Any value); + + /** + * Writes a Principle on this output stream. + * @param value the value to be written. + * @deprecated Deprecated by CORBA 2.2. + */ + @Deprecated + public void write_Principal(Principal value) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Writes an integer (length of arrays) onto this stream. + * @param b the value to be written. + * @throws java.io.IOException if there is an input/output error + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public void write(int b) throws java.io.IOException { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Writes a BigDecimal number. + * @param value a BidDecimal--value to be written. + */ + public void write_fixed(java.math.BigDecimal value) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Writes a CORBA context on this stream. The + * Context is marshaled as a sequence of strings. + * Only those Context values specified in the contexts + * parameter are actually written. + * @param ctx a CORBA context + * @param contexts a <code>ContextList</code> object containing the list of contexts + * to be written + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public void write_Context(org.omg.CORBA.Context ctx, + org.omg.CORBA.ContextList contexts) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Returns the ORB that created this OutputStream. + * @return the ORB that created this OutputStream + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + public org.omg.CORBA.ORB orb() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java new file mode 100644 index 0000000..b0a6800 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/RemarshalException.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +/** +This class is used for reporting locate forward exceptions and object forward +GIOP messages back to the ORB. In this case the ORB must remarshal the request +before trying again. +Stubs which use the stream-based model shall catch the <code>RemarshalException</code> +which is potentially thrown from the <code>_invoke()</code> method of <code>ObjectImpl</code>. +Upon catching the exception, the stub shall immediately remarshal the request by calling +<code>_request()</code>, marshalling the arguments (if any), and then calling +<code>_invoke()</code>. The stub shall repeat this process until <code>_invoke()</code> +returns normally or raises some exception other than <code>RemarshalException</code>. +*/ + +public final class RemarshalException extends Exception { + /** + * Constructs a RemarshalException. + */ + public RemarshalException() { + super(); + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java new file mode 100644 index 0000000..09a73cd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ResponseHandler.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +/** +This interface is supplied by an ORB to a servant at invocation time and allows +the servant to later retrieve an OutputStream for returning the invocation results. +*/ + +public interface ResponseHandler { + /** + * Called by the servant during a method invocation. The servant + * should call this method to create a reply marshal buffer if no + * exception occurred. + * + * @return an OutputStream suitable for marshalling the reply. + * + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + OutputStream createReply(); + + /** + * Called by the servant during a method invocation. The servant + * should call this method to create a reply marshal buffer if a + * user exception occurred. + * + * @return an OutputStream suitable for marshalling the exception + * ID and the user exception body. + */ + OutputStream createExceptionReply(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java new file mode 100644 index 0000000..2735927 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ServantObject.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.portable; + +/** + This class is part of the local stub API, the purpose of which is to provide + high performance calls for collocated clients and servers + (i.e. clients and servers residing in the same Java VM). + The local stub API is supported via three additional methods on + <code>ObjectImpl</code> and <code>Delegate</code>. + ORB vendors may subclass this class to return additional + request state that may be required by their implementations. + @see ObjectImpl + @see Delegate +*/ + +public class ServantObject +{ + /** The real servant. The local stub may cast this field to the expected type, and then + * invoke the operation directly. Note, the object may or may not be the actual servant + * instance. + */ + public java.lang.Object servant; +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java b/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java new file mode 100644 index 0000000..45f29e0 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/Streamable.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.CORBA.portable; + +import org.omg.CORBA.TypeCode; + +/** + * The base class for the Holder classess of all complex + * IDL types. The ORB treats all generated Holders as Streamable to invoke + * the methods for marshalling and unmarshalling. + * + * @since JDK1.2 + */ + +public interface Streamable { + /** + * Reads data from <code>istream</code> and initalizes the + * <code>value</code> field of the Holder with the unmarshalled data. + * + * @param istream the InputStream that represents the CDR data from the wire. + */ + void _read(InputStream istream); + /** + * Marshals to <code>ostream</code> the value in the + * <code>value</code> field of the Holder. + * + * @param ostream the CDR OutputStream + */ + void _write(OutputStream ostream); + + /** + * Retrieves the <code>TypeCode</code> object corresponding to the value + * in the <code>value</code> field of the Holder. + * + * @return the <code>TypeCode</code> object for the value held in the holder + */ + TypeCode _type(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java b/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java new file mode 100644 index 0000000..7155eed --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/StreamableValue.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +package org.omg.CORBA.portable; + +/** + * Defines the base type for all non-boxed IDL valuetypes + * that are not custom marshaled. + * + * All value types implement ValueBase either directly or + * indirectly by implementing either the + * StreamableValue or CustomValue interface. + * + * @author OMG + */ +public interface StreamableValue extends Streamable, ValueBase { + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java b/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java new file mode 100644 index 0000000..725ca7c --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/UnknownException.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA.portable; +/** + * The org.omg.CORBA.portable.UnknownException is used for reporting + * unknown exceptions between ties and ORBs and between ORBs and stubs. + * It provides a Java representation of an UNKNOWN system exception + * that has an UnknownExceptionInfo service context. + * If the CORBA system exception org.omg.CORBA.portable.UnknownException + * is thrown, then the stub does one of the following: + * (1) Translates it to org.omg.CORBA.UNKNOWN. + * (2) Translates it to the nested exception that the UnknownException contains. + * (3) Passes it on directly to the user. + */ +public class UnknownException extends org.omg.CORBA.SystemException { + /** + * A throwable--the original exception that was wrapped in a CORBA + * UnknownException. + */ + public Throwable originalEx; + /** + * Constructs an UnknownException object. + * @param ex a Throwable object--to be wrapped in this exception. + */ + public UnknownException(Throwable ex) { + super("", 0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); + originalEx = ex; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java new file mode 100644 index 0000000..926e728 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueBase.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA.portable; +/** + * The generated Java classes corresponding to valuetype IDL types + * implement this interface. In other words, the Java mapping of + * valuetype objects implement the ValueBase interface. The generated + * Java class for valuetype's shall provide an implementation of the + * ValueBase interface for the corresponding value type. + * For value types that are streamable (i.e. non-custom), + * the generated Java class shall also provide an implementation + * for the org.omg.CORBA.portable.Streamable interface. + * (CORBA::ValueBase is mapped to java.io.Serializable.) + */ +public interface ValueBase extends IDLEntity { + /** + * Provides truncatable repository ids. + * @return a String array--list of truncatable repository ids. + */ + String[] _truncatable_ids(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java new file mode 100644 index 0000000..355104b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueFactory.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA.portable; +import java.io.Serializable; + +/** + * The ValueFactory interface is the native mapping for the IDL + * type CORBA::ValueFactory. The read_value() method is called by + * the ORB runtime while in the process of unmarshaling a value type. + * A user shall implement this method as part of implementing a type + * specific value factory. In the implementation, the user shall call + * is.read_value(java.io.Serializable) with a uninitialized valuetype + * to use for unmarshaling. The value returned by the stream is + * the same value passed in, with all the data unmarshaled. + * @see org.omg.CORBA_2_3.ORB + */ + +public interface ValueFactory { + /** + * Is called by + * the ORB runtime while in the process of unmarshaling a value type. + * A user shall implement this method as part of implementing a type + * specific value factory. + * @param is an InputStream object--from which the value will be read. + * @return a Serializable object--the value read off of "is" Input stream. + */ + Serializable read_value(org.omg.CORBA_2_3.portable.InputStream is); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java new file mode 100644 index 0000000..9ce5169 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueInputStream.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.portable; + +/** + * Java to IDL ptc 02-01-12 1.5.1.4 + * + * ValueInputStream is used for implementing RMI-IIOP + * stream format version 2. + */ +public interface ValueInputStream { + + /** + * The start_value method reads a valuetype + * header for a nested custom valuetype and + * increments the valuetype nesting depth. + */ + void start_value(); + + /** + * The end_value method reads the end tag + * for the nested custom valuetype (after + * skipping any data that precedes the end + * tag) and decrements the valuetype nesting + * depth. + */ + void end_value(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java new file mode 100644 index 0000000..3d6e0bd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/ValueOutputStream.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.CORBA.portable; + +/** + * Java to IDL ptc 02-01-12 1.5.1.3 + * + * ValueOutputStream is used for implementing RMI-IIOP + * stream format version 2. + */ +public interface ValueOutputStream { + /** + * The start_value method ends any currently open chunk, + * writes a valuetype header for a nested custom valuetype + * (with a null codebase and the specified repository ID), + * and increments the valuetype nesting depth. + */ + void start_value(java.lang.String rep_id); + + /** + * The end_value method ends any currently open chunk, + * writes the end tag for the nested custom valuetype, + * and decrements the valuetype nesting depth. + */ + void end_value(); +} diff --git a/src/java.corba/share/classes/org/omg/CORBA/portable/package.html b/src/java.corba/share/classes/org/omg/CORBA/portable/package.html new file mode 100644 index 0000000..e0f5cbb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA/portable/package.html @@ -0,0 +1,96 @@ +<!doctype html> +<html> +<head> +<!-- +Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. +--> +</head> +<body> + +Provides a portability layer, that is, a set of ORB APIs +that makes it possible for code generated +by one vendor to run on another vendor's ORB. +Stubs and other code, generated either from IDL or +interfaces written in the Java programming language, +can call into these ORB APIs. + + + +<p> +<a id="unimpl"></a> +<hr> +<h1>CORBA Features Throwing NO_IMPLEMENT() Exceptions</h1> +<hr> +Some methods throw NO_IMPLEMENT() exceptions by default, but ORB vendors +can override them to provide real implementations. The ORB included in +Sun's release of the Java[tm] Platform, Standard Edition 6, includes +implementations for the following methods. + +<h2>List of Unimplemented Features in Package +<code>org.omg.CORBA.portable</code></h2> + +<h3>Unimplemented Interfaces in package <code>org.omg.CORBA.portable</code></h3> + <ul> + <li><code>InvokeHandler</code> + <li><code>ResponseHandler</code> + </ul> + +<h3>Unimplemented Methods in package <code>org.omg.CORBA.portable</code></h3> +<ul> +<li><code>InputStream</code> + <ul> + <li><code>public int read()</code> + <li><code>public.math.BigDecimal read_fixed()</code> + <li><code>public org.omg.CORBA.Context read_Context()</code> + <li><code>public org.omg.CORBA.Object read_Object(java.lang.Class clz)</code> + <li><code>public org.omg.CORBA.ORB orb()</code> + </ul> +<li><code>OutputStream</code> + <ul> + <li><code>public org.omg.CORBA.ORB orb()</code> + <li><code>public void write_Context(org.omg.CORBA.Context ctx, + org.omg.CORBA.ContextList contexts)</code> + <li><code>public void write_fixed(java.math.BigDecimal value)</code> + <li><code>public void write(int b)</code> + </ul> +<li><code>Delegate</code> + <ul> + <li><code>public void releaseReply(org.omg.CORBA.Object self, InputStream input)</code> + <li><code>public InputStream invoke(org.omgl.CORBA.Object self, OutputStream output)</code> + <li><code>public OutputStream request(org.omg.CORBA.Object self, String operation, + boolean responseExpected)</code> + <li><code>public org.omg.CORBA.Object set_policy_override(org.omg.CORBA.Object self, + org.omg.CORBA.Policy[] policies, + org.omg.CORBA.SetOverrideType set_add)</code> + <li><code>public org.omg.CORBA.DomainManager[] get_domain_managers( + org.omg.CORBA.Objectself)</code> + <li><code>public org.omg.CORBA.Policy get_policy(org.omg.CORBA.Object self, + int policy_type)</code> + </ul> +</ul> + +@since JDK1.2 +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java new file mode 100644 index 0000000..fc203c3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/ORB.java @@ -0,0 +1,89 @@ +/* + * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA_2_3; + +/** + * A class extending <code>org.omg.CORBA.ORB</code> to make the ORB + * portable under the OMG CORBA version 2.3 specification. + */ +public abstract class ORB extends org.omg.CORBA.ORB { + +/** + * + */ + public org.omg.CORBA.portable.ValueFactory register_value_factory(String id, + org.omg.CORBA.portable.ValueFactory factory) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + +/** + * + */ + public void unregister_value_factory(String id) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + +/** + * + */ + public org.omg.CORBA.portable.ValueFactory lookup_value_factory(String id) + { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + +/** + * @see <a href="package-summary.html#unimpl"><code>CORBA_2_3</code> package + * comments for unimplemented features</a> + */ + // always return a ValueDef or throw BAD_PARAM if + // <em>repid</em> does not represent a valuetype + public org.omg.CORBA.Object get_value_def(String repid) + throws org.omg.CORBA.BAD_PARAM { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + +/** + * @see <a href="package-summary.html#unimpl"><code>CORBA_2_3</code> package + * comments for unimplemented features</a> + */ + public void set_delegate(java.lang.Object wrapper) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html b/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html new file mode 100644 index 0000000..7a82edb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/package.html @@ -0,0 +1,67 @@ +<!doctype html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]"> + <title>package</title> +<!-- +/* +* Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> +</head> +<body> +The CORBA_2_3 package defines additions to existing CORBA interfaces +in the Java[tm] Standard Edition 6. These changes occurred in recent +revisions to the CORBA API defined by the OMG. The new methods were +added to interfaces derived from the corresponding interfaces in +the CORBA package. This provides backward compatibility and avoids +breaking the JCK tests. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6, ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. +<P> +<a id="unimpl"></a> +The following methods in the abstract class +<code>org.omg.CORBA_2_3.ORB</code> are unimplemented: +<UL> + <LI><code>public org.omg.CORBA.portable.ValueFactory + <b>register_value_factory(String id, org.omg.CORBA.portable.ValueFactory + factory)</b></code> + <LI><code>public void <b>unregister_value_factory(String id)</b></code> + <LI><code>public org.omg.CORBA.portable.ValueFactory + <b>lookup_value_factory(String id)</b></code> + <LI><code>public org.omg.CORBA.Object <b>get_value_def(String repid)</b></code> + <LI><code>public void <b>set_delegate(java.lang.Object wrapper)</b></code> +</UL> +@since JDK 1.3 +<br> +@serial exclude + +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java new file mode 100644 index 0000000..a158ae9 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/Delegate.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA_2_3.portable; + +/** + * Delegate class provides the ORB vendor specific implementation + * of CORBA object. It extends org.omg.CORBA.portable.Delegate and + * provides new methods that were defined by CORBA 2.3. + * + * @see org.omg.CORBA.portable.Delegate + * @author OMG + * @since JDK1.2 + */ + +public abstract class Delegate extends org.omg.CORBA.portable.Delegate { + + /** Returns the codebase for object reference provided. + * @param self the object reference whose codebase needs to be returned. + * @return the codebase as a space delimited list of url strings or + * null if none. + */ + public java.lang.String get_codebase(org.omg.CORBA.Object self) { + return null; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java new file mode 100644 index 0000000..1913538 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/InputStream.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA_2_3.portable; + +import java.io.SerializablePermission; +import java.security.AccessController; +import java.security.PrivilegedAction; + +/** + * InputStream provides for the reading of all of the mapped IDL types + * from the stream. It extends org.omg.CORBA.portable.InputStream. This + * class defines new methods that were added for CORBA 2.3. + * + * @see org.omg.CORBA.portable.InputStream + * @author OMG + * @since JDK1.2 + */ + +public abstract class InputStream extends org.omg.CORBA.portable.InputStream { + + + private static final String ALLOW_SUBCLASS_PROP = "jdk.corba.allowInputStreamSubclass"; + + private static final boolean allowSubclass = AccessController.doPrivileged( + new PrivilegedAction<Boolean>() { + @Override + public Boolean run() { + String prop = System.getProperty(ALLOW_SUBCLASS_PROP); + return prop == null ? false : + (prop.equalsIgnoreCase("false") ? false : true); + } + }); + + private static Void checkPermission() { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + if (!allowSubclass) + sm.checkPermission(new + SerializablePermission("enableSubclassImplementation")); + } + return null; + } + + private InputStream(Void ignore) { } + + /** + * Create a new instance of this class. + * + * @implNote + * Throws SecurityException if SecurityManager is installed and + * enableSubclassImplementation SerializablePermission + * is not granted or jdk.corba.allowInputStreamSubclass system + * property is either not set or is set to 'false'. + */ + public InputStream() { + this(checkPermission()); + } + + /** + * Unmarshalls a value type from the input stream. + * @return the value type unmarshalled from the input stream + */ + public java.io.Serializable read_value() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshalls a value type from the input stream. + * @param clz is the declared type of the value to be unmarshalled + * @return the value unmarshalled from the input stream + */ + public java.io.Serializable read_value(java.lang.Class clz) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshalls a value type from the input stream. + * @param factory is the instance fo the helper to be used for + * unmarshalling the value type + * @return the value unmarshalled from the input stream + */ + public java.io.Serializable read_value(org.omg.CORBA.portable.BoxedValueHelper factory) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshalls a value type from the input stream. + * @param rep_id identifies the type of the value to be unmarshalled + * @return value type unmarshalled from the input stream + */ + public java.io.Serializable read_value(java.lang.String rep_id) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshalls a value type from the input stream. + * @param value is an uninitialized value which is added to the orb's + * indirection table before calling Streamable._read() or + * CustomMarshal.unmarshal() to unmarshal the value. + * @return value type unmarshalled from the input stream + */ + public java.io.Serializable read_value(java.io.Serializable value) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshal the value object or a suitable stub object. + * @return ORB runtime returns the value object or a suitable stub object. + */ + public java.lang.Object read_abstract_interface() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Unmarshal the class object or the stub class corresponding to the passed type. + * @param clz is the Class object for the stub class which corresponds to + * the type that is statically expected. + * @return ORB runtime returns the value object or a suitable stub object. + */ + public java.lang.Object read_abstract_interface(java.lang.Class clz) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java new file mode 100644 index 0000000..6fbfabe --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA_2_3.portable; + +import org.omg.CORBA_2_3.portable.Delegate; + +/** + * ObjectImpl class is the base class for all stubs. It provides the + * basic delegation mechanism. It extends org.omg.CORBA.portable.ObjectImpl + * and provides new methods defined by CORBA 2.3. + * + * @see org.omg.CORBA.portable.ObjectImpl + * @author OMG + * @since JDK1.2 + */ + + +public abstract class ObjectImpl extends org.omg.CORBA.portable.ObjectImpl { + + /** Returns the codebase for this object reference. + * @return the codebase as a space delimited list of url strings or + * null if none. + */ + public java.lang.String _get_codebase() { + org.omg.CORBA.portable.Delegate delegate = _get_delegate(); + if (delegate instanceof Delegate) + return ((Delegate) delegate).get_codebase(this); + return null; + } +} diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java new file mode 100644 index 0000000..00955b3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.CORBA_2_3.portable; + +import java.io.SerializablePermission; +import java.security.AccessController; +import java.security.PrivilegedAction; + +/** + * OutputStream provides interface for writing of all of the mapped IDL type + * to the stream. It extends org.omg.CORBA.portable.OutputStream, and defines + * new methods defined by CORBA 2.3. + * + * @see org.omg.CORBA.portable.OutputStream + * @author OMG + * @since JDK1.2 + */ + +public abstract class OutputStream extends org.omg.CORBA.portable.OutputStream { + + private static final String ALLOW_SUBCLASS_PROP = "jdk.corba.allowOutputStreamSubclass"; + private static final boolean allowSubclass = AccessController.doPrivileged( + new PrivilegedAction<Boolean>() { + @Override + public Boolean run() { + String prop = System.getProperty(ALLOW_SUBCLASS_PROP); + return prop == null ? false : + (prop.equalsIgnoreCase("false") ? false : true); + } + }); + + private static Void checkPermission() { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + if (!allowSubclass) + sm.checkPermission(new + SerializablePermission("enableSubclassImplementation")); + } + return null; + } + private OutputStream(Void ignore) { } + + /** + * Create a new instance of this class. + * + * @implNote + * Throws SecurityException if SecurityManager is installed and + * enableSubclassImplementation SerializablePermission + * is not granted or jdk.corba.allowOutputStreamSubclass system + * property is either not set or is set to 'false'. + */ + public OutputStream() { + this(checkPermission()); + } + + /** + * Marshals a value type to the output stream. + * @param value is the acutal value to write + */ + public void write_value(java.io.Serializable value) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Marshals a value type to the output stream. + * @param value is the acutal value to write + * @param clz is the declared type of the value to be marshaled + */ + public void write_value(java.io.Serializable value, java.lang.Class clz) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Marshals a value type to the output stream. + * @param value is the acutal value to write + * @param repository_id identifies the type of the value type to + * be marshaled + */ + public void write_value(java.io.Serializable value, String repository_id) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Marshals a value type to the output stream. + * @param value is the acutal value to write + * @param factory is the instance of the helper to be used for marshaling + * the boxed value + */ + public void write_value(java.io.Serializable value, org.omg.CORBA.portable.BoxedValueHelper factory) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + /** + * Marshals a value object or a stub object. + * @param obj the actual value object to marshal or the stub to be marshalled + */ + public void write_abstract_interface(java.lang.Object obj) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + +} diff --git a/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html new file mode 100644 index 0000000..6b3f430 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CORBA_2_3/portable/package.html @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> + +</head> +<body bgcolor="white"> + + Provides methods for the input and output of value types, and contains + other updates to the <code>org/omg/CORBA/portable</code> package. + +@since 1.3 +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html new file mode 100644 index 0000000..9636d1d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> + +</head> +<body bgcolor="white"> +<P>This package contains the following classes, which are used in +<code>org.omg.CosNaming.NamingContextExt</code>: +<UL> + <LI><code>AddressHelper</code> + <LI><code>StringNameHelper</code> + <LI><code>URLStringHelper</code> + <LI><code>InvalidAddress</code> +</UL> + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html new file mode 100644 index 0000000..b97eafd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/NamingContextPackage/package.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> + +</head> +<body bgcolor="white"> +<P>This package contains Exception classes for the <code>org.omg.CosNaming</code> + package. The list of exception classes are: + <UL> + <LI><code>AlreadyBound</code> + <LI><code>CannotProceed</code> + <LI><code>InvalidName</code> + <LI><code>NotEmpty</code> + <LI><code>NotFound</code> + <LI><code>NotFoundReason</code> + </UL> + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java b/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java new file mode 100644 index 0000000..9b43349 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java @@ -0,0 +1,108 @@ +/* + * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CosNaming/_BindingIteratorImplBase.java + * From: nameservice.idl + * Date: Tue Aug 11 03:12:09 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + * @deprecated Deprecated in JDK 1.4. + */ + +package org.omg.CosNaming; +public abstract class _BindingIteratorImplBase extends org.omg.CORBA.DynamicImplementation implements org.omg.CosNaming.BindingIterator { + // Constructor + public _BindingIteratorImplBase() { + super(); + } + // Type strings for this class and its superclases + private static final String _type_ids[] = { + "IDL:omg.org/CosNaming/BindingIterator:1.0" + }; + + public String[] _ids() { return (String[]) _type_ids.clone(); } + + private static java.util.Dictionary _methods = new java.util.Hashtable(); + static { + _methods.put("next_one", new java.lang.Integer(0)); + _methods.put("next_n", new java.lang.Integer(1)); + _methods.put("destroy", new java.lang.Integer(2)); + } + // DSI Dispatch call + public void invoke(org.omg.CORBA.ServerRequest r) { + switch (((java.lang.Integer) _methods.get(r.op_name())).intValue()) { + case 0: // org.omg.CosNaming.BindingIterator.next_one + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _b = _orb().create_any(); + _b.type(org.omg.CosNaming.BindingHelper.type()); + _list.add_value("b", _b, org.omg.CORBA.ARG_OUT.value); + r.params(_list); + org.omg.CosNaming.BindingHolder b; + b = new org.omg.CosNaming.BindingHolder(); + boolean ___result; + ___result = this.next_one(b); + org.omg.CosNaming.BindingHelper.insert(_b, b.value); + org.omg.CORBA.Any __result = _orb().create_any(); + __result.insert_boolean(___result); + r.result(__result); + } + break; + case 1: // org.omg.CosNaming.BindingIterator.next_n + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _how_many = _orb().create_any(); + _how_many.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong)); + _list.add_value("how_many", _how_many, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _bl = _orb().create_any(); + _bl.type(org.omg.CosNaming.BindingListHelper.type()); + _list.add_value("bl", _bl, org.omg.CORBA.ARG_OUT.value); + r.params(_list); + int how_many; + how_many = _how_many.extract_ulong(); + org.omg.CosNaming.BindingListHolder bl; + bl = new org.omg.CosNaming.BindingListHolder(); + boolean ___result; + ___result = this.next_n(how_many, bl); + org.omg.CosNaming.BindingListHelper.insert(_bl, bl.value); + org.omg.CORBA.Any __result = _orb().create_any(); + __result.insert_boolean(___result); + r.result(__result); + } + break; + case 2: // org.omg.CosNaming.BindingIterator.destroy + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + r.params(_list); + this.destroy(); + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + default: + throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); + } + } +} diff --git a/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java b/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java new file mode 100644 index 0000000..ece23c2 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/_NamingContextImplBase.java @@ -0,0 +1,407 @@ +/* + * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * File: ./org/omg/CosNaming/_NamingContextImplBase.java + * From: nameservice.idl + * Date: Tue Aug 11 03:12:09 1998 + * By: idltojava Java IDL 1.2 Aug 11 1998 02:00:18 + * @deprecated Deprecated in JDK 1.4. + */ + +package org.omg.CosNaming; +public abstract class _NamingContextImplBase extends org.omg.CORBA.DynamicImplementation implements org.omg.CosNaming.NamingContext { + // Constructor + public _NamingContextImplBase() { + super(); + } + // Type strings for this class and its superclases + private static final String _type_ids[] = { + "IDL:omg.org/CosNaming/NamingContext:1.0" + }; + + public String[] _ids() { return (String[]) _type_ids.clone(); } + + private static java.util.Dictionary _methods = new java.util.Hashtable(); + static { + _methods.put("bind", new java.lang.Integer(0)); + _methods.put("bind_context", new java.lang.Integer(1)); + _methods.put("rebind", new java.lang.Integer(2)); + _methods.put("rebind_context", new java.lang.Integer(3)); + _methods.put("resolve", new java.lang.Integer(4)); + _methods.put("unbind", new java.lang.Integer(5)); + _methods.put("list", new java.lang.Integer(6)); + _methods.put("new_context", new java.lang.Integer(7)); + _methods.put("bind_new_context", new java.lang.Integer(8)); + _methods.put("destroy", new java.lang.Integer(9)); + } + // DSI Dispatch call + public void invoke(org.omg.CORBA.ServerRequest r) { + switch (((java.lang.Integer) _methods.get(r.op_name())).intValue()) { + case 0: // org.omg.CosNaming.NamingContext.bind + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _obj = _orb().create_any(); + _obj.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_objref)); + _list.add_value("obj", _obj, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CORBA.Object obj; + obj = _obj.extract_Object(); + try { + this.bind(n, obj); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e3) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e3); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 1: // org.omg.CosNaming.NamingContext.bind_context + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _nc = _orb().create_any(); + _nc.type(org.omg.CosNaming.NamingContextHelper.type()); + _list.add_value("nc", _nc, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CosNaming.NamingContext nc; + nc = org.omg.CosNaming.NamingContextHelper.extract(_nc); + try { + this.bind_context(n, nc); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e3) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e3); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 2: // org.omg.CosNaming.NamingContext.rebind + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _obj = _orb().create_any(); + _obj.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_objref)); + _list.add_value("obj", _obj, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CORBA.Object obj; + obj = _obj.extract_Object(); + try { + this.rebind(n, obj); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 3: // org.omg.CosNaming.NamingContext.rebind_context + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _nc = _orb().create_any(); + _nc.type(org.omg.CosNaming.NamingContextHelper.type()); + _list.add_value("nc", _nc, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CosNaming.NamingContext nc; + nc = org.omg.CosNaming.NamingContextHelper.extract(_nc); + try { + this.rebind_context(n, nc); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 4: // org.omg.CosNaming.NamingContext.resolve + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CORBA.Object ___result; + try { + ___result = this.resolve(n); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + org.omg.CORBA.Any __result = _orb().create_any(); + __result.insert_Object(___result); + r.result(__result); + } + break; + case 5: // org.omg.CosNaming.NamingContext.unbind + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + try { + this.unbind(n); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e2); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 6: // org.omg.CosNaming.NamingContext.list + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _how_many = _orb().create_any(); + _how_many.type(org.omg.CORBA.ORB.init().get_primitive_tc(org.omg.CORBA.TCKind.tk_ulong)); + _list.add_value("how_many", _how_many, org.omg.CORBA.ARG_IN.value); + org.omg.CORBA.Any _bl = _orb().create_any(); + _bl.type(org.omg.CosNaming.BindingListHelper.type()); + _list.add_value("bl", _bl, org.omg.CORBA.ARG_OUT.value); + org.omg.CORBA.Any _bi = _orb().create_any(); + _bi.type(org.omg.CosNaming.BindingIteratorHelper.type()); + _list.add_value("bi", _bi, org.omg.CORBA.ARG_OUT.value); + r.params(_list); + int how_many; + how_many = _how_many.extract_ulong(); + org.omg.CosNaming.BindingListHolder bl; + bl = new org.omg.CosNaming.BindingListHolder(); + org.omg.CosNaming.BindingIteratorHolder bi; + bi = new org.omg.CosNaming.BindingIteratorHolder(); + this.list(how_many, bl, bi); + org.omg.CosNaming.BindingListHelper.insert(_bl, bl.value); + org.omg.CosNaming.BindingIteratorHelper.insert(_bi, bi.value); + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + case 7: // org.omg.CosNaming.NamingContext.new_context + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + r.params(_list); + org.omg.CosNaming.NamingContext ___result; + ___result = this.new_context(); + org.omg.CORBA.Any __result = _orb().create_any(); + org.omg.CosNaming.NamingContextHelper.insert(__result, ___result); + r.result(__result); + } + break; + case 8: // org.omg.CosNaming.NamingContext.bind_new_context + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + org.omg.CORBA.Any _n = _orb().create_any(); + _n.type(org.omg.CosNaming.NameHelper.type()); + _list.add_value("n", _n, org.omg.CORBA.ARG_IN.value); + r.params(_list); + org.omg.CosNaming.NameComponent[] n; + n = org.omg.CosNaming.NameHelper.extract(_n); + org.omg.CosNaming.NamingContext ___result; + try { + ___result = this.bind_new_context(n); + } + catch (org.omg.CosNaming.NamingContextPackage.NotFound e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotFoundHelper.insert(_except, e0); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.AlreadyBound e1) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.AlreadyBoundHelper.insert(_except, e1); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.CannotProceed e2) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.CannotProceedHelper.insert(_except, e2); + r.except(_except); + return; + } + catch (org.omg.CosNaming.NamingContextPackage.InvalidName e3) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.InvalidNameHelper.insert(_except, e3); + r.except(_except); + return; + } + org.omg.CORBA.Any __result = _orb().create_any(); + org.omg.CosNaming.NamingContextHelper.insert(__result, ___result); + r.result(__result); + } + break; + case 9: // org.omg.CosNaming.NamingContext.destroy + { + org.omg.CORBA.NVList _list = _orb().create_list(0); + r.params(_list); + try { + this.destroy(); + } + catch (org.omg.CosNaming.NamingContextPackage.NotEmpty e0) { + org.omg.CORBA.Any _except = _orb().create_any(); + org.omg.CosNaming.NamingContextPackage.NotEmptyHelper.insert(_except, e0); + r.except(_except); + return; + } + org.omg.CORBA.Any __return = _orb().create_any(); + __return.type(_orb().get_primitive_tc(org.omg.CORBA.TCKind.tk_void)); + r.result(__return); + } + break; + default: + throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); + } + } +} diff --git a/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl b/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl new file mode 100644 index 0000000..ae276b0 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/nameservice.idl @@ -0,0 +1,509 @@ +/* + * Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +// name.idl - Naming service interface +#pragma prefix "omg.org" + + +/** + * The CORBA COS Naming Service provides the ability to bind a name + * to an object relative to a naming context. A naming context is an + * object that contains a set of name bindings in which each name is unique. + * To resolve a name is to determine the object associated with the name in + * a given context. <p> + * + * See http://www.omg.org/technology/documents/formal/naming_service.htm + * for the complete CORBA + * COS Naming Specification. <p> + */ +module CosNaming +{ + typedef string Istring; + + /** + * Many of the operations defined on a naming context take names as + * parameters. Names have structure. A name is an ordered sequence of + * components. <p> + * + * A name with a single component is called a simple name; a name with + * multiple components is called a compound name. Each component except + * the last is used to name a context; the last component denotes the + * bound object. <p> + * + * A name component consists of two attributes: the identifier + * attribute and the kind attribute. Both the identifier attribute and the + * kind attribute are represented as IDL strings. The kind attribute adds + * descriptive power to names in a syntax-independent way. Examples of the + * value of the kind attribute include c_source, object_code, executable, + * postscript, or " ". + */ + struct NameComponent + { + Istring id; + Istring kind; + }; + + /** + * A name is a sequence of name components. + */ + typedef sequence <NameComponent> Name; + + /** + * Specifies whether the given binding is for a object (that is not a + * naming context) or for a naming context. + */ + enum BindingType + { + nobject, // name is bound to an object + ncontext // name is bound to a naming context + }; + + /** + * A name-to-object association is called a Binding. + */ + struct Binding + { + Name binding_name; // name + BindingType binding_type; // whether name is bound to an object + // or a naming context + }; + + /** + * List of Bindings. + */ + typedef sequence <Binding> BindingList; + + /** + * The BindingIterator interface allows a client to iterate through + * the bindings using the next_one or next_n operations. + * + * The bindings iterator is obtained by using the <code>list</code> + * method on the <code>NamingContext</code>. + * @see org.omg.CosNaming.NamingContext#list + */ + interface BindingIterator + { + /** + * This operation returns the next binding. If there are no more + * bindings, false is returned. + * + * @param b the returned binding + */ + boolean next_one(out Binding b); + + /** + * This operation returns at most the requested number of bindings. + * + * @param how_many the maximum number of bindings to return + * + * @param bl the returned bindings + */ + boolean next_n(in unsigned long how_many, + out BindingList bl); + + // Destroy binding iterator + /** + * This operation destroys the iterator. + */ + void destroy(); + }; + +/** + * A naming context is an object that contains a set of name bindings in + * which each name is unique. Different names can be bound to an object + * in the same or different contexts at the same time. <p> + * + * See <a href="http://www.omg.org/technology/documents/formal/naming_service.htm"> + * CORBA COS + * Naming Specification.</a> + */ + interface NamingContext + { + // Declare exceptions + /** + * Indicates the reason for not able to resolve. + */ + enum NotFoundReason + { + missing_node, + not_context, + not_object + }; + +/** + * Indicates the name does not identify a binding. + */ + exception NotFound + { + NotFoundReason why; + Name rest_of_name; + }; + +/** + * Indicates that the implementation has given up for some reason. + * The client, however, may be able to continue the operation at the + * returned naming context. + */ + exception CannotProceed + { + NamingContext cxt; + Name rest_of_name; + }; + +/** + * Indicates the name is invalid. + */ + exception InvalidName + {}; + +/** + * Indicates an object is already bound to the specified name. Only + * one object can be bound to a particular name in a context. + */ + exception AlreadyBound + {}; + +/** + * Indicates that the Naming Context contains bindings. + */ + exception NotEmpty + {}; + +/** + * Creates a binding of a name and an object in the naming context. + * Naming contexts that are bound using bind do not participate in name + * resolution when compound names are passed to be resolved. + * + * @param n Name of the object. + * + * @param obj The Object to bind with the given name. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates + * the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed + * Indicates that the implementation has given up for some reason. + * The client, however, may be able to continue the operation + * at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName + * Indicates that the name is invalid. + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound + * Indicates an object is already bound to the specified name. + */ + void bind(in Name n, + in Object obj) + raises(NotFound, + CannotProceed, + InvalidName, + AlreadyBound); + +/** + * Names an object that is a naming context. Naming contexts that + * are bound using bind_context() participate in name resolution + * when compound names are passed to be resolved. + * + * @param n Name of the object. + * + * @param nc NamingContect object to bind with the given name. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already + * bound to the specified name. + */ + void bind_context(in Name n, + in NamingContext nc) + raises(NotFound, + CannotProceed, + InvalidName, + AlreadyBound); + +/** + * Creates a binding of a name and an object in the naming context + * even if the name is already bound in the context. Naming contexts + * that are bound using rebind do not participate in name resolution + * when compound names are passed to be resolved. + * + * @param n Name of the object. + * + * @param obj The Object to rebind with the given name. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + */ + void rebind(in Name n, + in Object obj) + raises(NotFound, + CannotProceed, + InvalidName); + +/** + * Creates a binding of a name and a naming context in the naming + * context even if the name is already bound in the context. Naming + * contexts that are bound using rebind_context() participate in name + * resolution when compound names are passed to be resolved. + * + * @param n Name of the object. + * + * @param nc NamingContect object to rebind with the given name. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + */ + void rebind_context(in Name n, + in NamingContext nc) + raises(NotFound, + CannotProceed, + InvalidName); + +/** + * The resolve operation is the process of retrieving an object + * bound to a name in a given context. The given name must exactly + * match the bound name. The naming service does not return the type + * of the object. Clients are responsible for "narrowing" the object + * to the appropriate type. That is, clients typically cast the returned + * object from Object to a more specialized interface. + * + * @param n Name of the object. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + */ + Object resolve(in Name n) + raises(NotFound, + CannotProceed, + InvalidName); + +/** + * The unbind operation removes a name binding from a context. + * + * @param n Name of the object. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + */ + void unbind(in Name n) + raises(NotFound, + CannotProceed, + InvalidName); + +/** + * The list operation allows a client to iterate through a set of + * bindings in a naming context. <p> + * + * The list operation returns at most the requested number of + * bindings in BindingList bl. + * <ul> + * <li>If the naming context contains additional + * bindings, the list operation returns a BindingIterator with the + * additional bindings. + * <li>If the naming context does not contain additional + * bindings, the binding iterator is a nil object reference. + * </ul> + * + * @param how_many the maximum number of bindings to return. + * + * @param bl the returned list of bindings. + * + * @param bi the returned binding iterator. + */ + void list(in unsigned long how_many, + out BindingList bl, + out BindingIterator bi); + +/** + * This operation returns a naming context implemented by the same + * naming server as the context on which the operation was invoked. + * The new context is not bound to any name. + */ + NamingContext new_context(); + +/** + * This operation creates a new context and binds it to the name + * supplied as an argument. The newly-created context is implemented + * by the same naming server as the context in which it was bound (that + * is, the naming server that implements the context denoted by the + * name argument excluding the last component). + * + * @param n Name of the object. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound Indicates the name does not identify a binding. + * + * @exception org.omg.CosNaming.NamingContextPackage.AlreadyBound Indicates an object is already + * bound to the specified name. + * + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed Indicates that the implementation has + * given up for some reason. The client, however, may be able to + * continue the operation at the returned naming context. + * + * @exception org.omg.CosNaming.NamingContextPackage.InvalidName Indicates that the name is invalid. + */ + NamingContext bind_new_context(in Name n) + raises(NotFound, + AlreadyBound, + CannotProceed, + InvalidName); + +/** + * The destroy operation deletes a naming context. If the naming + * context contains bindings, the NotEmpty exception is raised. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotEmpty Indicates that the Naming Context contains bindings. + */ + void destroy() + raises(NotEmpty); + + }; + + +/** + * <code>NamingContextExt</code> is the extension of <code>NamingContext</code> + * which + * contains a set of name bindings in which each name is unique and is + * part of Interoperable Naming Service. + * Different names can be bound to an object in the same or different + * contexts at the same time. Using <code>NamingContextExt</code>, you can use + * URL-based names to bind and resolve. + * + * See <a href="http://www.omg.org/technology/documents/formal/naming_service.htm"> + * CORBA COS + * Naming Specification.</a> + */ + interface NamingContextExt: NamingContext + { +/** + * StringName is the Stringified Name, Array of Name Components + * represented as a String. + */ + typedef string StringName; + +/** + * Address is the Host and Port information represented as a String. + */ + typedef string Address; + +/** + * URLString is the URL address (corbaloc: or corbaname:) represented as + * a String. + */ + typedef string URLString; + +/** + * This operation creates a stringified name from the array of Name + * components. + * + * @param n Name of the object. + * + * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName + * Indicates the name does not identify a binding. + * + */ + StringName to_string( in Name n ) raises (InvalidName); + +/** + * This operation converts a Stringified Name into an equivalent array + * of Name Components. + * + * @param sn Stringified Name of the object. + * + * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName + * Indicates the name does not identify a binding. + * + */ + Name to_name( in StringName sn ) raises (InvalidName); + + +/** + * Indicates the invalid Stringified name for the object, The + * reason could be invalid syntax. + */ + exception InvalidAddress + { }; + +/** + * This operation creates a URL based "iiopname://" format name + * from the Stringified Name of the object. + * + * @param addr internet based address of the host machine where Name Service is running. + * @param sn Stringified Name of the object. + * + * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName + * Indicates the name does not identify a binding. + * @exception org.omg.CosNaming.NamingContextPackage.InvalidAddress + * Indicates the internet based address of the host machine is incorrect + */ + URLString to_url( in Address addr, in StringName sn ) + raises( InvalidAddress, InvalidName ); + + +/** + * This operation resolves the Stringified name into the object + * reference. + * + * @param sn Stringified Name of the object. + * + * @exception org.omg.CosNaming.NamingContextPackage.NotFound + * Indicates there is no object reference for the given name. + * @exception org.omg.CosNaming.NamingContextPackage.CannotProceed + * Indicates that the given compound name is incorrect. + * @exception org.omg.CosNaming.NamingContextExtPackage.InvalidName + * Indicates the name does not identify a binding. + * + */ + Object resolve_str( in StringName sn) + raises( NotFound, CannotProceed, + InvalidName); + + }; + +}; diff --git a/src/java.corba/share/classes/org/omg/CosNaming/package.html b/src/java.corba/share/classes/org/omg/CosNaming/package.html new file mode 100644 index 0000000..2654854 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/CosNaming/package.html @@ -0,0 +1,351 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ +--> +</head> +<body bgcolor="white"> + + Provides a naming service for Java IDL. The Object Request Broker Daemon + (ORBD) also includes both a transient and persistent naming service. + + + <P> + The package and all its classes and interfaces + were generated by running the tool <code>idlj</code> on the file + <code>nameservice.idl</code>, which is a module written in OMG IDL. + + <H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6, ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + + <H2>Interfaces</H2> + The package <code>org.omg.CosNaming</code> contains two public interfaces + and several auxiliary classes. + <P> + The interfaces are: + <UL> + <LI><code>NamingContext</code> + <LI><code>BindingIterator</code> + </UL> + <P> + These two interfaces provide the means to bind/unbind names and object + references, to retrieve bound object references, and + to iterate through a list of bindings. The <code>NamingContext</code> + interface supplies the main functionality for the naming service, and + <code>BindingIterator</code> provides a means of iterating through a list + of name/object reference bindings. + + <H2>Auxiliary Classes</H2> + In order to map an OMG IDL interface to the Java programming language, + the idlj compiler creates Java classes that can be thought of + as auxiliary classes. + Comments for the generated auxiliary classes + used by the interfaces <code>NamingContext</code> and + <code>BindingIterator</code> are included here. + + <H3>Classes Used by <code>NamingContext</code> and + <code>BindingIterator</code></H3> + The following are classes used by + the naming service. (Helper and holder classes, which are + generated for each of the classes listed here, are discussed below.) + + <UL> + <LI><code>public final class <B>NameComponent</B></code> -- + a building block for names. (Names are bound to object references + in a naming context.) + <P>A name is an array of one or more <code>NameComponent</code> objects. + A name with a single <code>NameComponent</code> is called + a <I>simple name</I>; a name with multiple <code>NameComponent</code> + objects is called a <I>compound name</I>. + <P> + A <code><B>NameComponent</B></code> object consists of two fields: + <OL> + <LI><code><B>id</B></code> -- a <code>String</code> used as an identifier + <LI><code><B>kind</B></code> -- a <code>String</code> that can be used for any + descriptive purpose. Its importance is that it + can be used to describe an object without affecting syntax. + The C programming language, for example, uses the the syntactic convention + of appending the extension ".c" to a file name to indicate that it is + a source code file. In a <code>NameComponent</code> object, + the <code>kind</code> field can be used to describe the type of object + rather than a file extension or some other syntactic convention. + Examples of the value of the <code>kind</code> field include the strings + <code>"c_source"</code>, <code>"object_code"</code>, + <code>"executable"</code>, + <code>"postscript"</code>, and <code>""</code>. It is not unusual + for the <code>kind</code> field to be the empty string. + </OL> + <P> + In a name, each <code>NameComponent</code> object except the last denotes + a <code>NamingContext</code> object; the last <code>NameComponent</code> + object denotes the bound object reference. + This is similar to a path name, in which the last name is the + file name, and all names before it are directory names. + + <LI><code>public final class <B>Binding</B></code> -- + an object that associates a name with an object reference or a + naming context. + A <code>Binding</code> object has two fields: + <OL> + <LI><code><B>binding_name</B></code> - an array of one or more + <code>NameComponent</code> objects that represents the bound name + <LI><code><B>binding_type</B></code> - a <code>BindingType</code> object + indicating whether the binding is between a name and an object + reference or between a name and a naming context + </OL> + <P> + The interface <code>NamingContext</code> has methods for + binding/unbinding names with object references or naming contexts, + for listing bindings, + and for resolving bindings (given a name, the method + <code>resolve</code> returns the object reference bound to it). + + <LI><code>public final class <B>BindingType</B></code> -- + an object that specifies whether the given <code>Binding</code> + object is a binding between a name and an object reference (that is, + not a naming context) or between a name and a naming context. + <P> + The class<code>BindingType</code> consists of two methods and + four constants. Two of these constants are + <code>BindingType</code> objects, and two are <code>int</code>s. + <P> + The <code>BindingType</code> objects + can be passed to the constructor for the class + <code>Binding</code> or used as parameters or return values. These + <code>BindingType</code> objects are: + <UL> + <LI><code>public static final BindingType <B>nobject</B></code> -- + to indicate that the binding is with an object reference + <LI><code>public static final BindingType <B>ncontext</B></code> -- + to indicate that the binding is with a naming context + </UL> + <P> + The <code>int</code> constants can be supplied to the method + <code>from_int</code> to create <code>BindingType</code> objects, + or they can be return values for the method <code>value</code>. + These constants are: + <UL> + <LI><code>public static final int <B>_nobject</B></code> + <LI><code>public static final int <B>_ncontext</B></code> + </UL> + If the method <code>from_int</code> is supplied with anything other + than <code>_nobject</code> + or <code>_ncontext</code>, it will throw + the exception <code>org.omg.CORBA.BAD_PARAM</code>. + <P>Usage is as follows: + <PRE> + BindingType btObject = from_int(_nobject); + BindingType btContext = from_int(_ncontext); + </PRE> + The variable <code>btObject</code> refers to a <code>BindingType</code> + object initialized to represent a binding with an object reference. + The variable <code>btContext</code> refers to a <code>BindingType</code> + object initialized to represent a binding with a + <code>NamingContex</code> object. + <P> + The method <code>value</code> returns either + <code>_nobject</code> or <code>_ncontext</code>, so + in the following line of code, the variable <code>bt</code> + will contain <code>_nobject</code> or <code>_ncontext</code>: + <PRE> + int bt = BindingType.value(); + </PRE> + </UL> + + <H3>Holder Classes</H3> + + OMG IDL uses OUT and INOUT parameters for returning values from operations. + The mapping to the Java programming language, which does not have OUT + and INOUT parameters, creates a special class for each type, called + a holder class. + An instance of a holder class can be passed to a + Java method as a parameter, and + a value can be assigned to its <code>value</code> field. This allows + it to perform the function of an OUT or INOUT parameter. + <P>The following holder classes are generated for the package + <code>org.omg.CosNaming</code>: + <UL> + <LI><code>NamingContextHolder</code> + <LI><code>BindingIteratorHolder</code> + <LI><code>BindingHolder</code> + <LI><code>BindingListHolder</code> + <LI><code>BindingTypeHolder</code> + <LI><code>NameComponentHolder</code> + <LI><code>NameHolder</code> + </UL> + <P> + Note that in the <code>org.omg.CORBA</code> package, + there is a holder class for each of the basic Java types: + <code>IntHolder</code>, <code>ShortHolder</code>, + <code>StringHolder</code>, and so on. + <P> + Note also that there is a <code>NameHolder</code> class even though + there is no <code>Name</code> class; similarly, there is a + <code>BindingListHolder</code> class even though there is no + <code>BindingList</code> class. This is true because in the OMG IDL + interface, <code>Name</code> and <code>BindingList</code> are + <code>typedef</code>s. There is no mapping from an IDL + <code>typedef</code> to a Java construct, but holder classes + are generated if the <code>typedef</code> is for a sequence or + an array. As mapped to the + Java programming language, <code>Name</code> is an array of + <code>NameComponent</code> objects, and a <code>BindingList</code> + is an array of <code>Binding</code> objects. + + All holder classes have at least two constructors and one field: + <UL> + <LI><code><B>value</B></code> field -- an instance of the type being used as + an OUT or INOUT parameter. For example, the <code>value</code> field of a + <code>NamingContextHolder</code> will be a <code>NamingContext</code> + object. + <LI>default constructor -- a constructor that creates a new holder object + initialized with the default value for the type. For example, a new + <code>BindingHolder</code> object created with the default constructor + will have its <code>value</code> field set to <code>null</code> because + that is the default value for an object. Other defaults are + <code>false</code> for <code>boolean</code>, + <code>0</code> for numeric and char types, and + <code>null</code> for object references. + <LI>constructor from an instance -- a constructor that creates a new + holder object whose <code>value</code> field is + initialized with the instance supplied + </UL> + <P> + A holder class for a user-defined type (a Java class) has three more + methods, but application developers do not use them directly. + + <H3>Helper Classes</H3> + Helper classes, which are generated for all user-defined types + in an OMG IDL interface, supply static methods needed to manipulate + those types. + <P> + There is only one method in a helper class that an + application programmer uses: the + method <code>narrow</code>. Only Java interfaces mapped from IDL + interfaces will have a helper class that includes a <code>narrow</code> + method, so in the <code>CosNaming</code> package, only the classes + <code>NamingContextHelper</code> and <code>BindingIteratorHelper</code> + have a <code>narrow</code> method. + <UL> + <LI><code>public static NamingContext + <B>narrow</B>(org.omg.CORBA.Object obj)</code> -- converts the given + CORBA object to a <code>NamingContext</code> object + <LI><code>public static BindingIterator + <B>narrow</B>(org.omg.CORBA.Object obj)</code> -- converts the given + CORBA object to a <code>BindingIterator</code> object + </UL> +<H2>Package <code>org.omg.CosNaming.NamingContextPackage</code></H2> +This package supplies Helper and Holder classes for the exceptions used +in the package <code>org.omg.CosNaming</code> and also for the class +<code>NotFoundReason</code>, which supplies a reason for the exception +<code>NotFound</code>. +<P> +There are Helper and Holder classes for the following exceptions: +<UL> +<LI><code>AlreadyBound</code> +<LI><code>CannotProceed</code> +<LI><code>InvalidName</code> +<LI><code>NotEmpty</code> +<LI><code>NotFound</code> +</UL> + +<h2>Naming Service Compatibility</h2> + +Sun's implementation of the <code>CosNaming</code> package complies +with the OMG <code>COSNaming</code> specification. In other words, +the APIs in Sun's naming service are implemented according to the +guidelines for a naming service provided by OMG. Therefore, if a +third-party vendor has implemented a naming service that is OMG +compliant, it is possible to switch between Sun's implementation of +<code>CosNaming</code> and the third-party vendor's implementation. +However, it is important to understand that there can be minor +variations in the way different vendors implement the naming service, +such as differences in the exception strings. + +<h3>Instructions for Using a Third Party's Naming Service</h3> +Although we encourage using an ORB and ORB services that are both +from one vendor, it is possible to plug in a third party's +<code>COSNaming</code> implementation with Sun's RMI-IIOP ORB. +Here are the steps to follow: +<OL> + <LI>Create a properties file for the Bootstrap server and give it + two entries. For example, you could call this properties file + <code>/tmp/services</code> and put the following in it: + <code>NameService, <Stringified IOR of the Root Naming Context></code>. + <P> + This associates <code>NameService</code> with the Root Naming + Context of the <code>CosNaming</code> implementation that you + want to use. + <LI>Start the standalone Bootstrap server using the following command: + <pre> + <code> + java -classpath $(CLASSPATH) + com.sun.corba.ee.internal.CosNaming.BootstrapServer -InitialServicesFile + "/tmp/services" [-ORBInitialPort port] + </code> + </pre> + <P> + Note that the square brackets at the end of the command indicate that + specifying a port number is optional. +</OL> +<P> +Now when an application calls the method +<code>org.omg.CORBA.ORB.resolve_initial_references</code>, CORBA +processes will contact the Bootstrap Server to get the Root Naming +Context. + +<h2>Package Specification</h2> + +<ul> + <li>Interoperable Naming Service (<a +href="http://www.omg.org/cgi-bin/doc?ptc/00-08-07">ptc/00-08-07</a>) +</ul> + +<h2>Related Documentation</h2> + +For an overview and examples of how to use the +<code>CosNaming</code> API, please see: +<ul> + <li>{@extLink tnameserv NamingService} +</ul> +<p> +For an overview of Java IDL, please see: +<ul> + <li>{@extLink idl_guides Java IDL developer's home page} +</ul> + +@since JDK1.3 + + + +</body> +</html> + diff --git a/src/java.corba/share/classes/org/omg/Dynamic/package.html b/src/java.corba/share/classes/org/omg/Dynamic/package.html new file mode 100644 index 0000000..345b0a3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/Dynamic/package.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ + +--> + +</head> +<body bgcolor="white"> +<P>This package contains the <code>Dynamic</code> module specified in the OMG Portable +Interceptor specification, +<a href="http://www.omg.org/cgi-bin/doc?ptc/2000-08-06"> +ptc/2000-08-06</a>, section 21.9. Please +refer to that OMG specification for further details. + + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html new file mode 100644 index 0000000..50669f1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- +/* +* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code 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 +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ + +--> + +</head> +<body bgcolor="white"> +<P> + +This package contains classes and exceptions from the <code>DynAnyFactory</code> +interface of the +<code>DynamicAny</code> module +specified in the OMG <em>The Common Object Request Broker: Architecture and +Specification</em>, +<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07"> +formal/99-10-07</a>, section 9.2.2. Please +refer to that OMG specification for further details. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html new file mode 100644 index 0000000..a00125d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html @@ -0,0 +1,54 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + +--> + +</head> +<body bgcolor="white"> +<P>This package contains classes and exceptions from the <code>DynAny</code> + interface of the <code>DynamicAny</code> module +specified in the OMG <em>The Common Object Request Broker: Architecture and +Specification</em>, +<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07"> +formal/99-10-07</a>, section 9.2. Please +refer to that OMG specification for further details. + + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl b/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl new file mode 100644 index 0000000..63e451d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/DynamicAny/DynamicAny.idl @@ -0,0 +1,1280 @@ +/* + * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +// IDL +// File: DynamicAny.idl + +#ifndef _DYNAMIC_ANY_IDL_ +#define _DYNAMIC_ANY_IDL_ + +#pragma prefix "omg.org" +#include <orb.idl> + +/** +* An any can be passed to a program that doesn't have any static information for the +type of the any (code generated for the type by an IDL compiler has not been +compiled with the object implementation). As a result, the object receiving the any +does not have a portable method of using it. +<P>DynAnys enable traversal of the data value associated with an any at +runtime and extraction of the primitive constituents of the data value. This is especially +helpful for writing powerful generic servers (bridges, event channels supporting +filtering). +<P>Similarly, this facility enables the construction of an any at runtime, without having +static knowledge of its type. This is especially helpful for writing generic clients +(bridges, browsers, debuggers, user interface tools). +*/ +module DynamicAny { + /** + * Any values can be dynamically interpreted (traversed) and constructed through DynAny objects. + * A DynAny object is associated with a data value which corresponds to a copy of the value + * inserted into an any. + * <P>A DynAny object may be viewed as an ordered collection of component DynAnys. + * For DynAnys representing a basic type, such as long, or a type without components, + * such as an empty exception, the ordered collection of components is empty. + * Each DynAny object maintains the notion of a current position into its collection + * of component DynAnys. The current position is identified by an index value that runs + * from 0 to n-1, where n is the number of components. + * The special index value -1 indicates a current position that points nowhere. + * For values that cannot have a current position (such as an empty exception), + * the index value is fixed at -1. + * If a DynAny is initialized with a value that has components, the index is initialized to 0. + * After creation of an uninitialized DynAny (that is, a DynAny that has no value but a TypeCode + * that permits components), the current position depends on the type of value represented by + * the DynAny. (The current position is set to 0 or -1, depending on whether the new DynAny + * gets default values for its components.) + * <P>The iteration operations rewind, seek, and next can be used to change the current position + * and the current_component operation returns the component at the current position. + * The component_count operation returns the number of components of a DynAny. + * Collectively, these operations enable iteration over the components of a DynAny, for example, + * to (recursively) examine its contents. + * <P>A constructed DynAny object is a DynAny object associated with a constructed type. + * There is a different interface, inheriting from the DynAny interface, associated with + * each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array, + * exception, and value type). + * <P>A constructed DynAny object exports operations that enable the creation of new DynAny objects, + * each of them associated with a component of the constructed data value. + * As an example, a DynStruct is associated with a struct value. This means that the DynStruct + * may be seen as owning an ordered collection of components, one for each structure member. + * The DynStruct object exports operations that enable the creation of new DynAny objects, + * each of them associated with a member of the struct. + * <P>If a DynAny object has been obtained from another (constructed) DynAny object, + * such as a DynAny representing a structure member that was created from a DynStruct, + * the member DynAny is logically contained in the DynStruct. + * Calling an insert or get operation leaves the current position unchanged. + * Destroying a top-level DynAny object (one that was not obtained as a component of another DynAny) + * also destroys any component DynAny objects obtained from it. + * Destroying a non-top level DynAny object does nothing. + * Invoking operations on a destroyed top-level DynAny or any of its descendants raises OBJECT_NOT_EXIST. + * If the programmer wants to destroy a DynAny object but still wants to manipulate some component + * of the data value associated with it, then he or she should first create a DynAny for the component + * and, after that, make a copy of the created DynAny object. + * <P>The behavior of DynAny objects has been defined in order to enable efficient implementations + * in terms of allocated memory space and speed of access. DynAny objects are intended to be used + * for traversing values extracted from anys or constructing values of anys at runtime. + * Their use for other purposes is not recommended. + * <P>Insert and get operations are necessary to handle basic DynAny objects + * but are also helpful to handle constructed DynAny objects. + * Inserting a basic data type value into a constructed DynAny object + * implies initializing the current component of the constructed data value + * associated with the DynAny object. For example, invoking insert_boolean on a + * DynStruct implies inserting a boolean data value at the current position + * of the associated struct data value. + * A type is consistent for inserting or extracting a value if its TypeCode is equivalent to + * the TypeCode contained in the DynAny or, if the DynAny has components, is equivalent to the TypeCode + * of the DynAny at the current position. + * <P>DynAny and DynAnyFactory objects are intended to be local to the process in which they are + * created and used. This means that references to DynAny and DynAnyFactory objects cannot be exported + * to other processes, or externalized with ORB.object_to_string(). + * If any attempt is made to do so, the offending operation will raise a MARSHAL system exception. + * Since their interfaces are specified in IDL, DynAny objects export operations defined in the standard + * org.omg.CORBA.Object interface. However, any attempt to invoke operations exported through the Object + * interface may raise the standard NO_IMPLEMENT exception. + * An attempt to use a DynAny object with the DII may raise the NO_IMPLEMENT exception. + */ + interface DynAny { + #pragma sun_localservant DynAny "" + exception InvalidValue {}; + exception TypeMismatch {}; + + /** + * Returns the TypeCode associated with this DynAny object. + * A DynAny object is created with a TypeCode value assigned to it. + * This TypeCode value determines the type of the value handled through the DynAny object. + * Note that the TypeCode associated with a DynAny object is initialized at the time the + * DynAny is created and cannot be changed during lifetime of the DynAny object. + * + * @return The TypeCode associated with this DynAny object + */ + CORBA::TypeCode type(); + + /** + * Initializes the value associated with a DynAny object with the value + * associated with another DynAny object. + * The current position of the target DynAny is set to zero for values that have components + * and to -1 for values that do not have components. + * + * @param dyn_any + * @exception TypeMismatch if the type of the passed DynAny is not equivalent to the type of target DynAny + */ + void assign(in DynAny dyn_any) + raises(TypeMismatch); + + /** + * Initializes the value associated with a DynAny object with the value contained in an any. + * The current position of the target DynAny is set to zero for values that have components + * and to -1 for values that do not have components. + * + * @exception TypeMismatch if the type of the passed Any is not equivalent to the type of target DynAny + * @exception InvalidValue if the passed Any does not contain a legal value (such as a null string) + */ + void from_any(in any value) + raises(TypeMismatch, InvalidValue); + + /** + * Creates an any value from a DynAny object. + * A copy of the TypeCode associated with the DynAny object is assigned to the resulting any. + * The value associated with the DynAny object is copied into the any. + * + * @return a new Any object with the same value and TypeCode + */ + any to_any(); + + /** + * Compares two DynAny values for equality. + * Two DynAny values are equal if their TypeCodes are equivalent and, recursively, all component DynAnys + * have equal values. + * The current position of the two DynAnys being compared has no effect on the result of equal. + * + * @return true of the DynAnys are equal, false otherwise + */ + boolean equal(in DynAny dyn_any); + + /** + * Destroys a DynAny object. + * This operation frees any resources used to represent the data value associated with a DynAny object. + * It must be invoked on references obtained from one of the creation operations on the ORB interface + * or on a reference returned by DynAny.copy() to avoid resource leaks. + * Invoking destroy on component DynAny objects (for example, on objects returned by the + * current_component operation) does nothing. + * Destruction of a DynAny object implies destruction of all DynAny objects obtained from it. + * That is, references to components of a destroyed DynAny become invalid. + * Invocations on such references raise OBJECT_NOT_EXIST. + * It is possible to manipulate a component of a DynAny beyond the life time of the DynAny + * from which the component was obtained by making a copy of the component with the copy operation + * before destroying the DynAny from which the component was obtained. + */ + void destroy(); + + /** + * Creates a new DynAny object whose value is a deep copy of the DynAny on which it is invoked. + * The operation is polymorphic, that is, invoking it on one of the types derived from DynAny, + * such as DynStruct, creates the derived type but returns its reference as the DynAny base type. + * + * @return a deep copy of the DynAny object + */ + DynAny copy(); + + /** + * Inserts a boolean value into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_boolean(in boolean value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a byte value into the DynAny. The IDL octet data type is mapped to the Java byte data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_octet(in octet value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a char value into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_char(in char value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a short value into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_short(in short value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a short value into the DynAny. The IDL ushort data type is mapped to the Java short data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_ushort(in unsigned short value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts an integer value into the DynAny. The IDL long data type is mapped to the Java int data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_long(in long value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts an integer value into the DynAny. The IDL ulong data type is mapped to the Java int data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_ulong(in unsigned long value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a float value into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_float(in float value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a double value into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_double(in double value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a string value into the DynAny. + * Both bounded and unbounded strings are inserted using this method. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception InvalidValue if the string inserted is longer than the bound of a bounded string + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_string(in string value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a reference to a CORBA object into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_reference(in Object value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a TypeCode object into the DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_typecode(in CORBA::TypeCode value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a long value into the DynAny. The IDL long long data type is mapped to the Java long data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_longlong(in long long value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a long value into the DynAny. + * The IDL unsigned long long data type is mapped to the Java long data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_ulonglong(in unsigned long long value) + raises(TypeMismatch, InvalidValue); + +// void insert_longdouble(in long double value) +// raises(TypeMismatch, InvalidValue); + + /** + * Inserts a char value into the DynAny. The IDL wchar data type is mapped to the Java char data type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_wchar(in wchar value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a string value into the DynAny. + * Both bounded and unbounded strings are inserted using this method. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception InvalidValue if the string inserted is longer than the bound of a bounded string + */ + void insert_wstring(in wstring value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts an Any value into the Any represented by this DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_any(in any value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts the Any value contained in the parameter DynAny into the Any represented by this DynAny. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_dyn_any(in DynAny value) + raises(TypeMismatch, InvalidValue); + + /** + * Inserts a reference to a Serializable object into this DynAny. + * The IDL ValueBase type is mapped to the Java Serializable type. + * + * @exception InvalidValue if this DynAny has components but has a current position of -1 + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + void insert_val(in ValueBase value) + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the boolean value from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + boolean get_boolean() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the byte value from this DynAny. The IDL octet data type is mapped to the Java byte data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + octet get_octet() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the char value from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + char get_char() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the short value from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + short get_short() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the short value from this DynAny. The IDL ushort data type is mapped to the Java short data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + unsigned short get_ushort() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the integer value from this DynAny. The IDL long data type is mapped to the Java int data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + long get_long() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the integer value from this DynAny. The IDL ulong data type is mapped to the Java int data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + unsigned long get_ulong() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the float value from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + float get_float() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the double value from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + double get_double() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the string value from this DynAny. + * Both bounded and unbounded strings are extracted using this method. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + string get_string() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the reference to a CORBA Object from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + Object get_reference() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the TypeCode object from this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + CORBA::TypeCode get_typecode() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the long value from this DynAny. The IDL long long data type is mapped to the Java long data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + long long get_longlong() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the long value from this DynAny. + * The IDL unsigned long long data type is mapped to the Java long data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + unsigned long long get_ulonglong() + raises(TypeMismatch, InvalidValue); +// long double get_longdouble() +// raises(TypeMismatch, InvalidValue); + + /** + * Extracts the long value from this DynAny. The IDL wchar data type is mapped to the Java char data type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + wchar get_wchar() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the string value from this DynAny. + * Both bounded and unbounded strings are extracted using this method. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + */ + wstring get_wstring() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts an Any value contained in the Any represented by this DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + any get_any() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts the Any value contained in the Any represented by this DynAny and returns it wrapped + * into a new DynAny. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + DynAny get_dyn_any() + raises(TypeMismatch, InvalidValue); + + /** + * Extracts a Serializable object from this DynAny. + * The IDL ValueBase type is mapped to the Java Serializable type. + * + * @exception TypeMismatch if the accessed component in the DynAny is of a type + * that is not equivalent to the requested type. + * @exception TypeMismatch if called on a DynAny whose current component itself has components + * @exception InvalidValue if this DynAny has components but has a current position of -1 + */ + ValueBase get_val() + raises(TypeMismatch, InvalidValue); + + /** + * Sets the current position to index. The current position is indexed 0 to n-1, that is, + * index zero corresponds to the first component. The operation returns true if the resulting + * current position indicates a component of the DynAny and false if index indicates + * a position that does not correspond to a component. + * Calling seek with a negative index is legal. It sets the current position to -1 to indicate + * no component and returns false. Passing a non-negative index value for a DynAny that does not + * have a component at the corresponding position sets the current position to -1 and returns false. + */ + boolean seek(in long index); + + /** + * Is equivalent to seek(0). + */ + void rewind(); + + /** + * Advances the current position to the next component. + * The operation returns true while the resulting current position indicates a component, false otherwise. + * A false return value leaves the current position at -1. + * Invoking next on a DynAny without components leaves the current position at -1 and returns false. + */ + boolean next(); + + /** + * Returns the number of components of a DynAny. + * For a DynAny without components, it returns zero. + * The operation only counts the components at the top level. + * For example, if component_count is invoked on a DynStruct with a single member, + * the return value is 1, irrespective of the type of the member. + * <UL> + * <LI>For sequences, the operation returns the current number of elements. + * <LI>For structures, exceptions, and value types, the operation returns the number of members. + * <LI>For arrays, the operation returns the number of elements. + * <LI>For unions, the operation returns 2 if the discriminator indicates that a named member is active, + * otherwise, it returns 1. + * <LI>For DynFixed and DynEnum, the operation returns zero. + * </UL> + */ + unsigned long component_count(); + + /** + * Returns the DynAny for the component at the current position. + * It does not advance the current position, so repeated calls to current_component + * without an intervening call to rewind, next, or seek return the same component. + * The returned DynAny object reference can be used to get/set the value of the current component. + * If the current component represents a complex type, the returned reference can be narrowed + * based on the TypeCode to get the interface corresponding to the to the complex type. + * Calling current_component on a DynAny that cannot have components, + * such as a DynEnum or an empty exception, raises TypeMismatch. + * Calling current_component on a DynAny whose current position is -1 returns a nil reference. + * The iteration operations, together with current_component, can be used + * to dynamically compose an any value. After creating a dynamic any, such as a DynStruct, + * current_component and next can be used to initialize all the components of the value. + * Once the dynamic value is completely initialized, to_any creates the corresponding any value. + * + * @exception TypeMismatch If called on a DynAny that cannot have components, + * such as a DynEnum or an empty exception + */ + DynAny current_component() + raises(TypeMismatch); + }; + + /** + * DynFixed objects support the manipulation of IDL fixed values. + * Because IDL does not have a generic type that can represent fixed types with arbitrary + * number of digits and arbitrary scale, the operations use the IDL string type. + */ + interface DynFixed : DynAny { + #pragma sun_localservant DynFixed "" + + /** + * Returns the value of a DynFixed. + */ + string get_value(); + + /** + * Sets the value of the DynFixed. + * The val string must contain a fixed string constant in the same format as used for IDL fixed-point literals. + * However, the trailing d or D is optional. The return value is true if val can be represented as the DynFixed + * without loss of precision. If val has more fractional digits than can be represented in the DynFixed, + * fractional digits are truncated and the return value is false. + * + * @exception TypeMismatch If val does not contain a valid fixed-point literal or contains extraneous + * characters other than leading or trailing white space + * @exception InvalidValue If val contains a value whose scale exceeds that of the DynFixed + * or is not initialized + */ + boolean set_value(in string val) + raises(TypeMismatch, InvalidValue); + }; + + /** + * DynEnum objects support the manipulation of IDL enumerated values. + * The current position of a DynEnum is always -1. + */ + interface DynEnum : DynAny { + #pragma sun_localservant DynEnum "" + + /** + * Returns the value of the DynEnum as an IDL identifier. + */ + string get_as_string(); + + /** + * Sets the value of the DynEnum to the enumerated value whose IDL identifier is passed in the value parameter. + * + * @exception InvalidValue If value contains a string that is not a valid IDL identifier + * for the corresponding enumerated type + */ + void set_as_string(in string value) + raises(InvalidValue); + + /** + * Returns the value of the DynEnum as the enumerated value's ordinal value. + * Enumerators have ordinal values 0 to n-1, as they appear from left to right + * in the corresponding IDL definition. + */ + unsigned long get_as_ulong(); + + /** + * Sets the value of the DynEnum as the enumerated value's ordinal value. + * + * @exception InvalidValue If value contains a value that is outside the range of ordinal values + * for the corresponding enumerated type + */ + void set_as_ulong(in unsigned long value) + raises(InvalidValue); + }; + + typedef string FieldName; + + /** + * NameValuePairs associate a name with an Any object. + */ + struct NameValuePair { + /** + * The name associated with the Any. + */ + FieldName id; + /** + * The Any value associated with the name. + */ + any value; + }; + typedef sequence<NameValuePair> NameValuePairSeq; + + /** + * NameDynAnyPairs associate a name with an DynAny object. + */ + struct NameDynAnyPair { + /** + * The name associated with the DynAny. + */ + FieldName id; + /** + * The DynAny value associated with the name. + */ + DynAny value; + }; + typedef sequence<NameDynAnyPair> NameDynAnyPairSeq; + + /** + * DynStruct objects support the manipulation of IDL struct and exception values. + * Members of the exceptions are handled in the same way as members of a struct. + */ + interface DynStruct : DynAny { + #pragma sun_localservant DynStruct "" + + /** + * Returns the name of the member at the current position. + * This operation may return an empty string since the TypeCode of the value being + * manipulated may not contain the names of members. + * + * @exception TypeMismatch if the DynStruct represents an empty exception. + * @exception InvalidValue if the current position does not indicate a member + */ + FieldName current_member_name() + raises(TypeMismatch, InvalidValue); + + /** + * Returns the TCKind associated with the member at the current position. + * + * @exception TypeMismatch if the DynStruct represents an empty exception. + * @exception InvalidValue if the current position does not indicate a member + */ + CORBA::TCKind current_member_kind() + raises(TypeMismatch, InvalidValue); + + /** + * Returns a sequence of NameValuePairs describing the name and the value of each member + * in the struct associated with a DynStruct object. + * The sequence contains members in the same order as the declaration order of members + * as indicated by the DynStruct's TypeCode. The current position is not affected. + * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode + * does not contain member names. + */ + NameValuePairSeq get_members(); + + /** + * Initializes the struct data value associated with a DynStruct object from a sequence of NameValuePairs. + * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise, + * if an empty sequence is passed, the current position is set to -1. + * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification + * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings. + * The operation makes no attempt to assign member values based on member names. + * + * @exception TypeMismatch if the member names supplied in the passed sequence do not match the + * corresponding member name in the DynStruct's TypeCode and they are not empty strings + * @exception InvalidValue if the passed sequence has a number of elements that disagrees + * with the number of members as indicated by the DynStruct's TypeCode + */ + void set_members(in NameValuePairSeq value) + raises(TypeMismatch, InvalidValue); + + /** + * Returns a sequence of NameDynAnyPairs describing the name and the value of each member + * in the struct associated with a DynStruct object. + * The sequence contains members in the same order as the declaration order of members + * as indicated by the DynStruct's TypeCode. The current position is not affected. + * The member names in the returned sequence will be empty strings if the DynStruct's TypeCode + * does not contain member names. + */ + NameDynAnyPairSeq get_members_as_dyn_any(); + + /** + * Initializes the struct data value associated with a DynStruct object from a sequence of NameDynAnyPairs. + * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise, + * if an empty sequence is passed, the current position is set to -1. + * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification + * of the struct as indicated by the DynStruct's TypeCode or they must be empty strings. + * The operation makes no attempt to assign member values based on member names. + * + * @exception TypeMismatch if the member names supplied in the passed sequence do not match the + * corresponding member name in the DynStruct's TypeCode and they are not empty strings + * @exception InvalidValue if the passed sequence has a number of elements that disagrees + * with the number of members as indicated by the DynStruct's TypeCode + */ + void set_members_as_dyn_any(in NameDynAnyPairSeq value) + raises(TypeMismatch, InvalidValue); + }; + + /** + * DynUnion objects support the manipulation of IDL unions. + * A union can have only two valid current positions: + * <UL> + * <LI>zero, which denotes the discriminator + * <LI>one, which denotes the active member + * </UL> + * The component_count value for a union depends on the current discriminator: + * it is 2 for a union whose discriminator indicates a named member, and 1 otherwise. + */ + interface DynUnion : DynAny { + #pragma sun_localservant DynUnion "" + + /** + * Returns the current discriminator value. + */ + DynAny get_discriminator(); + + /** + * Sets the discriminator of the DynUnion to the specified value. + * Setting the discriminator to a value that is consistent with the currently active union member + * does not affect the currently active member. Setting the discriminator to a value that is inconsistent + * with the currently active member deactivates the member and activates the member that is consistent + * with the new discriminator value (if there is a member for that value) by initializing the member + * to its default value. + * Setting the discriminator of a union sets the current position to 0 if the discriminator value + * indicates a non-existent union member (has_no_active_member returns true in this case). + * Otherwise, if the discriminator value indicates a named union member, the current position is set to 1 + * (has_no_active_member returns false and component_count returns 2 in this case). + * + * @exception TypeMismatch if the TypeCode of the parameter is not equivalent to the TypeCode + * of the union's discriminator + */ + void set_discriminator(in DynAny d) + raises(TypeMismatch); + + /** + * Sets the discriminator to a value that is consistent with the value of the default case of a union. + * It sets the current position to zero and causes component_count to return 2. + * + * @exception TypeMismatch if the union does not have an explicit default case + */ + void set_to_default_member() + raises(TypeMismatch); + + /** + * Sets the discriminator to a value that does not correspond to any of the unions case labels. + * It sets the current position to zero and causes component_count to return 1. + * + * @exception TypeMismatch if the union has an explicit default case or if it uses the entire range + * of discriminator values for explicit case labels + */ + void set_to_no_active_member() + raises(TypeMismatch); + + /** + * Returns true if the union has no active member, that is, the unions value consists solely + * of its discriminator because the discriminator has a value that is not listed as an explicit case label. + * Calling this operation on a union that has a default case returns false. + * Calling this operation on a union that uses the entire range of discriminator values + * for explicit case labels returns false. + */ + boolean has_no_active_member(); + + /** + * Returns the TCKind value of the discriminators TypeCode. + */ + CORBA::TCKind discriminator_kind(); + + /** + * Returns the TCKind value of the currently active members TypeCode. + * + * @exception InvalidValue if the union does not have a currently active member + */ + CORBA::TCKind member_kind() + raises(InvalidValue); + + /** + * Returns the currently active member. Note that the returned reference remains valid only + * for as long as the currently active member does not change. Using the returned reference + * beyond the life time of the currently active member raises OBJECT_NOT_EXIST. + * + * @exception InvalidValue if the union has no active member + */ + DynAny member() + raises(InvalidValue); + + /** + * Returns the name of the currently active member. If the unions TypeCode does not contain + * a member name for the currently active member, the operation returns an empty string. + * + * @exception InvalidValue if the union has no active member + */ + FieldName member_name() + raises(InvalidValue); + }; + + typedef sequence<any> AnySeq; + typedef sequence<DynAny> DynAnySeq; + + /** + * DynSequence objects support the manipulation of IDL sequences. + */ + interface DynSequence : DynAny { + #pragma sun_localservant DynSequence "" + + /** + * Returns the current length of the sequence. + */ + unsigned long get_length(); + + /** + * Sets the length of the sequence. + * Increasing the length of a sequence adds new elements at the tail without affecting the values + * of already existing elements. Newly added elements are default-initialized. + * Increasing the length of a sequence sets the current position to the first newly-added element + * if the previous current position was -1. Otherwise, if the previous current position was not -1, + * the current position is not affected. + * Decreasing the length of a sequence removes elements from the tail without affecting the value + * of those elements that remain. The new current position after decreasing the length of a sequence + * is determined as follows: + * <UL> + * <LI>If the length of the sequence is set to zero, the current position is set to -1. + * <LI>If the current position is -1 before decreasing the length, it remains at -1. + * <LI>If the current position indicates a valid element and that element is not removed when the length + * is decreased, the current position remains unaffected. + * <LI>If the current position indicates a valid element and that element is removed, + * the current position is set to -1. + * </UL> + * + * @exception InvalidValue if this is a bounded sequence and len is larger than the bound + */ + void set_length(in unsigned long len) + raises(InvalidValue); + + /** + * Returns the elements of the sequence. + */ + AnySeq get_elements(); + + /** + * Sets the elements of a sequence. + * The length of the DynSequence is set to the length of value. The current position is set to zero + * if value has non-zero length and to -1 if value is a zero-length sequence. + * + * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent + * to the element TypeCode of the DynSequence + * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence + */ + void set_elements(in AnySeq value) + raises(TypeMismatch, InvalidValue); + + /** + * Returns the DynAnys representing the elements of the sequence. + */ + DynAnySeq get_elements_as_dyn_any(); + + /** + * Sets the elements of a sequence using DynAnys. + * The length of the DynSequence is set to the length of value. The current position is set to zero + * if value has non-zero length and to -1 if value is a zero-length sequence. + * + * @exception TypeMismatch if value contains one or more elements whose TypeCode is not equivalent + * to the element TypeCode of the DynSequence + * @exception InvalidValue if the length of value exceeds the bound of a bounded sequence + */ + void set_elements_as_dyn_any(in DynAnySeq value) + raises(TypeMismatch, InvalidValue); + }; + + /** + * DynArray objects support the manipulation of IDL arrays. + * Note that the dimension of the array is contained in the TypeCode which is accessible + * through the type attribute. It can also be obtained by calling the component_count operation. + */ + interface DynArray : DynAny { + #pragma sun_localservant DynArray "" + + /** + * Returns the elements of the DynArray. + */ + AnySeq get_elements(); + + /** + * Sets the DynArray to contain the passed elements. + * + * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode + * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension + */ + void set_elements(in AnySeq value) + raises(TypeMismatch, InvalidValue); + + /** + * Returns the elements of the DynArray as DynAnys. + */ + DynAnySeq get_elements_as_dyn_any(); + + /** + * Sets the DynArray to contain the passed elements. + * + * @exception TypeMismatch if one or more elements have a type that is inconsistent with the DynArrays TypeCode + * @exception InvalidValue if the sequence does not contain the same number of elements as the array dimension + */ + void set_elements_as_dyn_any(in DynAnySeq value) + raises(TypeMismatch, InvalidValue); + }; + + /** + * DynValueCommon provides operations supported by both the DynValue and DynValueBox interfaces. + */ + interface DynValueCommon : DynAny { + /** + * Returns true if the DynValueCommon represents a null value type. + */ + boolean is_null(); + + /** + * Changes the representation of a DynValueCommon to a null value type. + */ + void set_to_null(); + + /** + * Replaces a null value type with a newly constructed value. Its components are initialized + * to default values as in DynAnyFactory.create_dyn_any_from_type_code. + * If the DynValueCommon represents a non-null value type, then this operation has no effect. + */ + void set_to_value(); + }; + + /** + * DynValue objects support the manipulation of IDL non-boxed value types. + * The DynValue interface can represent both null and non-null value types. + * For a DynValue representing a non-null value type, the DynValue's components comprise + * the public and private members of the value type, including those inherited from concrete base value types, + * in the order of definition. A DynValue representing a null value type has no components + * and a current position of -1. + * <P>Warning: Indiscriminantly changing the contents of private value type members can cause the value type + * implementation to break by violating internal constraints. Access to private members is provided to support + * such activities as ORB bridging and debugging and should not be used to arbitrarily violate + * the encapsulation of the value type. + */ + interface DynValue : DynValueCommon { + #pragma sun_localservant DynValue "" + + /** + * Returns the name of the member at the current position. + * This operation may return an empty string since the TypeCode of the value being + * manipulated may not contain the names of members. + * + * @exception TypeMismatch if the DynValue represents a null value type. + * @exception InvalidValue if the current position does not indicate a member + */ + FieldName current_member_name() + raises(TypeMismatch, InvalidValue); + + /** + * Returns the TCKind associated with the member at the current position. + * + * @exception TypeMismatch if the DynValue represents a null value type. + * @exception InvalidValue if the current position does not indicate a member + */ + CORBA::TCKind current_member_kind() + raises(TypeMismatch, InvalidValue); + + /** + * Returns a sequence of NameValuePairs describing the name and the value of each member + * in the value type. + * The sequence contains members in the same order as the declaration order of members + * as indicated by the DynValue's TypeCode. The current position is not affected. + * The member names in the returned sequence will be empty strings if the DynValue's TypeCode + * does not contain member names. + * + * @exception InvalidValue if this object represents a null value type + */ + NameValuePairSeq get_members() + raises(InvalidValue); + + /** + * Initializes the value type's members from a sequence of NameValuePairs. + * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise, + * if an empty sequence is passed, the current position is set to -1. + * A null value type can be initialized to a non-null value type using this method. + * <P>Members must appear in the NameValuePairs in the order in which they appear in the IDL specification + * of the value type as indicated by the DynValue's TypeCode or they must be empty strings. + * The operation makes no attempt to assign member values based on member names. + * + * @exception TypeMismatch if the member names supplied in the passed sequence do not match the + * corresponding member name in the DynValue's TypeCode and they are not empty strings + * @exception InvalidValue if the passed sequence has a number of elements that disagrees + * with the number of members as indicated by the DynValue's TypeCode + */ + void set_members(in NameValuePairSeq value) + raises(TypeMismatch, InvalidValue); + + /** + * Returns a sequence of NameDynAnyPairs describing the name and the value of each member + * in the value type. + * The sequence contains members in the same order as the declaration order of members + * as indicated by the DynValue's TypeCode. The current position is not affected. + * The member names in the returned sequence will be empty strings if the DynValue's TypeCode + * does not contain member names. + * + * @exception InvalidValue if this object represents a null value type + */ + NameDynAnyPairSeq get_members_as_dyn_any() + raises(InvalidValue); + + /** + * Initializes the value type's members from a sequence of NameDynAnyPairs. + * The operation sets the current position to zero if the passed sequences has non-zero length. Otherwise, + * if an empty sequence is passed, the current position is set to -1. + * A null value type can be initialized to a non-null value type using this method. + * <P>Members must appear in the NameDynAnyPairs in the order in which they appear in the IDL specification + * of the value type as indicated by the DynValue's TypeCode or they must be empty strings. + * The operation makes no attempt to assign member values based on member names. + * + * @exception TypeMismatch if the member names supplied in the passed sequence do not match the + * corresponding member name in the DynValue's TypeCode and they are not empty strings + * @exception InvalidValue if the passed sequence has a number of elements that disagrees + * with the number of members as indicated by the DynValue's TypeCode + */ + void set_members_as_dyn_any(in NameDynAnyPairSeq value) + raises(TypeMismatch, InvalidValue); + }; + + /** + * DynValueBox objects support the manipulation of IDL boxed value types. + * The DynValueBox interface can represent both null and non-null value types. + * For a DynValueBox representing a non-null value type, the DynValueBox has a single component + * of the boxed type. A DynValueBox representing a null value type has no components + * and a current position of -1. + */ + interface DynValueBox : DynValueCommon { + + /** + * Returns the boxed value as an Any. + * + * @exception InvalidValue if this object represents a null value box type + */ + any get_boxed_value() + raises(InvalidValue); + + /** + * Replaces the boxed value with the specified value. + * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value. + * + * @exception TypeMismatch if this object represents a non-null value box type and the type + * of the parameter is not matching the current boxed value type. + */ + void set_boxed_value(in any boxed) + raises(TypeMismatch); + + /** + * Returns the boxed value as a DynAny. + * + * @exception InvalidValue if this object represents a null value box type + */ + DynAny get_boxed_value_as_dyn_any() + raises(InvalidValue); + + /** + * Replaces the boxed value with the value contained in the parameter. + * If the DynBoxedValue represents a null valuetype, it is converted to a non-null value. + * + * @exception TypeMismatch if this object represents a non-null value box type and the type + * of the parameter is not matching the current boxed value type. + */ + void set_boxed_value_as_dyn_any(in DynAny boxed) + raises(TypeMismatch); + }; + + /** + * DynAny objects can be created by invoking operations on the DynAnyFactory object. + * Generally there are only two ways to create a DynAny object: + * <UL> + * <LI>invoking an operation on an existing DynAny object + * <LI>invoking an operation on a DynAnyFactory object + * </UL> + * A constructed DynAny object supports operations that enable the creation of new DynAny + * objects encapsulating access to the value of some constituent. + * DynAny objects also support the copy operation for creating new DynAny objects. + * A reference to the DynAnyFactory object is obtained by calling ORB.resolve_initial_references() + * with the identifier parameter set to the string constant "DynAnyFactory". + * <P>Dynamic interpretation of an any usually involves creating a DynAny object using create_dyn_any() + * as the first step. Depending on the type of the any, the resulting DynAny object reference can be narrowed + * to a DynFixed, DynStruct, DynSequence, DynArray, DynUnion, DynEnum, or DynValue object reference. + * <P>Dynamic creation of an any involves creating a DynAny object using create_dyn_any_from_type_code(), + * passing the TypeCode associated with the value to be created. The returned reference is narrowed to one of + * the complex types, such as DynStruct, if appropriate. Then, the value can be initialized by means of + * invoking operations on the resulting object. Finally, the to_any operation can be invoked + * to create an any value from the constructed DynAny. + */ + interface DynAnyFactory { + #pragma sun_localservant DynAnyFactory "" + exception InconsistentTypeCode {}; + + /** + * Creates a new DynAny object from an any value. + * A copy of the TypeCode associated with the any value is assigned to the resulting DynAny object. + * The value associated with the DynAny object is a copy of the value in the original any. + * The current position of the created DynAny is set to zero if the passed value has components, + * to -1 otherwise + * + * @exception InconsistentTypeCode if value has a TypeCode with a TCKind of tk_Principal, + * tk_native, or tk_abstract_interface + */ + DynAny create_dyn_any(in any value) + raises(InconsistentTypeCode); + + /** + * Creates a DynAny from a TypeCode. Depending on the TypeCode, the created object may be of type DynAny, + * or one of its derived types, such as DynStruct. The returned reference can be narrowed to the derived type. + * In all cases, a DynAny constructed from a TypeCode has an initial default value. + * The default values of basic types are: + * <UL> + * <LI>false for boolean + * <LI>zero for numeric types + * <LI>zero for types octet, char, and wchar + * <LI>the empty string for string and wstring + * <LI>null for object references + * <LI>a type code with a TCKind value of tk_null for type codes + * <LI>for any values, an any containing a type code with a TCKind value of tk_null type and no value + * </UL> + * For complex types, creation of the corresponding DynAny assigns a default value as follows: + * <UL> + * <LI>For DynSequence it sets the current position to -1 and creates an empty sequence. + * <LI>For DynEnum it sets the current position to -1 and sets the value of the enumerator + * to the first enumerator value indicated by the TypeCode. + * <LI>For DynFixed it sets the current position to -1 and sets the value zero. + * <LI>For DynStruct it sets the current position to -1 for empty exceptions + * and to zero for all other TypeCodes. The members (if any) are (recursively) initialized + * to their default values. + * <LI>For DynArray sets the current position to zero and (recursively) initializes elements + * to their default value. + * <LI>For DynUnion sets the current position to zero. The discriminator value is set + * to a value consistent with the first named member of the union. That member is activated and (recursively) + * initialized to its default value. + * <LI>For DynValue and DynValueBox it initializes to a null value. + * </UL> + */ + DynAny create_dyn_any_from_type_code(in CORBA::TypeCode type) + raises(InconsistentTypeCode); + }; +}; // module DynamicAny + +#endif // _DYNAMIC_ANY_IDL_ diff --git a/src/java.corba/share/classes/org/omg/DynamicAny/package.html b/src/java.corba/share/classes/org/omg/DynamicAny/package.html new file mode 100644 index 0000000..81c39b3 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/DynamicAny/package.html @@ -0,0 +1,211 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + +--> + +</head> +<body bgcolor="white"> +<P>Provides classes and interfaces that enable traversal of the data value + associated with an <code>any</code> at +runtime, and extraction of the primitive constituents of the data value. + + +<P>An <code>any</code> can be passed to a program that doesn't have any static information +for the type of the <code>any</code> (code generated for the type by an IDL compiler has not +been compiled with the object implementation). As a result, the object receiving the +<code>any</code> does not have a portable method of using it. + +<P><code>DynAny</code>s enable traversal of the data value associated with an +<code>any</code> at runtime, and extraction of the primitive constituents of the data value. +This is especially helpful for writing powerful generic servers (bridges, event channels +supporting filtering). Similarly, this facility enables the construction of an +<code>any</code> at runtime, without having static knowledge of its type. This is especially +helpful for writing generic clients (bridges, browsers, debuggers, user interface tools). + +<P><code>Any</code> values can be dynamically interpreted (traversed) and constructed through +<code>DynAny</code> objects. A <code>DynAny</code> object is associated with a data +value which corresponds to a copy of the value inserted into an <code>Any</code>. A +<code>DynAny</code> object may be viewed as an ordered collection of component +<code>DynAny</code>s. For <code>DynAny</code>s representing a basic type, such as <code>long</code>, +or a type without components, such as an empty exception, the ordered collection of +components is empty. + +<P>Each <code>DynAny</code> object maintains the notion of a current position into its collection +of component <code>DynAny</code>s. The current position is identified by an index value that runs +from 0 to n-1, where <em>n</em> is the number of components. The special index value -1 +indicates a current position that points nowhere. + For values that cannot have a current position (such as an empty exception), + the index value is fixed at -1. + If a <code>DynAny</code> is initialized with a value that has components, the index is +initialized to 0. + After creation of an uninitialized <code>DynAny</code> (that is, a <code>DynAny</code> that +has no value but a <code>TypeCode</code> + that permits components), the current position depends on the type of value represented by + the <code>DynAny</code>. (The current position is set to 0 or -1, depending on whether the +new <code>DynAny</code> + gets default values for its components.) + + +<P>The iteration operations <code>rewind</code>, <code>seek</code>, and <code>next</code> +can be used to change the current position + and the <code>current_component</code> operation returns the component at the current +position. + The <code>component_count</code> operation returns the number of components of a +<code>DynAny</code>. + Collectively, these operations enable iteration over the components of a +<code>DynAny</code>, for example, + to (recursively) examine its contents. + + + <P>A constructed <code>DynAny</code> object is a <code>DynAny</code> object associated with +a constructed type. + There is a different interface, inheriting from the <code>DynAny</code> interface, +associated with + each kind of constructed type in IDL (fixed, enum, struct, sequence, union, array, + exception, and value type). A constructed <code>DynAny</code> object exports operations +that enable the creation of new <code>DynAny</code> objects, + each of them associated with a component of the constructed data value. + As an example, a <code>DynStruct</code> is associated with a <code>struct</code> value. This +means that the <code>DynStruct</code> + may be seen as owning an ordered collection of components, one for each structure member. + The <code>DynStruct</code> object exports operations that enable the creation of new +<code>DynAny</code> objects, + each of them associated with a member of the <code>struct</code>. + + +<P>If a <code>DynAny</code> object has been obtained from another (constructed) +<code>DynAny</code> object, + such as a <code>DynAny</code> representing a structure member that was created from a +<code>DynStruct</code>, + the member <code>DynAny</code> is logically contained in the <code>DynStruct</code>. + Calling an <code>insert</code> or <code>get</code> operation leaves the current position +unchanged. + Destroying a top-level <code>DynAny</code> object (one that was not obtained as a component +of another <code>DynAny</code>) + also destroys any component <code>DynAny</code> objects obtained from it. + Destroying a non-top level <code>DynAny</code> object does nothing. + Invoking operations on a destroyed top-level <code>DynAny</code> or any of its descendants +raises OBJECT_NOT_EXIST. + If the programmer wants to destroy a <code>DynAny</code> object but still wants to +manipulate some component + of the data value associated with it, then he or she should first create a +<code>DynAny</code> for the component + and, after that, make a copy of the created <code>DynAny</code> object. + + +<P>The behavior of <code>DynAny</code> objects has been defined in order to enable efficient +implementations +in terms of allocated memory space and speed of access. <code>DynAny</code> objects are +intended to be used +for traversing values extracted from <code>any</code>s or constructing values of +<code>any</code>s at runtime. +Their use for other purposes is not recommended. + + + + <H2>Handling DynAny objects</H2> + +<P><code>Insert</code> and <code>get</code> operations are necessary to handle basic +<code>DynAny</code> objects + but are also helpful to handle constructed <code>DynAny</code> objects. + Inserting a basic data type value into a constructed <code>DynAny</code> object + implies initializing the current component of the constructed data value + associated with the <code>DynAny</code> object. For example, invoking +<code>insert_boolean</code> on a + <code>DynStruct</code> implies inserting a <code>boolean</code> data value at the current +position + of the associated <code>struct</code> data value. + A type is consistent for inserting or extracting a value if its <code>TypeCode</code> is +equivalent to + the <code>TypeCode</code> contained in the <code>DynAny</code> or, if the +<code>DynAny</code> has components, is equivalent to the <code>TypeCode</code> + of the <code>DynAny</code> at the current position. + + <P>Basic operations include: + <UL> + <LI>insert_boolean, get_boolean + <LI>insert_char, get_char + <LI>insert_short, get_short + <LI>insert_ushort, get_ushort + <LI>insert_long, get_long + <LI>insert_ulong, get_ulong + <LI>insert_double, get_double + <LI>insert_string, get_string + <LI>insert_reference, get_reference + <LI>insert_typecode, get_typecode + <LI>insert_longlong, get_longlong + <LI>insert_ulonglong, get_ulonglong + <LI>insert_longdouble, get_longdouble + <LI>insert_wchar, get_wchar + <LI>insert_wstring, get_wstring + <LI>insert_any, get_any + <LI>insert_dyn_any, get_dyn_any + <LI>insert_val, get_val + <LI>insert_octet, get_octet + <LI>insert_float, get_float + <LI>get_value + <LI>get_as_string + <LI>get_as_ulong + <LI>get_members + <LI>get_members_as_dyn_any + <LI>get_discriminator + <LI>get_length + <LI>get_elements + <LI>get_elements_as_dyn_any + <LI>get_boxed_value + <LI>get_boxed_value_as_dyn_any + </UL> + + + <P><code>DynAny</code> and <code>DynAnyFactory</code> objects are intended to be local to +the process in which they are + created and used. This means that references to <code>DynAny</code> and +<code>DynAnyFactory</code> objects cannot be exported + to other processes, or externalized with <code>ORB.object_to_string()</code>. + If any attempt is made to do so, the offending operation will raise a MARSHAL system +exception. + Since their interfaces are specified in IDL, <code>DynAny</code> objects export operations +defined in the standard + <code>org.omg.CORBA.Object</code> interface. However, any attempt to invoke operations +exported through the <code>Object</code> + interface may raise the standard NO_IMPLEMENT exception. + An attempt to use a <code>DynAny</code> object with the DII may raise the NO_IMPLEMENT +exception. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html b/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html new file mode 100644 index 0000000..6962336 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/IOP/CodecFactoryPackage/package.html @@ -0,0 +1,50 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + +Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + + +--> + +</head> +<body bgcolor="white"> +<P>This package contains the exceptions +specified in the IOP::CodeFactory interface (as part of the Portable + Interceptors spec). + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html b/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html new file mode 100644 index 0000000..d86dfb1 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/IOP/CodecPackage/package.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + +Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + + +--> + +</head> +<body bgcolor="white"> +<P>This package is generated from the IOP::Codec IDL interface +definition. It contains the Java representations of the IDL exceptions +specified in IOP::Codec (as part of the Portable Interceptors +specification). + Please +refer to that OMG specification for further details. + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/IOP/package.html b/src/java.corba/share/classes/org/omg/IOP/package.html new file mode 100644 index 0000000..dce0d26 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/IOP/package.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + +Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +--> + +</head> +<body bgcolor="white"> +<P>This package contains the <code>IOP</code> module specified in the OMG document +<em>The Common +Object Request Broker: Architecture and Specification</em>, +<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07"> +formal/99-10-07</a>, section 13.6. Please +refer to that OMG specification for further details. + +<P>Please note that we do not provide all parts of the <code>IOP</code> module from +the specification. We only provide those parts that are referenced as +return values or parameter types in public APIs, most notably, +Portable Interceptors. + + + + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/Messaging/package.html b/src/java.corba/share/classes/org/omg/Messaging/package.html new file mode 100644 index 0000000..05ead25 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/Messaging/package.html @@ -0,0 +1,55 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + +Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +--> + +</head> +<body bgcolor="white"> +<P>This package contains the <code>Messaging</code> module specified in the OMG CORBA +Messaging specification, +<a href="http://www.omg.org/cgi-bin/doc?formal/99-10-07"> +formal/99-10-07</a>. Please refer to that OMG +specification for further details. + +<P>Please note that we do not provide all parts of the <code>Messaging</code> module from +the specification. We only provide those parts that are referenced as +return values or parameter types in public APIs, most notably, +Portable Interceptors. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl new file mode 100644 index 0000000..dd12081 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/CORBAX.idl @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _CORBAX_IDL_ +#define _CORBAX_IDL_ + +#pragma prefix "omg.org" + +module CORBA { + /** + * Enumeration of parameter modes for Parameter. Possible vaues: + * <ul> + * <li>PARAM_IN - Represents an "in" parameter.</li> + * <li>PARAM_OUT - Represents an "out" parameter.</li> + * <li>PARAM_INOUT - Represents an "inout" parameter.</li> + * </ul> + */ + enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT}; + + /** An array of Strings */ + typedef sequence <string> StringSeq; + + /** An array of WStrings */ + typedef sequence <wstring> WStringSeq; + + /** A byte array */ + typedef sequence <octet> OctetSeq; + + /** Repository ID, represented as a String */ + typedef string RepositoryId; + + /** + * Encapsulates a reason a Policy may be invalid. + * + * @see PolicyError + */ + typedef short PolicyErrorCode; + + /** + * Thrown to indicate problems with parameter values passed to the + * <code>ORB.create_policy</code> operation. + */ + exception PolicyError { PolicyErrorCode reason; }; +}; + + +#endif // _CORBAX_IDL_ diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl new file mode 100644 index 0000000..3dc071d --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/IOP.idl @@ -0,0 +1,617 @@ +/* + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _IOP_IDL_ +#define _IOP_IDL_ + +#include "CORBAX.idl" + +#pragma prefix "omg.org" + +#ifndef CORBA3 +#define local +#endif + +module IOP { + // + // Standard Protocol Profile tag values + // + /** Profile ID */ + typedef unsigned long ProfileId; + + /** + * Identifies profiles that + * support the Internet Inter-ORB Protocol. The <code>ProfileBody</code> + * of this profile contains a CDR encapsulation of a structure + * containing addressing and object identification information used by + * IIOP. Version 1.1 of the <code>TAG_INTERNET_IOP</code> profile + * also includes an array of TaggedComponent objects that can + * contain additional information supporting optional IIOP features, + * ORB services such as security, and future protocol extensions. + * <p> + * Protocols other than IIOP (such as ESIOPs and other GIOPs) can share + * profile information (such as object identity or security + * information) with IIOP by encoding their additional profile information + * as components in the <code>TAG_INTERNET_IOP</code> profile. All + * <code>TAG_INTERNET_IOP</code> profiles support IIOP, regardless of + * whether they also support additional protocols. Interoperable + * ORBs are not required to create or understand any other profile, + * nor are they required to create or understand any of the components + * defined for other protocols that might share the + * <code>TAG_INTERNET_IOP</code> profile with IIOP. + * <p> + * The <code>profile_data</code> for the <code>TAG_INTERNET_IOP</code> + * profile is a CDR encapsulation of the <code>IIOP.ProfileBody_1_1</code> + * type. + */ + const ProfileId TAG_INTERNET_IOP = 0; + + /** + * Indicates that the value encapsulated is of type + * <code>MultipleComponentProfile</code>. In this case, the profile + * consists of a list of protocol components, the use of which must + * be specified by the protocol using this profile. This profile may + * be used to carry IOR components. + * <p> + * The <code>profile_data</code> for the + * <code>TAG_MULTIPLE_COMPONENTS</code> profile is a CDR encapsulation + * of the <code>MultipleComponentProfile</code> type shown above. + */ + const ProfileId TAG_MULTIPLE_COMPONENTS = 1; + + /** + * Object references have at least one tagged profile. Each profile + * supports one or more protocols and encapsulates all the basic + * information the protocols it supports need to identify an object. + * Any single profile holds enough information to drive a complete + * invocation using any of the protocols it supports; the content + * and structure of those profile entries are wholly specified by + * these protocols. + */ + struct TaggedProfile { + /** The tag, represented as a profile id. */ + ProfileId tag; + + /** The associated profile data. */ + sequence <octet> profile_data; + }; + + /** + * Captures information about a object references, such as whether the + * object is null, what type it is, what protocols are supported, and what + * ORB services are available. + * <p> + * This data structure need not be used internally to any given ORB, + * and is not intended to be visible to application-level ORB programmers. + * It should be used only when crossing object reference domain + * boundaries, within bridges. + * <p> + * This data structure is designed to be efficient in typical + * single-protocol configurations, while not penalizing multiprotocol ones. + * <p> + * Object references have at least one tagged profile. Each profile + * supports one or more protocols and encapsulates all the basic + * information the protocols it supports need to identify an object. + * Any single profile holds enough information to drive a complete + * invocation using any of the protocols it supports; the content + * and structure of those profile entries are wholly specified by + * these protocols. A bridge between two domains may need to know the + * detailed content of the profile for those domains' profiles, + * depending on the technique it uses to bridge the domains. + * <p> + * Each profile has a unique numeric tag, assigned by the OMG. + * Profile tags in the range 0x80000000 through 0xffffffff are reserved + * for future use, and are not currently available for assignment. + * <p> + * Null object references are indicated by an empty set of profiles, + * and by a "Null" type ID (a string which contains only a single + * terminating character). A Null <code>TypeID</code> is the only + * mechanism that can be used to represent the type + * <code>CORBA.Object</code>. Type IDs may only be "Null" in any message, + * requiring the client to use existing knowledge or to consult the + * object, to determine interface types supported. The type ID + * is a Repository ID identifying the interface type, and is provided + * to allow ORBs to preserve strong typing. This identifier is agreed + * on within the bridge and, for reasons outside the scope of the + * interoperability specification, needs to have a much broader scope to + * address various problems in system evolution and maintenance. + * Type IDs support detection of type equivalence, and in conjunction + * with an Interface Repository, allow processes to reason about the + * relationship of the type of the object referred to and any other type. + * <p> + * The type ID, if provided by the server, indicates the most derived + * type that the server wishes to publish, at the time the reference + * is generated. The object's actual most derived type may later change + * to a more derived type. Therefore, the type ID in the IOR can only + * be interpreted by the client as a hint that the object supports at + * least the indicated interface. The client can succeed in narrowing + * the reference to the indicated interface, or to one of its base + * interfaces, based solely on the type ID in the IOR, but must not fail + * to narrow the reference without consulting the object via the + * "_is_a" or "_get_interface" pseudo-operations. + */ + struct IOR { + /** The type id, represented as a String. */ + string type_id; + + /** + * An array of tagged profiles associated with this + * object reference. + */ + sequence <TaggedProfile> profiles; + }; + + /** + * Standard way of representing multicomponent profiles. + * This would be encapsulated in a TaggedProfile. + */ + typedef unsigned long ComponentId; + + /** + * <code>TaggedComponents</code> contained in + * <code>TAG_INTERNET_IOP</code> and + * <code>TAG_MULTIPLE_COMPONENTS</code> profiles are identified by + * unique numeric tags using a namespace distinct form that is used for + * profile tags. Component tags are assigned by the OMG. + * <p> + * Specifications of components must include the following information: + * <ul> + * <li><i>Component ID</i>: The compound tag that is obtained + * from OMG.</li> + * <li><i>Structure and encoding</i>: The syntax of the component + * data and the encoding rules. If the component value is + * encoded as a CDR encapsulation, the IDL type that is + * encapsulated and the GIOP version which is used for encoding + * the value, if different than GIOP 1.0, must be specified as + * part of the component definition.</li> + * <li><i>Semantics</i>: How the component data is intended to be + * used.</li> + * <li><i>Protocols</i>: The protocol for which the component is + * defined, and whether it is intended that the component be + * usable by other protocols.</li> + * <li><i>At most once</i>: whether more than one instance of this + * component can be included in a profile.</li> + * </ul> + * Specification of protocols must describe how the components affect + * the protocol. The following should be specified in any protocol + * definition for each <code>TaggedComponent</code> that the protocol uses: + * <ul> + * <li><i>Mandatory presence</i>: Whether inclusion of the component + * in profiles supporting the protocol is required (MANDATORY + * PRESENCE) or not required (OPTIONAL PRESENCE).</li> + * <li><i>Droppable</i>: For optional presence component, whether + * component, if present, must be retained or may be dropped.</li> + * </ul> + */ + struct TaggedComponent { + /** The tag, represented as a component id. */ + ComponentId tag; + + /** The component data associated with the component id. */ + sequence <octet> component_data; + }; + + /** + * It is often useful in the real world to be able to identify the + * particular kind of ORB an object reference is coming from, to work + * around problems with that particular ORB, or exploit shared + * efficiencies. + * <p> + * The <code>TAG_ORB_TYPE</code> component has an associated value of + * type unsigned long (Java long), encoded as a CDR encapsulation, + * designating an ORB type ID allocated by the OMG for the ORB type of the + * originating ORB. Anyone may register any ORB types by submitting + * a short (one-paragraph) description of the ORB type to the OMG, + * and will receive a new ORB type ID in return. A list of ORB type + * descriptions and values will be made available on the OMG web server. + * <p> + * The <code>TAG_ORB_TYPE</code> component can appear at most once in + * any IOR profile. For profiles supporting IIOP 1.1 or greater, it + * is optionally present. + */ + const ComponentId TAG_ORB_TYPE = 0 ; + + /** + * The code set component of the IOR multi-component profile structure + * contains: + * <ul> + * <li>server's native char code set and conversion code sets, and</li> + * <li>server's native wchar code set and conversion code sets.</li> + * </ul> + * Both char and wchar conversion code sets are listed in order of + * preference. + */ + const ComponentId TAG_CODE_SETS = 1 ; + + /** + * A profile component containing the sequence of QoS policies exported + * with the object reference by an object adapter. + */ + const ComponentId TAG_POLICIES = 2 ; + + /** + * In cases where the same object key is used for more than one + * internet location, the following standard IOR Component is defined + * for support in IIOP version 1.2. + * <p> + * The <code>TAG_ALTERNATE_IIOP_ADDRESS</code> component has an + * associated value of type: + * <pre> + * <code> + * struct { + * string HostID, + * short Port + * }; + * </code> + * </pre> + * encoded as a CDR encapsulation. + * <p> + * Zero or more instances of the <code>TAG_ALTERNATE_IIOP_ADDRESS</code> + * component type may be included in a version 1.2 + * <code>TAG_INTERNET_IOP</code> Profile. Each of these alternative + * addresses may be used by the client orb, in addition to the host + * and port address expressed in the body of the Profile. In cases + * where one or more <code>TAG_ALTERNATE_IIOP_ADDRESS</code> components + * are present in a <code>TAG_INTERNET_IOP</code> Profile, no order of + * use is prescribed by Version 1.2 of IIOP. + */ + const ComponentId TAG_ALTERNATE_IIOP_ADDRESS = 3 ; + + /** + * Class downloading is supported for stubs, ties, values, and + * value helpers. The specification allows transmission of codebase + * information on the wire for stubs and ties, and enables usage of + * pre-existing ClassLoaders when relevant. + * <p> + * For values and value helpers, the codebase is transmitted after the + * value tag. For stubs and ties, the codebase is transmitted as + * the TaggedComponent <code>TAG_JAVA_CODEBASE</code> in the IOR + * profile, where the <code>component_data</code> is a CDR encapsulation + * of the codebase written as an IDL string. The codebase is a + * space-separated list of one or more URLs. + */ + const ComponentId TAG_JAVA_CODEBASE = 25 ; + + /** + * RMI-IIOP has multiple stream format versions. A server + * can specify its maximum version by including the + * TAG_RMI_CUSTOM_MAX_STREAM_FORMAT tagged component or + * rely on the default of version 1 for GIOP 1.2 and less + * and version 2 for GIOP 1.3 and higher. + * + * See Java to IDL ptc/02-01-12 1.4.11. + */ + const ComponentId TAG_RMI_CUSTOM_MAX_STREAM_FORMAT = 38 ; + + /** An array of tagged components, forming a multiple component profile. */ + typedef sequence <TaggedComponent> MultipleComponentProfile; + + /** A service id, represented as an int */ + typedef unsigned long ServiceId; + + /** + * Service-specific information to be passed implicitly with requests + * and replies. Service contexts are composed of service ids and + * associated data. + */ + struct ServiceContext { + /** The service context id */ + ServiceId context_id; + + /** The data associated with this service context */ + sequence <octet> context_data; + }; + + /** An array of service contexts, forming a service context list. */ + typedef sequence <ServiceContext>ServiceContextList; + + /** + * Identifies a CDR encapsulation of the + * <code>CosTSInteroperation.PropogationContext</code> defined in + * <i>CORBAservices: Common Object Services Specifications.</i> + */ + const ServiceId TransactionService = 0; + + /** + * Identifies a CDR encapsulation of the + * <code>CONV_FRAME.CodeSetContext</code> defined in + * Section 13.10.2.5, "GIOP Code Set Service Context," on page 13-43. + */ + const ServiceId CodeSets = 1; + + /** + * Identifies a CDR encapsulation of the RMICustomMaxStreamFormat + * service context which contains a single byte specifying + * the client's maximum RMI-IIOP stream format version. + * + * See Java to IDL ptc/02-01-12 1.4.12. + */ + const ServiceId RMICustomMaxStreamFormat = 17 ; + + /** + * DCOM-CORBA Interworking uses three service contexts as defined in + * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA + * Systems" chapter. + * <p> + * <code>ChainBypassCheck</code> carries a CDR encapsulation of the + * <code>struct CosBridging.ChainBypassCheck</code>. This is carried + * only in a Request message as described in Section 20.9.1, "CORBA + * Chain Bypass," on page 20-19. + */ + const ServiceId ChainBypassCheck = 2; + + /** + * DCOM-CORBA Interworking uses three service contexts as defined in + * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA + * Systems" chapter. + * <p> + * <code>ChainBypassInfo</code> carries a CDR encapsulation of the + * <code>struct CosBridging.ChainBypassInfo</code>. This is carried + * only in a Reply message as described in Section 20.9.1, "CORBA Chain + * Bypass," on page 20-19. + */ + const ServiceId ChainBypassInfo = 3; + + /** + * DCOM-CORBA Interworking uses three service contexts as defined in + * "DCOM-CORBA Interworking" in the "Interoperability with non-CORBA + * Systems" chapter. + * <p> + * <code>LogicalThreadId</code>, carries a CDR encapsulation of + * the <code>struct CosBridging.LogicalThreadId</code> as described + * in Section 20.10, "Thread Identification," on page 20-21. + */ + const ServiceId LogicalThreadId = 4; + + /** + * Identifies a CDR encapsulation of the + * <code>IIOP.BiDirIIOPServiceContext</code> defined in Section 15.8, + * "Bi-Directional GIOP," on page 15-55. + */ + const ServiceId BI_DIR_IIOP = 5; + + /** + * Identifies a CDR encapsulation of the IOR of the + * <code>SendingContext.RunTime</code> object (see Section 5.6, "Access + * to the Sending Context Run Time," on page 5-15). + */ + const ServiceId SendingContextRunTime = 6; + + /** + * For information on <code>INVOCATION_POLICIES</code> refer to the + * Asynchronous Messaging specification - orbos/98-05-05. + */ + const ServiceId INVOCATION_POLICIES = 7; + + /** + * For information on <code>FORWARDED_IDENTITY</code> refer to the + * Firewall specification - orbos/98-05-04. + */ + const ServiceId FORWARDED_IDENTITY = 8; + + /** + * Identifies a CDR encapsulation of a marshaled instance of a + * java.lang.Throwable or one of its subclasses as described in Java + * to IDL Language Mapping, Section 1.4.8.1, "Mapping of + * UnknownExceptionInfo Service Context," on page 1-32. + */ + const ServiceId UnknownExceptionInfo = 9; + + /** + * CORBA formal/02-06-01: 13.7.1: + * ExceptionDetailMessage identifies a CDR encapsulation of a wstring, + * encoded using GIOP 1.2 with a TCS-W of UTF-16. This service context + * may be sent on Reply messages with a reply_status of SYSTEM_EXCEPTION + * or USER_EXCEPTION. The usage of this service context is defined + * by language mappings. <br> <br> + * + * IDL/Java: ptc/02-01-22: 1.15.2: + * When a System Exception is marshaled, its GIOP Reply message shall + * include an associated ExceptionDetailMessage service context. The + * callee's stack trace is often very valuable debugging information but + * may contain sensitive or unwanted information. The wstring within the + * service context will therefore contain additional information relating + * to the exception, for example the result of calling either + * printStackTrace(PrintWriter) or getMessage() on the exception. When + * unmarshaling a System Exception on the client side, the wstring from + * any ExceptionDetailMessage service context shall become the Java error + * message in the unmarshaled exception object. + */ + const ServiceId ExceptionDetailMessage = 14; + + + // BEGIN part which lived in Interceptors.idl. + + /** + * An array of <code>TaggedComponent</code> objects. + */ + typedef sequence<IOP::TaggedComponent> TaggedComponentSeq; + + /** + * The formats of IOR components and service context data used by ORB + * services are often defined as CDR encapsulations encoding instances + * of IDL defined data types. The <code>Codec</code> provides a mechanism + * to transfer these components between their IDL data types and their CDR + * encapsulation representations. + * <p> + * A <code>Codec</code> is obtained from the <code>CodecFactory</code>. + * The <code>CodecFactory</code> is obtained through a call to + * <code>ORB.resolve_initial_references( "CodecFactory" )</code>. + */ + local interface Codec { + + /** + * This exception is thrown by <code>Codec.encode</code> or + * <code>Codec.encode_value</code> when the type is invalid for the + * encoding. For example, this exception is thrown if the encoding is + * <code>ENCODING_CDR_ENCAPS</code> version 1.0 and a type + * that does not exist in that version, such as <code>wstring</code>, + * is passed to the operation. + */ + exception InvalidTypeForEncoding {}; + + /** + * This exception is thrown by <code>Codec.decode</code> or + * <code>Codec.decode_value</code> when the data in the byte array + * cannot be decoded into an Any. + */ + exception FormatMismatch {}; + + /** + * This exception is thrown by <code>decode_value</code> when the given + * <code>TypeCode</code> does not match the given byte array. + */ + exception TypeMismatch {}; + + /** + * Converts the given any into a byte array based on the encoding + * format effective for this <code>Codec</code>. + * + * @param data The data, in the form of an any, to be encoded into + * a byte array. + * @return A byte array containing the encoded Any. This byte array + * contains both the <code>TypeCode</code> and the data of the type. + * @exception InvalidTypeForEncoding thrown if the type is not valid for + * the encoding format effective for this <code>Codec</code>. + */ + CORBA::OctetSeq encode (in any data) + raises (InvalidTypeForEncoding); + + /** + * Decodes the given byte array into an Any based on the encoding + * format effective for this <code>Codec</code>. + * + * @param data The data, in the form of a byte array, to be decoded into + * an Any. + * @return An Any containing the data from the decoded byte array. + * @exception FormatMismatch is thrown if the byte array cannot be + * decoded into an Any. + */ + any decode (in CORBA::OctetSeq data) raises (FormatMismatch); + + /** + * Converts the given any into a byte array based on the encoding + * format effective for this Codec. Only the data from the Any is + * encoded, not the <code>TypeCode</code>. + * + * @param data The data, in the form of an Any, to be encoded into + * a byte array. + * @return A byte array containing the data from the encoded any. + * @exception InvalidTypeForEncoding thrown if the type is not valid for + * the encoding format effective for this <code>Codec</code>. + */ + CORBA::OctetSeq encode_value (in any data) + raises (InvalidTypeForEncoding); + + /** + * Decodes the given byte array into an Any based on the given + * <code>TypeCode</code> and the encoding format effective for + * this <code>Codec</code>. + * + * @param data The data, in the form of a byte array, to be decoded + * into an Any. + * @param tc The TypeCode to be used to decode the data. + * @return An Any containing the data from the decoded byte array. + * @exception FormatMismatch thrown if the byte array cannot be + * decoded into an Any. + */ + any decode_value (in CORBA::OctetSeq data, in CORBA::TypeCode tc) + raises (FormatMismatch, TypeMismatch); + }; + + /** + * Defines an encoding format of a <code>Codec</code>, such as + * CDR Encapsulation (<code>ENCODING_CDR_ENCAPS</code>). + */ + typedef short EncodingFormat; + + /** + * The CDR Encapsulation encoding. + * @see CodecFactory + */ + const EncodingFormat ENCODING_CDR_ENCAPS = 0; + + /** + * Defines the encoding format of a <code>Codec</code>. This class + * details the encoding format, such as CDR Encapsulation encoding, and + * the major and minor versions of that format. + * <p> + * The encodings currently supported are: + * <ul> + * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.0;</li> + * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.1;</li> + * <li><code>ENCODING_CDR_ENCAPS</code>, version 1.2;</li> + * <li><code>ENCODING_CDR_ENCAPS</code> for all future versions of GIOP as + * they arise.</li> + * </ul> + * Vendors are free to support additional encodings. + * + * @see ENCODING_CDR_ENCAPS + */ + struct Encoding { + /** + * The encoding format. + */ + EncodingFormat format; + + /** + * The major version of this Encoding format. + */ + octet major_version; + + /** + * The minor version of this Encoding format. + */ + octet minor_version; + }; + + /** + * <code>Codecs</code> are obtained from the <code>CodecFactory</code>. + * The <code>CodecFactory</code> is obtained through a call to + * <code>ORB.resolve_initial_references( "CodecFactory" )</code>. + */ + local interface CodecFactory { + /** + * This exception is thrown by <code>CodecFactory.create_codec</code> when + * the factory cannot create a <code>Codec</code> for a given encoding. + */ + exception UnknownEncoding {}; + + /** + * Create a <code>Codec</code> of the given encoding. + * + * @param enc The encoding for which to create a <code>Codec</code>. + * @return A <code>Codec</code> obtained with the given encoding. + * @exception UnknownEncoding thrown if this factory cannot create a + * <code>Codec</code> of the given encoding. + */ + Codec create_codec (in Encoding enc) raises (UnknownEncoding); + }; + + // END part which lived in Interceptors.idl. + +}; + +#endif // _IOP_IDL_ diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl new file mode 100644 index 0000000..ca2612e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl @@ -0,0 +1,2214 @@ +/* + * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * Differences from original: + * + * - do not include orb.idl + * - include IOP.idl, Messaging.idl and CORBAX.idl + * - renamed component parameter names to tagged_component (so that they + * do not conflict with the CORBA 3.0 "component" keyword). + * - javadocs added (synchronized with orbos/00-08-06) + * + * NOTE: After compilation of this IDL file, all Helper and Holder classes + * that are not needed are removed. + */ +#include "IOP.idl" +#include "Messaging.idl" +#include "CORBAX.idl" +#include "corba.idl" + +#pragma prefix "omg.org" + +#ifndef CORBA3 +#define local +#endif + +module Dynamic { + + /** + * <code>NVList</code> PIDL represented by <code>ParameterList</code> IDL. + * This exists in order to keep the Portable Interceptor IDL from becoming + * PIDL. + */ + struct Parameter { + any argument; + CORBA::ParameterMode mode; + }; + + /** + * <code>NVList</code> PIDL represented by <code>ParameterList</code> IDL. + * This exists in order to keep the Portable Interceptor IDL from becoming + * PIDL. + */ + typedef sequence<Parameter> ParameterList; + + /** + * <code>ContextList</code> PIDL represented by <code>ContextList</code> + * IDL. This exists in order to keep the Portable Interceptor IDL from + * becoming PIDL. + */ + typedef CORBA::StringSeq ContextList; + + /** + * <code>ExceptionList</code> PIDL represented by <code>ExceptionList</code> + * IDL. This exists in order to keep the Portable Interceptor IDL from + * becoming PIDL. + */ + typedef sequence<CORBA::TypeCode> ExceptionList; + + /** + * <code>Context</code> PIDL represented by <code>RequestContext</code> + * IDL. This exists in order to keep the Portable Interceptor IDL from o + * becoming PIDL. + * <p> + * <code>Context</code> objects are encoded as <code>String[]</code>. The + * <code>Strings</code> occur in pairs. The first <code>String</code> in + * each pair is the context property name and the second <code>String</code> + * in each pair is the associated value. + */ + typedef CORBA::StringSeq RequestContext; +}; + +module PortableInterceptor { + /** + * All Portable Interceptors implement Interceptor. + */ + local interface Interceptor { + /** + * Returns the name of the interceptor. + * <p> + * Each Interceptor may have a name that may be used administratively + * to order the lists of Interceptors. Only one Interceptor of a given + * name can be registered with the ORB for each Interceptor type. An + * Interceptor may be anonymous, i.e., have an empty string as the name + * attribute. Any number of anonymous Interceptors may be registered with + * the ORB. + * + * @return the name of the interceptor. + */ + readonly attribute string name; + + // Added in ptc/00-08-06 + /** + * Provides an opportunity to destroy this interceptor. + * The destroy method is called during <code>ORB.destroy</code>. When an + * application calls <code>ORB.destroy</code>, the ORB: + * <ol> + * <li>waits for all requests in progress to complete</li> + * <li>calls the <code>Interceptor.destroy</code> operation for each + * interceptor</li> + * <li>completes destruction of the ORB</li> + * </ol> + * Method invocations from within <code>Interceptor.destroy</code> on + * object references for objects implemented on the ORB being destroyed + * result in undefined behavior. However, method invocations on objects + * implemented on an ORB other than the one being destroyed are + * permitted. (This means that the ORB being destroyed is still capable + * of acting as a client, but not as a server.) + */ + void destroy(); + }; + + + /** + * The <code>ForwardRequest</code> exception is the means by which an + * Interceptor can indicate to the ORB that a retry of the request should + * occur with the new object given in the exception. This behavior of + * causing a retry only occurs if the ORB receives a ForwardRequest from + * an interceptor. If <code>ForwardRequest</code> is thrown anywhere else + * it is passed through the ORB as is normal for a user exception. + * <p> + * If an Interceptor throws a <code>ForwardRequest</code> exception in + * response to a call of an interceptor, no other Interceptors are called + * for that interception point. The remaining Interceptors in the Flow Stack + * shall have their appropriate ending interception point called: + * <code>receive_other</code> on the client, or <code>send_other</code> on + * the server. The <code>reply_status</code> in the + * <code>receive_other</code> or <code>send_other</code> would be + * <code>LOCATION_FORWARD</code>. + */ + exception ForwardRequest { + /** + * The new object to forward the request to. + */ + Object forward; +// Change in ptc/00-08-06 +// boolean permanent; + }; + + /** Reply status, represented as an int */ + typedef short ReplyStatus; + + // Valid reply_status values: + + /** + * Indicates a successful Reply Status. One possible value for + * <code>RequestInfo.reply_status</code>. + * @see RequestInfo#reply_status + * @see SYSTEM_EXCEPTION + * @see USER_EXCEPTION + * @see LOCATION_FORWARD + * @see TRANSPORT_RETRY + */ + const ReplyStatus SUCCESSFUL = 0; + + /** + * Indicates a SystemException reply status. One possible value for + * <code>RequestInfo.reply_status</code>. + * @see RequestInfo#reply_status + * @see SUCCESSFUL + * @see USER_EXCEPTION + * @see LOCATION_FORWARD + * @see TRANSPORT_RETRY + */ + const ReplyStatus SYSTEM_EXCEPTION = 1; + + /** + * Indicates a UserException reply status. One possible value for + * <code>RequestInfo.reply_status</code>. + * @see RequestInfo#reply_status + * @see SUCCESSFUL + * @see SYSTEM_EXCEPTION + * @see LOCATION_FORWARD + * @see TRANSPORT_RETRY + */ + const ReplyStatus USER_EXCEPTION = 2; + + /** + * Indicates a LocationForward reply status. One possible value for + * <code>RequestInfo.reply_status</code>. + * @see RequestInfo#reply_status + * @see SUCCESSFUL + * @see SYSTEM_EXCEPTION + * @see USER_EXCEPTION + * @see TRANSPORT_RETRY + */ + const ReplyStatus LOCATION_FORWARD = 3; + +// Changes in ptc/00-08-06 +// const ReplyStatus LOCATION_FORWARD_PERMANENT = 4; + + /** + * Indicates a Transport Retry reply status. One possible value for + * <code>RequestInfo.reply_status</code>. + * @see RequestInfo#reply_status + * @see SUCCESSFUL + * @see SYSTEM_EXCEPTION + * @see USER_EXCEPTION + * @see LOCATION_FORWARD + */ + const ReplyStatus TRANSPORT_RETRY = 4; + + /** + * XXX + */ + const ReplyStatus UNKNOWN = 5; + + /** Slot id, represented as an int */ + typedef unsigned long SlotId; + + /** + * This exception is thrown when <code>get_slot</code> or + * <code>set_slot</code> is called on a slot that has not been allocated. + */ + exception InvalidSlot {}; + + /** + * Portable Interceptors Current (also known as <code>PICurrent</code>) + * is merely a slot table, the slots of which are used by each service to + * transfer their context data between their context and the request's or + * reply's service context. Each service which wishes to use PICurrent + * reserves a slot or slots at initialization time and uses those slots + * during the processing of requests and replies. + * <p> + * Before an invocation is made, PICurrent is obtained via a call to + * <code>ORB.resolve_initial_references( "PICurrent" )</code>. From within + * the interception points, the data on PICurrent that has moved from the + * thread scope to the request scope is available via the + * <code>get_slot</code> operation on the <code>RequestInfo</code> object. + * A PICurrent can still be obtained via + * <code>resolve_initial_references</code>, but that is the Interceptor's + * thread scope PICurrent. + */ + local interface Current : CORBA::Current { + + /** + * Retrieves the slot data the application set in PICurrent via + * <code>get_slot</code>. The data is in the form of an Any. + * <p> + * If the given slot has not been set, an Any containing a type code + * with a <code>TCKind</code> value of <code>tk_null</code> and no value + * is returned. + * + * @param id The <code>SlotId</code> of the slot from which the data will + * be returned. + * @return The data, in the form of an Any, of the given slot identifier. + * @exception InvalidSlot thrown if get_slot is called on a slot that + * has not been allocated. + * @exception BAD_INV_ORDER thrown if <code>get_slot</code> is called + * from within an ORB initializer + */ + any get_slot (in SlotId id) raises (InvalidSlot); + + /** + * Sets data in a slot. The data is in the form of an Any. If data + * already exists in that slot, it is overridden. + * + * @param id The <code>SlotId</code> of the slot to which the data will + * be set. + * @param data The data, in the form of an Any, which will be set + * to the identified slot. + * @exception InvalidSlot thrown if <code>set_slot</code> is called on + * a slot that has not been allocated. + * @exception BAD_INV_ORDER thrown if <code>set_slot</code> is called + * from within an ORB initializer. + */ + void set_slot (in SlotId id, in any data) raises (InvalidSlot); + }; + + /** + * Request Information, accessible to Interceptors. + * <p> + * Each interception point is given an object through which the + * Interceptor can access request information. Client-side and server-side + * interception points are concerned with different information, so there + * are two information objects: <code>ClientRequestInfo</code> is passed + * to the client-side interception points and <code>ServerRequestInfo</code> + * is passed to the server-side interception points. But there is + * information that is common to both, so they both inherit from a common + * interface: <code>RequestInfo</code>. + * + * @see ClientRequestInfo + * @see ServerRequestInfo + */ + local interface RequestInfo { + /** + * Returns an id that uniquely identifies an active request/reply + * sequence. Once a request/reply sequence is concluded this ID may be + * reused. Note that this id is not the same as the GIOP + * <code>request_id</code>. If GIOP is the transport mechanism used, + * then these IDs may very well be the same, but this is not guaranteed + * nor required. + */ + readonly attribute unsigned long request_id; + + /** + * Returns the name of the operation being invoked. + */ + readonly attribute string operation; + + /** + * Returns an array of <code>Parameter</code> objects, containing the + * arguments on the operation being invoked. If there are no arguments, + * this attribute will be a zero length array. + * <p> + * Not all environments provide access to the arguments. With the Java + * portable bindings, for example, the arguments are not available. + * In these environments, when this attribute is accessed, + * <code>NO_RESOURCES</code> will be thrown with a standard minor code + * of 1. + * <p> + * <i>Note: Arguments are available for DSI/DII calls.</i> + * + * @exception NO_RESOURCES thrown if arguments are not available. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute Dynamic::ParameterList arguments; + + /** + * Returns an array of <code>TypeCode</code> objects describing the + * <code>TypeCode</code>s of the user exceptions that this operation + * invocation may throw. If there are no user exceptions, this + * will return a zero length array. + * <p> + * Not all environments provide access to the exception list. With + * the Java portable bindings, for example, the exception list is + * not available. In these environments, when this attribute is + * accessed, <code>NO_RESOURCES</code> will be thrown with a + * standard minor code of 1. + * <p> + * <i>Note: Exceptions are available for DSI/DII calls.</i> + * + * @exception NO_RESOURCES thrown if exceptions are not available. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute Dynamic::ExceptionList exceptions; + + /** + * Returns an array of <code>String</code> objects describing the + * contexts that may be passed on this operation invocation. If there + * are no contexts, this will return a zero length array. + * <p> + * Not all environments provide access to the context list. With the + * Java portable bindings, for example, the context list is not + * available. In these environments, when this attribute is accessed, + * <code>NO_RESOURCES</code> will be thrown with a standard minor code + * of 1. + * <p> + * <i>Note: Contexts are available for DSI/DII calls.</i> + * + * @exception NO_RESOURCES thrown if contexts are not available. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute Dynamic::ContextList contexts; + + /** + * Returns an array of <code>String</code> objects containing the + * contexts being sent on the request. + * <p> + * Not all environments provide access to the context. With the Java + * portable bindings, for example, the context is not available. In + * these environments, when this attribute is accessed, NO_RESOURCES will + * be thrown with standard minor code of 1. + * <p> + * <i>Note: <code>operation_context</code> is available for + * DSI/DII calls.</i> + * + * @exception NO_RESOURCES thrown if operation context is not available. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute Dynamic::RequestContext operation_context; + + /** + * Returns an any containing the result of the operation invocation. + * If the operation return type is void, this attribute will be an any + * containing a type code with a <code>TCKind</code> value of + * <code>tk_void</code> and no value. + * <p> + * Not all environments provide access to the result. With the Java + * portable bindings, for example, the result is not available. In + * these environments, when this attribute is accessed, + * <code>NO_RESOURCES</code> will be thrown with a standard minor code of + * 1. + * <p> + * <i>Note: Result is available for DSI/DII calls.</i> + * + * @exception NO_RESOURCES thrown if result is not available. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute any result; + + /** + * Indicates whether a response is expected. + * <p> + * On the client, a reply is not returned when + * <code>response_expected</code> is false, so <code>receive_reply</code> + * cannot be called. <code>receive_other</code> is called unless an + * exception occurs, in which case <code>receive_exception</code> is + * called. + * <p> + * On the client, within <code>send_poll</code>, this attribute is true. + */ + readonly attribute boolean response_expected; + + /** + * Defines how far the request shall progress before control is returned + * to the client. This is defined in the Messaging specification, and + * is pertinent only when <code>response_expected</code> is false. If + * <code>response_expected</code> is true, the value of + * <code>sync_scope</code> is undefined. This attribute may have one of + * the following values: + * <ul> + * <li><code>Messaging.SYNC_NONE</code></li> + * <li><code>Messaging.SYNC_WITH_TRANSPORT</code></li> + * <li><code>Messaging.SYNC_WITH_SERVER</code></li> + * <li><code>Messaging.SYNC_WITH_TARGET</code></li> + * </ul> + * On the server, for all scopes, a reply will be created from the + * return of the target operation call, but the reply will not return + * to the client. Although it does not return to the client, it does + * occur, so the normal server-side interception points are + * followed (i.e., <code>receive_request_service_contexts</code>, + * <code>receive_request</code>, <code>send_reply</code> or + * <code>send_exception</code>). + * <p> + * For <code>SYNC_WITH_SERVER</code> and <code>SYNC_WITH_TARGET</code>, + * the server does send an empty reply back to the client before the + * target is invoked. This reply is not intercepted by server-side + * Interceptors. + * + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute Messaging::SyncScope sync_scope; + + /** + * Describes the state of the result of the operation invocation. The + * return value can be one of the following: + * <ul> + * <li><code>PortableInterceptor.SUCCESSFUL</code></li> + * <li><code>PortableInterceptor.SYSTEM_EXCEPTION</code></li> + * <li><code>PortableInterceptor.USER_EXCEPTION</code></li> + * <li><code>PortableInterceptor.LOCATION_FORWARD</code></li> + * <li><code>PortableInterceptor.TRANSPORT_RETRY</code></li> + * </ul> + * On the client: + * <ul> + * <li>Within the <code>receive_reply</code> interception point, this + * will only return <code>SUCCESSFUL</code>.</li> + * <li>Within the <code>receive_exception</code> interception point, + * this will be either <code>SYSTEM_EXCEPTION</code> or + * <code>USER_EXCEPTION</code>.</li> + * <li>Within the <code>receive_other</code> interception point, this + * will be any of: <code>SUCCESSFUL</code>, + * <code>LOCATION_FORWARD</code>, or <code>TRANSPORT_RETRY</code>. + * <code>SUCCESSFUL</code> means an asynchronous request returned + * successfully. <code>LOCATION_FORWARD</code> means that a reply + * came back with <code>LOCATION_FORWARD</code> as its status. + * <code>TRANSPORT_RETRY</code> means that the transport + * mechanism indicated a retry - a GIOP reply with a status of + * <code>NEEDS_ADDRESSING_MODE</code>, for instance. </li> + * </ul> + * On the server: + * <ul> + * <li>Within the <code>send_reply</code> interception point, this + * will only be <code>SUCCESSFUL</code>.</li> + * <li>Within the <code>send_exception</code> interception point, + * this will be either <code>SYSTEM_EXCEPTION</code> or + * <code>USER_EXCEPTION</code>.</li> + * <li>Within the <code>send_other</code> interception point, this + * attribute will be any of: <code>SUCCESSFUL</code>, or + * <code>LOCATION_FORWARD</code>. <code>SUCCESSFUL</code> means + * an asynchronous request returned successfully. + * <code>LOCATION_FORWARD</code> means that a reply came back + * with <code>LOCATION_FORWARD</code> as its status.</li> + * </ul> + * + * @see SUCCESSFUL + * @see SYSTEM_EXCEPTION + * @see USER_EXCEPTION + * @see LOCATION_FORWARD + * @see TRANSPORT_RETRY + */ + readonly attribute ReplyStatus reply_status; + + /** + * Contains the object to which the request will be forwarded, if the + * <code>reply_status</code> attribute is <code>LOCATION_FORWARD</code>. + * It is indeterminate whether a forwarded request will actually occur. + */ + readonly attribute Object forward_reference; + + /** + * Returns the data from the given slot of the + * <code>PortableInterceptor.Current</code> that is in the scope of + * the request. + * <p> + * If the given slot has not been set, then an any containing a + * type code with a <code>TCKind</code> value of <code>tk_null</code> is + * returned. + * + * @param id The <code>SlotId</code> of the slot which is to be + * returned. + * @return The slot data, in the form of an any, obtained with the + * given identifier. + * @exception InvalidSlot thrown if the ID does not define an + * allocated slot. + * @see Current + */ + any get_slot (in SlotId id) raises (InvalidSlot); + + /** + * Returns a copy of the service context with the given ID that + * is associated with the request. + * + * @param id The <code>IOP.ServiceId</code> of the service context + * which is to be returned. + * @return The <code>IOP.ServiceContext</code> obtained with the + * given identifier. + * @exception BAD_PARAM thrown with a standard minor code of 26, if the + * request's service context does not contain an entry for that ID. + */ + IOP::ServiceContext get_request_service_context + (in IOP::ServiceId id); + + /** + * Returns a copy of the service context with the given ID that + * is associated with the reply. + * + * @param id The <code>IOP.ServiceId</code> of the service context + * which is to be returned. + * @return The <code>IOP.ServiceContext</code> obtained with the given + * identifier. + * @exception BAD_PARAM thrown with a standard minor code of 26 if the + * request's service context does not contain an entry for that ID. + */ + IOP::ServiceContext get_reply_service_context + (in IOP::ServiceId id); + }; + + /** + * Request Information, accessible to client-side request interceptors. + * <p> + * Some attributes and operations on <code>ClientRequestInfo</code> are + * not valid at all interception points. The following table shows the + * validity of each attribute or operation. If it is not valid, attempting + * to access it will result in a <code>BAD_INV_ORDER</code> being thrown + * with a standard minor code of 14. + * + * <table class="plain"> + * <caption style="display:none">Shows the validity of each attribute or operation</caption> + * <thead> + * <tr> + * <th> </th> + * <th id="send_req">send_request</th> + * <th id="send_poll">send_poll</th> + * <th id="rec_reply">receive_reply</th> + * <th id="rec_ex">receive_exception</th> + * <th id="rec_oth">receive_other</th> + * </tr> + * </thead> + * <tbody> + * + * <tr> + * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td> + * </tr> + * + * <tr><th id="req_id"><p style="text-align:left">request_id</p></th> + * <td headers="ri req_id send_req">yes</td> + * <td headers="ri req_id send_poll">yes</td> + * <td headers="ri req_id rec_reply">yes</td> + * <td headers="ri req_id rec_ex">yes</td> + * <td headers="ri req_id rec_oth">yes</td></tr> + * + * <tr><th id="op"><p style="text-align:left">operation</p></th> + * <td headers="ri op send_req">yes</td> + * <td headers="ri op send_poll">yes</td> + * <td headers="ri op rec_reply">yes</td> + * <td headers="ri op rec_ex">yes</td> + * <td headers="ri op rec_oth">yes</td></tr> + * + * <tr><th id="arg"><p style="text-align:left">arguments</p></th> + * <td headers="ri arg send_req">yes<sub>1</sub></td> + * <td headers="ri arg send_poll">no </td> + * <td headers="ri arg rec_reply">yes</td> + * <td headers="ri arg rec_ex">no </td> + * <td headers="ri arg rec_oth">no </td></tr> + * + * <tr><th id="exc"><p style="text-align:left">exceptions</p></th> + * <td headers="ri exc send_req">yes</td> + * <td headers="ri exc send_poll">no </td> + * <td headers="ri exc rec_reply">yes</td> + * <td headers="ri exc rec_ex">yes</td> + * <td headers="ri exc rec_oth">yes</td></tr> + * + * <tr><th id="con"><p style="text-align:left">contexts</p></th> + * <td headers="ri con send_req">yes</td> + * <td headers="ri con send_poll">no </td> + * <td headers="ri con rec_reply">yes</td> + * <td headers="ri con rec_ex">yes</td> + * <td headers="ri con rec_oth">yes</td></tr> + * + * <tr><th id="op_con"><p style="text-align:left">operation_context</p></th> + * <td headers="ri op_con send_req">yes</td> + * <td headers="ri op_con send_poll">no </td> + * <td headers="ri op_con rec_reply">yes</td> + * <td headers="ri op_con rec_ex">yes</td> + * <td headers="ri op_con rec_oth">yes</td> + * </tr> + * + * <tr><th id="result"><p style="text-align:left">result</p></th> + * <td headers="ri result send_req">no </td> + * <td headers="ri result send_poll">no </td> + * <td headers="ri result rec_reply">yes</td> + * <td headers="ri result rec_ex">no </td> + * <td headers="ri result rec_oth">no </td> + * </tr> + * + * <tr><th id="res_exp"><p style="text-align:left">response_expected</p></th> + * <td headers="ri res_exp send_req">yes</td> + * <td headers="ri res_exp send_poll">yes</td> + * <td headers="ri res_exp rec_reply">yes</td> + * <td headers="ri res_exp rec_ex">yes</td> + * <td headers="ri res_exp rec_oth">yes</td></tr> + * + * <tr><th id="sync_sco"><p style="text-align:left">sync_scope</p></th> + * <td headers="ri sync_sco send_req">yes</td> + * <td headers="ri sync_sco send_poll">no </td> + * <td headers="ri sync_sco rec_reply">yes</td> + * <td headers="ri sync_sco rec_ex">yes</td> + * <td headers="ri sync_sco rec_oth">yes</td> + * </tr> + * + * <tr><th id="rep_stat"><p style="text-align:left">reply_status</p></th> + * <td headers="ri rep_stat send_req">no </td> + * <td headers="ri rep_stat send_poll">no </td> + * <td headers="ri rep_stat rec_reply">yes</td> + * <td headers="ri rep_stat rec_ex">yes</td> + * <td headers="ri rep_stat rec_oth">yes</td></tr> + * + * <tr><th id="for_ref"><p style="text-align:left">forward_reference</p></th> + * <td headers="ri for_ref send_req">no </td> + * <td headers="ri for_ref send_poll">no </td> + * <td headers="ri for_ref rec_reply">no </td> + * <td headers="ri for_ref rec_ex">no </td> + * <td headers="ri for_ref rec_oth">yes<sub>2</sub> + * </td></tr> + * + * <tr><th id="get_slot"><p style="text-align:left">get_slot</p></th> + * <td headers="ri get_slot send_req">yes</td> + * <td headers="ri get_slot send_poll">yes</td> + * <td headers="ri get_slot rec_reply">yes</td> + * <td headers="ri get_slot rec_ex">yes</td> + * <td headers="ri get_slot rec_oth">yes</td></tr> + * + * <tr><th id="grsc"><p style="text-align:left">get_request_service_context</p></th> + * <td headers="ri grsc send_req">yes</td> + * <td headers="ri grsc send_poll">no </td> + * <td headers="ri grsc rec_reply">yes</td> + * <td headers="ri grsc rec_ex">yes</td> + * <td headers="ri grsc rec_oth">yes</td></tr> + * + * <tr><th id="gpsc"><p style="text-align:left">get_reply_service_context</p></th> + * <td headers="ri gpsc send_req">no </td> + * <td headers="ri gpsc send_poll">no </td> + * <td headers="ri gpsc rec_reply">yes</td> + * <td headers="ri gpsc rec_ex">yes</td> + * <td headers="ri gpsc rec_oth">yes</td> + * </tr> + * + * <tr> + * <td id="cri" colspan=6><i>ClientRequestInfo-specific:</i></td> + * </tr> + * + * <tr><th id="target"><p style="text-align:left">target</p></th> + * <td headers="cri target send_req">yes</td> + * <td headers="cri target send_poll">yes</td> + * <td headers="cri target rec_reply">yes</td> + * <td headers="cri target rec_ex">yes</td> + * <td headers="cri target rec_oth">yes</td></tr> + * + * <tr><th id="eftarget"><p style="text-align:left">effective_target</p></th> + * <td headers="cri eftarget send_req">yes</td> + * <td headers="cri eftarget send_poll">yes</td> + * <td headers="cri eftarget rec_reply">yes</td> + * <td headers="cri eftarget rec_ex">yes</td> + * <td headers="cri eftarget rec_oth">yes</td> + * </tr> + * + * <tr><th id="efprof"><p style="text-align:left">effective_profile</p></th> + * <td headers="cri efprof send_req">yes</td> + * <td headers="cri efprof send_poll">yes</td> + * <td headers="cri efprof rec_reply">yes</td> + * <td headers="cri efprof rec_ex">yes</td> + * <td headers="cri efprof rec_oth">yes</td></tr> + * + * <tr><th id="rxp"><p style="text-align:left">received_exception</p></th> + * <td headers="cri rxp send_req">no </td> + * <td headers="cri rxp send_poll">no </td> + * <td headers="cri rxp rec_reply">no </td> + * <td headers="cri rxp rec_ex">yes</td> + * <td headers="cri rxp rec_oth">no </td></tr> + * + * <tr><th id="rei"><p style="text-align:left">received_exception_id</p></th> + * <td headers="cri rei send_req">no </td> + * <td headers="cri rei send_poll">no </td> + * <td headers="cri rei rec_reply">no </td> + * <td headers="cri rei rec_ex">yes</td> + * <td headers="cri rei rec_oth">no </td></tr> + * + * <tr><th id="gec"><p style="text-align:left">get_effective_component</p></th> + * <td headers="cri gec send_req">yes</td> + * <td headers="cri gec send_poll">no </td> + * <td headers="cri gec rec_reply">yes</td> + * <td headers="cri gec rec_ex">yes</td> + * <td headers="cri gec rec_oth">yes</td></tr> + * + * <tr><th id="gecs"><p style="text-align:left">get_effective_components</p></th> + * <td headers="cri gecs send_req">yes</td> + * <td headers="cri gecs send_poll">no </td> + * <td headers="cri gecs rec_reply">yes</td> + * <td headers="cri gecs rec_ex">yes</td> + * <td headers="cri gecs rec_oth">yes</td></tr> + * + * <tr><th id="grpcy"><p style="text-align:left">get_request_policy</p></th> + * <td headers="cri grpcy send_req">yes</td> + * <td headers="cri grpcy send_poll">no </td> + * <td headers="cri grpcy rec_reply">yes</td> + * <td headers="cri grpcy rec_ex">yes</td> + * <td headers="cri grpcy rec_oth">yes</td></tr> + * + * <tr><th id="arsc"><p style="text-align:left">add_request_service_context</p></th> + * <td headers="cri arsc send_req">yes</td> + * <td headers="cri arsc send_poll">no </td> + * <td headers="cri arsc rec_reply">no </td> + * <td headers="cri arsc rec_ex">no </td> + * <td headers="cri arsc rec_oth">no </td></tr> + * + * </tbody> + * </table> + * + * <ol> + * <li>When <code>ClientRequestInfo</code> is passed to + * <code>send_request</code>, there is an entry in the list for every + * argument, whether in, inout, or out. But only the in and inout + * arguments will be available.</li> + * <li>If the <code>reply_status</code> atribute is not + * <code>LOCATION_FORWARD</code>, accessing this attribute will + * throw <code>BAD_INV_ORDER</code> with a standard minor code of + * 14.</li> + * </ol> + * + * @see ClientRequestInterceptor + */ + local interface ClientRequestInfo : RequestInfo { + + /** + * Returns the object which the client called to perform the + * operation. + * + * @see #effective_target + */ + readonly attribute Object target; + + /** + * Returns the actual object on which the operation will be invoked. + * If the <code>reply_status</code> is <code>LOCATION_FORWARD</code>, + * then on subsequent requests, <code>effective_target</code> will + * contain the forwarded IOR while target will remain unchanged. + * + * @see #target + */ + readonly attribute Object effective_target; + + /** + * Returns the profile that will be used to send the request. If a + * location forward has occurred for this operation's object and + * that object's profile changed accordingly, then this profile will + * be that located profile. + */ + readonly attribute IOP::TaggedProfile effective_profile; + + /** + * Returns an any which contains the exception to be returned to + * the client. + * <p> + * If the exception is a user exception which cannot be inserted + * into an any (e.g., it is unknown or the bindings don t provide + * the <code>TypeCode</code>), then this attribute will be an any + * containing the system exception <code>UNKNOWN</code> with a + * standard minor code of 1. However, the repository id of + * the exception is available in the <code>received_exception_id</code> + * attribute. + * + * @see #received_exception_id + */ + readonly attribute any received_exception; + + /** + * Returns the repository id of the exception to be returned to + * the client. + * + * @see #received_exception + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute CORBA::RepositoryId received_exception_id; + + /** + * Returns the <code>IOP.TaggedComponent</code> with the given ID from + * the profile selected for this request. + * <p> + * If there is more than one component for a given component ID, it + * is undefined which component this operation returns. If there is + * more than one component for a given component ID, + * <code>get_effective_components</code> should be called instead. + * + * @param id The component id of the component which + * is to be returned. + * @return The <code>IOP.TaggedComponent</code> obtained with the + * given identifier. + * @exception BAD_PARAM thrown, with a standard minor code of 28, if + * no component exists for the given component ID. + * @see #get_effective_components + */ + IOP::TaggedComponent get_effective_component + (in IOP::ComponentId id); + + /** + * Returns an array of all tagged components with the given ID from the + * profile selected for this request. + * + * @param id The component id of the components which are to be returned. + * @return An array of <code>TaggedComponent</code> objects, each of + * which contains the given identifier. + * @exception BAD_PARAM thrown, with a standard minor code of 28, if + * no component exists for the given component ID. + * @see #get_effective_component + */ + IOP::TaggedComponentSeq get_effective_components + (in IOP::ComponentId id); + + /** + * Returns the given policy in effect for this operation. + * + * @exception INV_POLICY thrown, with a standard minor code of 1, if the + * policy type is not valid either because the specified type is + * not supported by this ORB or because a policy object of that type + * is not associated with this Object + * @param type The policy type which specifies the policy to be + * returned. + * @return The <code>CORBA.Policy</code> obtained with the given type. + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + CORBA::Policy get_request_policy + (in CORBA::PolicyType type); + + /** + * Allows Interceptors to add service contexts to the request. + * <p> + * There is no declaration of the order of the service contexts. + * They may or may not appear in the order that they are added. + * + * @param service_context The <code>IOP.ServiceContext</code> to be + * added to the request. + * @param replace Indicates the behavior of this operation when a + * service context already exists with the given ID. If false, + * then <code>BAD_INV_ORDER</code> with a standard minor code of 15 + * is thrown. If true, then the existing service context is + * replaced by the new one. + */ + void add_request_service_context ( + in IOP::ServiceContext service_context, + in boolean replace); + }; + + // Should be type string + typedef string ServerId ; + + // This should actually be the CORBA::ORBid type once that is available + typedef string ORBId ; + + /** The name of an object adapter. This is unique only within + * the scope of the ORB that created the object adapter. + */ + typedef org::omg::CORBA::StringSeq AdapterName ; + + /** Type of an object id. This provides the identity of a particular + * object that was created by an object adapter. + */ + typedef org::omg::CORBA::OctetSeq ObjectId ; + + /** + * Request Information, accessible to server-side request interceptors. + * <p> + * Some attributes and operations on <code>ServerRequestInfo</code> are not + * valid at all interception points. The following table shows the validity + * of each attribute or operation. If it is not valid, attempting to access + * it will result in a <code>BAD_INV_ORDER</code> being thrown with a + * standard minor code of 14. + * + * + * <table class="plain"> + * <caption style="display:none">Shows the validity of each attribute or operation</caption> + * <thead> + * <tr> + * <th> </th> + * <th id="rec_req_ser_con" valign="bottom">receive_request_<br>service_contexts</th> + * <th id="rec_req" valign="bottom">receive_request</th> + * <th id="send_rep" valign="bottom">send_reply</th> + * <th id="send_exc" valign="bottom">send_exception</th> + * <th id="send_oth" valign="bottom">send_other</th> + * </tr> + * </thead> + * <tbody> + * + * + * <tr> + * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td> + * </tr> + * + * <tr><th id="req_id"><p style="text-align:left">request_id</p></th> + * <td headers="ri req_id rec_req_ser_con">yes</td> + * <td headers="ri req_id rec_req">yes</td> + * <td headers="ri req_id send_rep">yes</td> + * <td headers="ri req_id send_exc">yes</td> + * <td headers="ri req_id send_oth">yes</td></tr> + * + * <tr><th id="op"><p style="text-align:left">operation</p></th> + * <td headers="ri op rec_req_ser_con">yes</td> + * <td headers="ri op rec_req">yes</td> + * <td headers="ri op send_rep">yes</td> + * <td headers="ri op send_exc">yes</td> + * <td headers="ri op send_oth">yes</td></tr> + * + * <tr><th id="args"><p style="text-align:left">arguments</p></th> + * <td headers="ri args rec_req_ser_con">no </td> + * <td headers="ri args rec_req">yes<sub>1</sub></td> + * <td headers="ri args send_rep">yes</td> + * <td headers="ri args send_exc">no<sub>2</sub></td> + * <td headers="ri args send_oth">no<sub>2</sub> + * </td></tr> + * + * <tr><th id="exps"><p style="text-align:left">exceptions</p></th> + * <td headers="ri exps rec_req_ser_con">no </td> + * <td headers="ri exps rec_req">yes</td> + * <td headers="ri exps send_rep">yes</td> + * <td headers="ri exps send_exc">yes</td> + * <td headers="ri exps send_oth">yes</td></tr> + * + * <tr><th id="contexts"><p style="text-align:left">contexts</p></th> + * <td headers="ri contexts rec_req_ser_con">no </td> + * <td headers="ri contexts rec_req">yes</td> + * <td headers="ri contexts send_rep">yes</td> + * <td headers="ri contexts send_exc">yes</td> + * <td headers="ri contexts send_oth">yes</td></tr> + * + * <tr><th id="op_con"><p style="text-align:left">operation_context</p></th> + * <td headers="ri op_con rec_req_ser_con">no </td> + * <td headers="ri op_con rec_req">yes</td> + * <td headers="ri op_con send_rep">yes</td> + * <td headers="ri op_con send_exc">no </td> + * <td headers="ri op_con send_oth">no </td> + * </tr> + * + * <tr><th id="result"><p style="text-align:left">result</p></th> + * <td headers="ri result rec_req_ser_con">no </td> + * <td headers="ri result rec_req">no </td> + * <td headers="ri result send_rep">yes</td> + * <td headers="ri result send_exc">no </td> + * <td headers="ri result send_oth">no </td> + * </tr> + * + * <tr><th id="res_ex"><p style="text-align:left">response_expected</p></th> + * <td headers="ri res_ex rec_req_ser_con">yes</td> + * <td headers="ri res_ex rec_req">yes</td> + * <td headers="ri res_ex send_rep">yes</td> + * <td headers="ri res_ex send_exc">yes</td> + * <td headers="ri res_ex send_oth">yes</td></tr> + * + * <tr><th id="syn_scp"><p style="text-align:left">sync_scope</p></th> + * <td headers="ri syn_scp rec_req_ser_con">yes</td> + * <td headers="ri syn_scp rec_req">yes</td> + * <td headers="ri syn_scp send_rep">yes</td> + * <td headers="ri syn_scp send_exc">yes</td> + * <td headers="ri syn_scp send_oth">yes</td></tr> + * + * <tr><td><b>request_id</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>operation</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>arguments</b></td> + * <td>no </td> <td>yes<sub>1</sub></td> + * <td>yes</td> <td>no<sub>2</sub></td> + * <td>no<sub>2</sub> + * </td></tr> + * + * <tr><td><b>exceptions</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>contexts</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>operation_context</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>no </td> <td>no </td></tr> + * + * <tr><td><b>result</b></td> + * <td>no </td> <td>no </td> <td>yes</td> <td>no </td> <td>no </td></tr> + * + * <tr><td><b>response_expected</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>sync_scope</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>reply_status</b></td> + * <td>no </td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>forward_reference</b></td> + * <td>no </td> <td>no </td> <td>no </td> <td>no </td> <td>yes<sub>2</sub> + * </td></tr> + * + * <tr><td><b>get_slot</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>get_request_service_context</b></td> + * <td>yes</td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>get_reply_service_context</b></td> + * <td>no </td> <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr> + * <td colspan=6><i>ServerRequestInfo-specific:</i></td> + * </tr> + * + * <tr><td><b>sending_exception</b></td> + * <td>no </td> <td>no </td> <td>no </td> <td>yes</td> <td>no </td></tr> + * + * <tr><td><b>object_id</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes<sub>3</sub></td> + * <td>yes<sub>3</sub> + * </td></tr> + * + * <tr><td><b>adapter_id</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes<sub>3</sub></td> + * <td>yes<sub>3</sub> + * </td></tr> + * + * <tr><td><b>server_id</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>orb_id</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>adapter_name</b></td> + * <td>no </td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>target_most_derived_interface</b></td> + * <td>no </td> <td>yes</td> <td>no<sub>4</sub></td> + * <td>no<sub>4</sub></td> + * <td>no<sub>4</sub> + * </td></tr> + * + * <tr><td><b>get_server_policy</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>set_slot</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * + * <tr><td><b>target_is_a</b></td> + * <td>no </td> <td>yes</td> <td>no<sub>4</sub></td> + * <td>no<sub>4</sub></td> + * <td>no<sub>4</sub> + * </td></tr> + * + * <tr><td><b>add_reply_service_context</b></td> + * <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td> <td>yes</td></tr> + * </tbody> + * </table> + * + * <ol> + * <li>When <code>ServerRequestInfo</code> is passed to + * <code>receive_request</code>, there is an entry in the list for + * every argument, whether in, inout, or out. But only the in and + * inout arguments will be available.</li> + * <li>If the <code>reply_status</code> attribute is not + * <code>LOCATION_FORWARD</code>, accessing this attribute will throw + * <code>BAD_INV_ORDER</code> with a standard minor code of 14.</li> + * <li>If the servant locator caused a location forward, or thrown an + * exception, this attribute/operation may not be available in this + * interception point. <code>NO_RESOURCES</code> with a standard minor + * code of 1 will be thrown if it is not available.</li> + * <li>The operation is not available in this interception point because + * the necessary information requires access to the target object's + * servant, which may no longer be available to the ORB. For example, + * if the object's adapter is a POA that uses a + * <code>ServantLocator</code>, then the ORB invokes the interception + * point after it calls <code>ServantLocator.postinvoke()</code>.</li> + * </ol> + * + * @see ServerRequestInterceptor + */ + local interface ServerRequestInfo : RequestInfo { + + /** + * Returns an any which contains the exception to be returned to + * the client. + * <p> + * If the exception is a user exception which cannot be inserted into + * an any (e.g., it is unknown or the bindings don't provide the + * <code>TypeCode</code>), then this attribute will be an any + * containing the system exception <code>UNKNOWN</code> with a + * standard minor code of 1. + * + * @see <a href="package-summary.html#unimpl"> + * <code>PortableInterceptor</code> package comments for + * limitations / unimplemented features</a> + */ + readonly attribute any sending_exception; + + /** + * Returns the opaque <code>object_id</code> describing the target of + * the operation invocation. + */ + readonly attribute ObjectId object_id; + + /** + * Returns the opaque identifier for the object adapter. + */ + readonly attribute CORBA::OctetSeq adapter_id; + + /** + * Returns the server ID that was specified on ORB::init using the -ORBServerId + * argument. + */ + readonly attribute ServerId server_id ; + + /** + * Returns the ID that was used to create the ORB. + */ + readonly attribute ORBId orb_id ; + + /** + * Returns the sequence of strings that identifies the object + * adapter instance that is handling this request. + */ + readonly attribute AdapterName adapter_name ; + + /** + * Returns the repository id for the most derived interface of the + * servant. + */ + readonly attribute CORBA::RepositoryId + target_most_derived_interface; + + /** + * Returns the policy in effect for this operation for the given + * policy type. The returned <code>CORBA.Policy</code> object shall + * only be a policy whose type was registered via + * <code>register_policy_factory</code>. + * + * @param type The <code>CORBA.PolicyType</code> which specifies the + * policy to be returned. + * @return The <code>CORBA.Policy</code> obtained with the given + * policy type. + * @exception INV_POLICY thrown, with a standard minor code of 2, if + * a policy for the given type was not registered via + * <code>register_policy_factory</code>. + * @see ORBInitInfo#register_policy_factory + */ + CORBA::Policy get_server_policy + (in CORBA::PolicyType type); + + /** + * Allows an Interceptor to set a slot in the + * <code>PortableInterceptor.Current</code> that is in the scope of + * the request. If data already exists in that slot, it will be + * overwritten. + * + * @param id The id of the slot. + * @param data The data, in the form of an any, to store in that slot. + * @exception InvalidSlot thrown if the ID does not define an allocated + * slot. + * @see Current + */ + void set_slot (in SlotId id, in any data) raises (InvalidSlot); + + /** + * Returns true if the servant is the given repository id, + * false if it is not. + * + * @param id The caller wants to know if the servant is this + * repository id. + * @return Is the servant the given RepositoryId? + */ + boolean target_is_a (in CORBA::RepositoryId id); + + /** + * Allows Interceptors to add service contexts to the request. + * <p> + * There is no declaration of the order of the service contexts. + * They may or may not appear in the order that they are added. + * + * @param service_context The <code>IOP.ServiceContext</code> to add to + * the reply. + * @param replace Indicates the behavior of this operation when a + * service context already exists with the given ID. If false, + * then <code>BAD_INV_ORDER</code> with a standard minor code of 15 + * is thrown. If true, then the existing service context is + * replaced by the new one. + * @exception BAD_INV_ORDER thrown, with a standard minor code of 15, if + * replace is false and a service context already exists with the + * given ID. + */ + void add_reply_service_context ( + in IOP::ServiceContext service_context, + in boolean replace); + }; + + /** + * Client-side request interceptor. + * <p> + * A request Interceptor is designed to intercept the flow of a + * request/reply sequence through the ORB at specific points so that + * services can query the request information and manipulate the service + * contexts which are propagated between clients and servers. The primary + * use of request Interceptors is to enable ORB services to transfer + * context information between clients and servers. There are two types + * of request Interceptors: client-side and server-side. + * <p> + * To write a client-side Interceptor, implement the + * <code>ClientRequestInterceptor</code> interface. + * + * @see ClientRequestInfo + */ + local interface ClientRequestInterceptor : Interceptor { + /** + * Allows an Interceptor to query request information and modify the + * service context before the request is sent to the server. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>send_request</code> operations are called. + * Those Interceptors on the Flow Stack are popped and their + * <code>receive_exception</code> interception points are called. This + * interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, no other + * Interceptors' <code>send_request</code> operations are + * called. Those Interceptors on the Flow Stack are popped and their + * <code>receive_other</code> interception points are called. + * <p> + * Compliant Interceptors shall properly follow completion_status + * semantics if they throw a system exception from this interception + * point. The <code>completion_status</code> shall be + * <code>COMPLETED_NO</code>. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void send_request (in ClientRequestInfo ri) raises (ForwardRequest); + + /** + * Allows an Interceptor to query information during a Time-Independent + * Invocation (TII) polling get reply sequence. + * <p> + * With TII, an application may poll for a response to a request sent + * previously by the polling client or some other client. This poll is + * reported to Interceptors through the <code>send_poll</code> + * interception point and the response is returned through the + * <code>receive_reply</code> or <code>receive_exception</code> + * interception points. If the response is not available before the + * poll time-out expires, the system exception <code>TIMEOUT</code> is + * thrown and <code>receive_exception</code> is called with this + * exception. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>send_poll</code> operations are + * called. Those Interceptors on the Flow Stack are popped and their + * <code>receive_exception</code> interception points are called. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The completion_status shall be + * <code>COMPLETED_NO</code>. + * + * @param ri Information about the current request being intercepted. + * @exception TIMEOUT thrown if the response is not available before + * the poll time-out expires + */ + void send_poll (in ClientRequestInfo ri); + + /** + * Allows an Interceptor to query the information on a reply after it + * is returned from the server and before control is returned to the + * client. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>receive_reply</code> operations are + * called. The remaining Interceptors in the Flow Stack shall have + * their <code>receive_exception</code> interception point called. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The + * <code>completion_status</code> shall be <code>COMPLETED_YES</code>. + * + * @param ri Information about the current request being intercepted. + */ + void receive_reply (in ClientRequestInfo ri); + + /** + * Indicates to the interceptor that an exception occurred. Allows + * an Interceptor to query the exception's information before it is + * thrown to the client. + * <p> + * This interception point may throw a system exception. This has the + * effect of changing the exception which successive Interceptors + * popped from the Flow Stack receive on their calls to + * <code>receive_exception</code>. The exception thrown to the client + * will be the last exception thrown by an Interceptor, or the original + * exception if no Interceptor changes the exception. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, no other + * Interceptors' <code>receive_exception</code> operations are called. + * The remaining Interceptors in the Flow Stack are popped and have their + * <code>receive_other</code> interception point called. + * <p> + * If the <code>completion_status</code> of the exception is not + * <code>COMPLETED_NO</code>, then it is inappropriate for this + * interception point to throw a <code>ForwardRequest</code> exception. + * The request s at-most-once semantics would be lost. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. If the original exception is + * a system exception, the <code>completion_status</code> of the new + * exception shall be the same as on the original. If the original + * exception is a user exception, then the <code>completion_status</code> + * of the new exception shall be <code>COMPLETED_YES</code>. + * <p> + * Under some conditions, depending on what policies are in effect, an + * exception (such as <code>COMM_FAILURE</code>) may result in a retry + * of the request. While this retry is a new request with respect to + * Interceptors, there is one point of correlation between the original + * request and the retry: because control has not returned to the + * client, the <code>PortableInterceptor.Current</code> for both the + * original request and the retrying request is the same. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void receive_exception (in ClientRequestInfo ri) raises (ForwardRequest); + + /** + * Allows an Interceptor to query the information available when a + * request results in something other than a normal reply or an + * exception. For example, a request could result in a retry + * (e.g., a GIOP Reply with a <code>LOCATION_FORWARD</code> status was + * received); or on asynchronous calls, the reply does not immediately + * follow the request, but control shall return to the client and an + * ending interception point shall be called. + * <p> + * For retries, depending on the policies in effect, a new request may or + * may not follow when a retry has been indicated. If a new request does + * follow, while this request is a new request, with respect to + * Interceptors, there is one point of correlation between the original + * request and the retry: because control has not returned to the client, + * the request scoped <code>PortableInterceptor.Current</code> for both + * the original request and the retrying request is the same. + * <p> + * This interception point may throw a system exception. If it does, no + * other Interceptors' <code>receive_other</code> operations are called. + * The remaining Interceptors in the Flow Stack are popped and have + * their <code>receive_exception</code> interception point called. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, successive + * Interceptors' <code>receive_other</code> operations are called with + * the new information provided by the <code>ForwardRequest</code> + * exception. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The + * <code>completion_status</code> shall be <code>COMPLETED_NO</code>. + * If the target invocation had completed, this interception point + * would not be called. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void receive_other (in ClientRequestInfo ri) raises (ForwardRequest); + }; + + /** + * Server-side request interceptor. + * <p> + * A request Interceptor is designed to intercept the flow of a + * request/reply sequence through the ORB at specific points so that + * services can query the request information and manipulate the service + * contexts which are propagated between clients and servers. The primary + * use of request Interceptors is to enable ORB services to transfer + * context information between clients and servers. There are two types + * of request Interceptors: client-side and server-side. + * <p> + * To write a server-side Interceptor, implement the + * ServerRequestInterceptor interface. + * + * @see ServerRequestInfo + */ + local interface ServerRequestInterceptor : Interceptor { + /** + * Allows the interceptor to process service context information. + * <p> + * At this interception point, Interceptors must get their service + * context information from the incoming request transfer it to + * <code>PortableInterceptor.Current</code>'s slots. + * <p> + * This interception point is called before the servant manager is called. + * Operation parameters are not yet available at this point. This + * interception point may or may not execute in the same thread as + * the target invocation. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>receive_request_service_contexts</code> + * operations are called. Those Interceptors on the Flow Stack are + * popped and their <code>send_exception</code> interception points are + * called. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, no other + * Interceptors' <code>receive_request_service_contexts</code> operations + * are called. Those Interceptors on the Flow Stack are popped and + * their <code>send_other</code> interception points are called. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The + * <code>completion_status</code> shall be COMPLETED_NO. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void receive_request_service_contexts (in ServerRequestInfo ri) + raises (ForwardRequest); + + /** + * Allows an Interceptor to query request information after all the + * information, including operation parameters, are available. This + * interception point shall execute in the same thread as the target + * invocation. + * <p> + * In the DSI model, since the parameters are first available when + * the user code calls <code>arguments</code>, <code>receive_request</code> + * is called from within <code>arguments</code>. It is possible that + * <code>arguments</code> is not called in the DSI model. The target + * may call <code>set_exception</code> before calling + * <code>arguments</code>. The ORB shall guarantee that + * <code>receive_request</code> is called once, either through + * <code>arguments</code> or through <code>set_exception</code>. If it + * is called through <code>set_exception</code>, requesting the + * arguments will result in <code>NO_RESOURCES</code> being thrown with + * a standard minor code of 1. + * <p> + * This interception point may throw a system exception. If it does, no + * other Interceptors' <code>receive_request</code> operations are + * called. Those Interceptors on the Flow Stack are popped and their + * <code>send_exception</code> interception points are called. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, no other + * Interceptors' <code>receive_request</code> operations are called. + * Those Interceptors on the Flow Stack are popped and their + * <code>send_other</code> interception points are called. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The + * <code>completion_status</code> shall be <code>COMPLETED_NO</code>. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void receive_request (in ServerRequestInfo ri) raises (ForwardRequest); + + /** + * Allows an Interceptor to query reply information and modify the + * reply service context after the target operation has been invoked + * and before the reply is returned to the client. This interception + * point shall execute in the same thread as the target invocation. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>send_reply</code> operations are called. + * The remaining Interceptors in the Flow Stack shall have their + * <code>send_exception</code> interception point called. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a + * system exception from this interception point. The + * <code>completion_status</code> shall be <code>COMPLETED_YES</code>. + * + * @param ri Information about the current request being intercepted. + */ + void send_reply (in ServerRequestInfo ri); + + /** + * Allows an Interceptor to query the exception information and modify + * the reply service context before the exception is thrown to the client. + * When an exception occurs, this interception point is called. This + * interception point shall execute in the same thread as the target + * invocation. + * <p> + * This interception point may throw a system exception. This has the + * effect of changing the exception which successive Interceptors + * popped from the Flow Stack receive on their calls to + * <code>send_exception</code>. The exception thrown to the client will + * be the last exception thrown by an Interceptor, or the original + * exception if no Interceptor changes the exception. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, no other + * Interceptors' <code>send_exception</code> operations are called. The + * remaining Interceptors in the Flow Stack shall have their + * <code>send_other</code> interception points called. + * <p> + * If the <code>completion_status</code> of the exception is not + * <code>COMPLETED_NO</code>, then it is inappropriate for this + * interception point to throw a <code>ForwardRequest</code> exception. + * The request's at-most-once semantics would be lost. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. If the original exception + * is a system exception, the <code>completion_status</code> of the new + * exception shall be the same as on the original. If the original + * exception is a user exception, then the <code>completion_status</code> + * of the new exception shall be <code>COMPLETED_YES</code>. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void send_exception (in ServerRequestInfo ri) raises (ForwardRequest); + + /** + * Allows an Interceptor to query the information available when a + * request results in something other than a normal reply or an + * exception. For example, a request could result in a retry + * (e.g., a GIOP Reply with a <code>LOCATION_FORWARD</code> status was + * received). This interception point shall execute in the same thread + * as the target invocation. + * <p> + * This interception point may throw a system exception. If it does, + * no other Interceptors' <code>send_other</code> operations are called. + * The remaining Interceptors in the Flow Stack shall have their + * <code>send_exception</code> interception points called. + * <p> + * This interception point may also throw a <code>ForwardRequest</code> + * exception. If an Interceptor throws this exception, successive + * Interceptors' <code>send_other</code> operations are called with + * the new information provided by the <code>ForwardRequest</code> + * exception. + * <p> + * Compliant Interceptors shall properly follow + * <code>completion_status</code> semantics if they throw a system + * exception from this interception point. The + * <code>completion_status</code> shall be <code>COMPLETED_NO</code>. + * + * @param ri Information about the current request being intercepted. + * @exception ForwardRequest If thrown, indicates to the ORB that a + * retry of the request should occur with the new object given in + * the exception. + */ + void send_other (in ServerRequestInfo ri) raises (ForwardRequest); + }; + + /** The object reference factory. This provides the capability of + * creating an object reference. + */ + abstract valuetype ObjectReferenceFactory { + /** make_object creates a CORBA object reference according + * to the data in this template, with the given repository ID and + * object ID. + */ + Object make_object( in string repositoryId, in ObjectId object_id ) ; + } ; + + /** The object reference template. An instance of this must + * exist for each object adapter created in an ORB. The server_id, + * orb_id, and adapter_name attributes uniquely identify this template + * within the scope of an IMR. Note that adapter_id is similarly unique + * within the same scope, but it is opaque, and less useful in many + * cases. + */ + abstract valuetype ObjectReferenceTemplate : ObjectReferenceFactory { + + readonly attribute ServerId server_id ; + + readonly attribute ORBId orb_id ; + + readonly attribute AdapterName adapter_name ; + } ; + + /** Sequence of object reference templates is used for reporting state + * changes that do not occur on the adapter manager. + */ + typedef sequence<ObjectReferenceTemplate> ObjectReferenceTemplateSeq ; + + /** Adapter manager identifier. Every object adapter has an adapter manager, + * indicated in this API only through the ID. A group of object adapter + * instances may share the same adapter manager, in which case state transitions + * reported for the adapter manager are observed by all object adapters with the + * same adapter manager ID. + */ + typedef long AdapterManagerId ; + + /** Type of object adapter state. State changes are reported either to + * the object adapter or to the adapter manager. + */ + typedef short AdapterState ; + + /** Object adapter state that holds requests temporarily until the + * state is changed. + */ + const AdapterState HOLDING = 0 ; + + /** Object adapter state that indicates normal request processing. + */ + const AdapterState ACTIVE = 1 ; + + /** Object adapter state that causes all requests to be discarded. + */ + const AdapterState DISCARDING = 2 ; + + /** Object adapter state that causes all requests to be discarded. + * This state indicates that the adapter is shutting down. + */ + const AdapterState INACTIVE = 3 ; + + /** Object adapter state indicating that the adapter has been destroyed. + */ + const AdapterState NON_EXISTENT = 4 ; + + /** + * Provides the server-side ORB service with access to the applicable + * policies during IOR construction and the ability to add components. + * The ORB passes an instance of its implementation of this interface as + * a parameter to <code>IORInterceptor.establish_components</code>. + * + * @see IORInterceptor + */ + local interface IORInfo { + + /** + * Allows an ORB service implementation to determine what server side + * policy of a particular type is in effect for an IOR being + * constructed. When the IOR being constructed is for an object + * implemented using a POA, all Policy objects passed to the + * <code>PortableServer.POA.create_POA</code> call that created that + * POA are accessable via <code>get_effective_policy</code>. + * <p> + * If a policy for the given type is not known to the ORB, then this + * operation will throw <code>INV_POLICY</code> with a standard minor + * code of 2. + * + * @param type an int specifying the type of policy to return. + * @return The effective <code>CORBA.Policy</code> object of the + * requested type. If the given policy type is known, but no policy + * of that type is in effect, then this operation will return a + * nil object reference. + */ + CORBA::Policy get_effective_policy + (in CORBA::PolicyType type); + + /** + * A portable ORB service implementation calls + * <code>add_ior_component</code> from its implementation of + * <code>establish_components</code> to add a tagged component to the + * set which will be included when constructing IORs. The components in + * this set will be included in all profiles. + * <p> + * Any number of components may exist with the same component ID. + * + * @param tagged_component The IOP.TaggedComponent to add. + */ + void add_ior_component + (in IOP::TaggedComponent tagged_component); + + /** + * A portable ORB service implementation calls + * <code>add_ior_component_to_profile</code> from its implementation of + * <code>establish_components</code> to add a tagged component to the + * set which will be included when constructing IORs. The components in + * this set will be included in the specified profile. + * <p> + * Any number of components may exist with the same component ID. + * + * @param tagged_component The <code>IOP.TaggedComponent</code> to add. + * @param profile_id The profile id of the profile to + * which this component will be added. + * @exception BAD_PARAM thrown, with a standard minor code of 29, if the + * given profile ID does not define a known profile or it is + * impossible to add components to that profile. + */ + void add_ior_component_to_profile ( + in IOP::TaggedComponent tagged_component, + in IOP::ProfileId profile_id); + + /** Return the adapter manager id of the object adapter + * that was just created and is running IOR interceptors. + */ + readonly attribute AdapterManagerId manager_id ; + + /** Return the adapter state of the object adapter + * that was just created and is running IOR interceptors. + */ + readonly attribute AdapterState state ; + + /** Return the object reference template of the object adapter + * that was just created and is running IOR interceptors. + */ + readonly attribute ObjectReferenceTemplate adapter_template ; + + /** On read, returns the current factory that will be used to create + * object references for the object adapter that was just created + * and is running IOR interceptors. By default, this factory is the same + * as the value of the adapter_template attribute. The current_factory + * may also be set to another object reference template inside an + * IORInterceptor_3_0. + */ + attribute ObjectReferenceFactory current_factory ; + }; + + /** + * Interceptor used to establish tagged components in the profiles within + * an IOR. + * <p> + * In some cases, a portable ORB service implementation may need to add + * information describing the server's or object's ORB service related + * capabilities to object references in order to enable the ORB service + * implementation in the client to function properly. + * <p> + * This is supported through the <code>IORInterceptor</code> and + * <code>IORInfo</code> interfaces. + * + * @see IORInfo + */ + local interface IORInterceptor : Interceptor { + /** + * A server side ORB calls the <code>establish_components</code> + * operation on all registered <code>IORInterceptor</code> instances + * when it is assembling the list of components that will be included + * in the profile or profiles of an object reference. This operation + * is not necessarily called for each individual object reference. + * In the case of the POA, this operation is called each time POA::create_POA + * is called. In any case, <code>establish_components</code> is + * guaranteed to be called at least once for each distinct set of + * server policies. + * <p> + * An implementation of <code>establish_components</code> must not + * throw exceptions. If it does, the ORB shall ignore the exception + * and proceed to call the next IOR Interceptor's + * <code>establish_components</code> operation. + * + * @param info The <code>IORInfo</code> instance used by the ORB + * service to query applicable policies and add components to be + * included in the generated IORs. + */ + void establish_components (in IORInfo info); + }; + + local interface IORInterceptor_3_0 : IORInterceptor { + /** The components_established method is invoked on all registered + * IORInterceptor_3_0 instances after establish_components + * has been invoked on all registered IORInterceptor instances. + * The adapter_template is available in info during this call. + * The current_factory may be get or set in info during this call. + * <p> + * Any exception thrown from this method is handled by the Object + * Adapter that called this interceptor. In the case of the POA, + * an exception results in a OBJ_ADAPTER exception with an OMG + * standard minor code of 6. + * @param info The IORInfo for the object adapter being created. + */ + void components_established( in IORInfo info ) ; + + /** Called whenever the state of an adapter manager changes. + * For the POA, that is the POAManager. If the state change + * is reported through <code>adapter_manager_state_changed</code>, + * it is not reported through <code>adapter_state_changed</code>. + * @param id the adapter manager id of the adapter manager that + * changed state + * @param state the new state of the adapter manager + */ + void adapter_manager_state_changed( in AdapterManagerId id, + in AdapterState state ) ; + + /** Called whenever the state of an object adapter changes, and + * the state change is not caused by an adapter manager. Such + * changes are reported to all registered <code>IORInterceptor_3_0</code> + * instances. + * @param templates the sequence of <code>ObjectReferenceTemplate</code> instances + * on which this state change occurred. + * @param state the new <code>AdapterState</code> shared by all of the templates. + */ + void adapter_state_changed( in ObjectReferenceTemplateSeq templates, + in AdapterState state ) ; + }; + + /** + * Enables policy types to be constructed using + * <code>CORBA.ORB.create_policy</code>. + * <p> + * A portable ORB service implementation registers an instance of the + * <code>PolicyFactory</code> interface during ORB initialization in order + * to enable its policy types to be constructed using + * <code>CORBA.ORB.create_policy</code>. The POA is required to preserve + * any policy which is registered with <code>ORBInitInfo</code> in this + * manner. + * + * @see ORBInitInfo#register_policy_factory + */ + local interface PolicyFactory + { + /** + * Returns an instance of the appropriate interface derived from + * <code>CORBA.Policy</code> whose value corresponds to the + * specified any. + * <p> + * The ORB calls <code>create_policy</code> on a registered + * <code>PolicyFactory</code> instance when + * <code>CORBA.ORB.create_policy</code> is called for the + * <code>PolicyType</code> under which the <code>PolicyFactory</code> has + * been registered. The <code>create_policy</code> operation then + * returns an instance of the appropriate interface derived from + * <code>CORBA.Policy</code> whose value corresponds to the specified + * any. If it cannot, it shall throw an exception as described for + * <code>CORBA.ORB.create_policy</code>. + * + * @param type An int specifying the type of policy being created. + * @param value An any containing data with which to construct the + * <code>CORBA.Policy</code>. + * @return A <code>CORBA.Policy</code> object of the specified type and + * value. + */ + CORBA::Policy create_policy + (in CORBA::PolicyType type, in any value) + raises (CORBA::PolicyError); + }; + + /** + * Passed to each <code>ORBInitializer</code>, allowing it to + * to register interceptors and perform other duties while the ORB is + * initializing. + * <p> + * The <code>ORBInitInfo</code> object is only valid during + * <code>ORB.init</code>. If a service keeps a reference to its + * <code>ORBInitInfo</code> object and tries to use it after + * <code>ORB.init</code> returns, the object no longer exists and an + * <code>OBJECT_NOT_EXIST</code> exception shall be thrown. + * + * @see ORBInitializer + */ + local interface ORBInitInfo { + + /** Object id, represented as a String */ + typedef string ObjectId; + + /** + * Only one Interceptor of a given name can be registered with the + * ORB for each Interceptor type. If an attempt is made to register a + * second Interceptor with the same name, DuplicateName is thrown. + * <p> + * An Interceptor may be anonymous, i.e., have an empty string as the + * name attribute. Any number of anonymous Interceptors may be + * registered with the ORB so, if the Interceptor being registered + * is anonymous, the registration operation will not throw + * <code>DuplicateName</code>. + */ + exception DuplicateName { + /** + * The name for which there was already an interceptor registered. + */ + string name; + }; + + /** + * This exception is thrown by + * <code>register_initial_reference</code> and + * <code>resolve_initial_references</code>. + * <code>register_initial_reference</code> throws <code>InvalidName</code> + * if: + * <ul> + * <li>this operation is called with an empty string id; or</li> + * <li>this operation is called with an id that is already registered, + * including the default names defined by OMG.</li> + * </ul> + * <code>resolve_initial_references</code> throws + * <code>InvalidName</code> if the name to be resolved is invalid. + */ + exception InvalidName {}; + + /** + * Returns the arguments passed to <code>ORB.init</code>. They may or + * may not contain the ORB's arguments. + */ + readonly attribute CORBA::StringSeq arguments; + + /** + * Returns the ID of the ORB being initialized. + */ + readonly attribute string orb_id; + + /** + * Returns the <code>IOP.CodecFactory</code>. The + * <code>CodecFactory</code> is normally obtained via a call to + * <code>ORB.resolve_initial_references( "CodecFactory" )</code>, but + * since the ORB is not yet available and Interceptors, particularly when + * processing service contexts, will require a <code>Codec</code>, a + * means of obtaining a <code>Codec</code> is necessary during ORB + * initialization. + */ + readonly attribute IOP::CodecFactory codec_factory; + + /** + * Identical to <code>ORB.register_initial_reference</code>. This same + * functionality exists here because the ORB, not yet fully initialized, + * is not yet available but initial references may need to be + * registered as part of Interceptor registration. The only difference + * is that the version of this operation on the ORB uses PIDL + * (<code>CORBA.ORB.ObjectId</code>) and + * (<code>CORBA.ORB.InvalidName</code>) whereas the version in this + * interface uses IDL defined in this interface; the semantics are + * identical. + */ + void register_initial_reference (in ObjectId id, in Object obj) + raises (InvalidName); + + // This was incorrectly returning void in orbos/99-12-02, correction + // from errata in orbos/00-01-01 + /** + * Identical to <code>ORB.resolve_initial_references</code>. This same + * functionality exists here because the ORB, not yet fully initialized, + * is not yet available but initial references may be required from the + * ORB as part of Interceptor registration. The only difference is that + * the version of this operation on the ORB uses PIDL + * (<code>CORBA::ORB::ObjectId</code> and + * <code>CORBA::ORB::InvalidName</code>) whereas the version in this + * interface uses IDL defined in this interface; the semantics + * are identical. + * <p> + * This operation is only valid during post_init. + */ + Object resolve_initial_references (in ObjectId id) raises (InvalidName); + + /** + * Used to add a client-side request Interceptor to the list of + * client-side request Interceptors. + * + * @param interceptor The <code>ClientRequestInterceptor</code> to be + * added. + * @exception DuplicateName thrown if a client-side request Interceptor + * has already been registered with this Interceptor's name. + */ + void add_client_request_interceptor + (in ClientRequestInterceptor interceptor) + raises (DuplicateName); + + /** + * Used to add a server-side request Interceptor to the list of + * server-side request Interceptors. + * + * @param interceptor The ServerRequestInterceptor to be added. + * @exception DuplicateName thrown if a server-side request Interceptor + * has already been registered with this Interceptor's name + */ + void add_server_request_interceptor ( + in ServerRequestInterceptor interceptor) + raises (DuplicateName); + + /** + * Used to add an IOR Interceptor to the list of IOR Interceptors. + * + * @param interceptor The IORInterceptor to be added. + * @exception DuplicateName thrown if an IOR Interceptor has already + * been registered with this Interceptor's name. + */ + void add_ior_interceptor (in IORInterceptor interceptor) + raises (DuplicateName); + + /** + * Called to allocate a slot on <code>PortableInterceptor.Current</code>. + * <p> + * Note that while slot id's can be allocated within an ORB initializer, + * the slots themselves cannot be initialized. + * + * @return The index to the slot which has been allocated. + * @exception BAD_INV_ORDER thrown, with a standard minor code of 14, if + * <code>set_slot</code> or <code>get_slot</code> is called on the + * <code>PICurrent</code> within an ORB initializer. + * @see Current + */ + SlotId allocate_slot_id (); + + /** + * Registers a <code>PolicyFactory</code> for the given + * <code>PolicyType</code>. + * + * @param type The policy type that the given <code>PolicyFactory</code> + * serves. + * @param policy_factory The factory for the given policy type. + * @exception BAD_INV_ORDER thrown, with a standard minor code of 16, if + * a <code>PolicyFactory</code> already exists for the given + * <code>PolicyType</code>. + */ + void register_policy_factory ( + in CORBA::PolicyType type, + in PolicyFactory policy_factory); + }; + + /** + * Facilitates interceptor registration and ORB initialization. + * <p> + * Interceptors are intended to be a means by which ORB services gain + * access to ORB processing, effectively becoming part of the ORB. + * Since Interceptors are part of the ORB, when <code>ORB.init</code> + * returns an ORB, the Interceptors shall have been registered. + * Interceptors cannot be registered on an ORB after it has been + * returned by a call to <code>ORB.init</code>. + * <p> + * An Interceptor is registered by registering an associated + * <code>ORBInitializer</code> object which implements the + * <code>ORBInitializer</code> interface. When an ORB is initializing, + * it shall call each registered <code>ORBInitializer</code>, passing it + * an <code>ORBInitInfo</code> object which is used to register its + * Interceptor. + * <p> + * <b>Registering ORB Initializers in Java</b> + * <p> + * ORBInitializers are registered via Java ORB properties. + * <p> + * The property names are of the form: + * <blockquote><code> + * org.omg.PortableInterceptor.ORBInitializerClass.<Service> + * </code></blockquote> + * where <code><Service></code> is the string name of a class + * which implements + * <blockquote><code> + * org.omg.PortableInterceptor.ORBInitializer + * </code></blockquote> + * To avoid name collisions, the reverse DNS name convention should be + * used. For example, if company X has three initializers, it could define + * the following properties: + * <ul> + * <li><code> + * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init1 + * </code></li> + * <li><code> + * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init2 + * </code></li> + * <li><code> + * org.omg.PortableInterceptor.ORBInitializerClass.com.x.Init3 + * </code></li> + * </ul> + * During ORB.init, these ORB properties which begin with + * <code>org.omg.PortableInterceptor.ORBInitializerClass</code> shall be + * collected, the <code><Service></code> portion of each property + * shall be extracted, an object shall be instantiated with the + * <code><Service></code> string as its class name, and the + * <code>pre_init</code> and <code>post_init</code> methods shall be + * called on that object. If there are any exceptions, the ORB shall + * ignore them and proceed. + * <p> + * <b><i>Example</i></b> + * <p> + * A client-side logging service written by company X, for example, may + * have the following ORBInitializer implementation: + * <pre><code> + * package com.x.logging; + * + * import org.omg.PortableInterceptor.Interceptor; + * import org.omg.PortableInterceptor.ORBInitializer; + * import org.omg.PortableInterceptor.ORBInitInfo; + * + * public class LoggingService implements ORBInitializer { + * void pre_init( ORBInitInfo info ) { + * // Instantiate the Logging Service s Interceptor. + * Interceptor interceptor = new LoggingInterceptor(); + * + * // Register the Logging Service s Interceptor. + * info.add_client_request_interceptor( interceptor ); + * } + * + * void post_init( ORBInitInfo info ) { + * // This service does not need two init points. + * } + * } + * </code></pre> + * To run a program called <code>MyApp</code> using this logging + * service, the user could type: + * <blockquote><code> + * java + *-Dorg.omg.PortableInterceptor.ORBInitializerClass.com.x.Logging.LoggingService + * MyApp + * </code></blockquote> + * <p> + * <b>Notes about Registering Interceptors</b> + * <p> + * Request Interceptors are registered on a per-ORB basis. + * <p> + * To achieve virtual per-object Interceptors, query the policies on the + * target from within the interception points to determine whether they + * should do any work. + * <p> + * To achieve virtual per-POA Interceptors, instantiate each POA with a + * different ORB. While Interceptors may be ordered administratively, + * there is no concept of order with respect to the registration of + * Interceptors. Request Interceptors are concerned with service contexts. + * Service contexts have no order, so there is no purpose for request + * Interceptors to have an order. IOR Interceptors are concerned with + * tagged components. Tagged components also have no order, so there + * is no purpose for IOR Interceptors to have an order. + * <p> + * Registration code should avoid using the ORB (i.e., calling + * <code>ORB.init</code> with the provided <code>orb_id</code>). Since + * registration occurs during ORB initialization, results of invocations + * on this ORB while it is in this state are undefined. + * + * @see ORBInitInfo + */ + local interface ORBInitializer { + + /** + * Called during ORB initialization. If it is expected that initial + * services registered by an interceptor will be used by other + * interceptors, then those initial services shall be registered at + * this point via calls to + * <code>ORBInitInfo.register_initial_reference</code>. + * + * @param info provides initialization attributes and operations by + * which Interceptors can be registered. + */ + void pre_init (in ORBInitInfo info); + + /** + * Called during ORB initialization. If a service must resolve initial + * references as part of its initialization, it can assume that all + * initial references will be available at this point. + * <p> + * Calling the <code>post_init</code> operations is not the final + * task of ORB initialization. The final task, following the + * <code>post_init</code> calls, is attaching the lists of registered + * interceptors to the ORB. Therefore, the ORB does not contain the + * interceptors during calls to <code>post_init</code>. If an + * ORB-mediated call is made from within <code>post_init</code>, no + * request interceptors will be invoked on that call. + * Likewise, if an operation is performed which causes an IOR to be + * created, no IOR interceptors will be invoked. + * + * @param info provides initialization attributes and + * operations by which Interceptors can be registered. + */ + void post_init (in ORBInitInfo info); + }; +}; diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl b/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl new file mode 100644 index 0000000..32690f5 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/Messaging.idl @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#ifndef _MESSAGING_IDL_ +#define _MESSAGING_IDL_ + +#pragma prefix "omg.org" + +module Messaging { + + /** Synchronization scope */ + typedef short SyncScope; + + /** + * Constant, defined in the Messaging spec, to define how far the + * request shall progress before control is returned to the client. + */ + const SyncScope SYNC_WITH_TRANSPORT = 1; +}; + +#endif // _MESSAGING_IDL_ + diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html b/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html new file mode 100644 index 0000000..9c4034e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html @@ -0,0 +1,52 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + +Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +--> + +</head> +<body bgcolor="white"> +<P>This package contains the exceptions and typedefs from the <code>ORBInitInfo</code> +local interface of the <code>PortableInterceptor</code> module specified in the OMG +Portable Interceptor specification, +<a href="http://www.omg.org/cgi-bin/doc?ptc/2000-08-06"> +ptc/2000-08-06</a>, section 21.7.2. Please +refer to that OMG specification for further details. + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html b/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html new file mode 100644 index 0000000..f35c534 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableInterceptor/package.html @@ -0,0 +1,103 @@ +<!doctype html> +<html> +<head> +<!-- + +Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 only, as +published by the Free Software Foundation. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the LICENSE file that accompanied this code. + +This code 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 +version 2 for more details (a copy is included in the LICENSE file that +accompanied this code). + +You should have received a copy of the GNU General Public License version +2 along with this work; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +or visit www.oracle.com if you need additional information or have any +questions. + +--> + +</head> +<body> + +Provides a mechanism to register ORB hooks through which ORB services +can intercept the normal flow of execution of the ORB. + +<h2>Interceptor Types</h2> +There are currently three types of interceptors that can be registered: +<ul> + <li>{@link org.omg.PortableInterceptor.IORInterceptor IORInterceptor} - + Used to establish tagged components in the profiles within an IOR.</li> + <li>{@link org.omg.PortableInterceptor.ClientRequestInterceptor +ClientRequestInterceptor} - + Intercepts the flow of a request/reply sequence through the ORB on + the <i>client</i> side.</li> + <li>{@link org.omg.PortableInterceptor.ServerRequestInterceptor +ServerRequestInterceptor} - + Intercepts the flow of a request/reply sequence through the ORB on + the <i>server</i> side.</li> +</ul> +See the javadocs for class <code> +{@link org.omg.PortableInterceptor.ORBInitializer ORBInitializer}</code> +for how to go about registering interceptors. + +<a id="unimpl"></a> +<h2>Known limitations / unimplemented methods in package +<code>org.omg.PortableInterceptor</code></h2> + +<ul> + <li> + <code><b>RequestInfo</b></code> + <ul> + <li><code><b>sync_scope()</b></code>: Always returns SYNC_WITH_TRANSPORT</li> + <li><code><b>arguments()</b></code>: Only supported for DII/DSI calls</li> + <li><code><b>exceptions()</b></code>: Only supported for DII calls on client side. + Not supported on server-side.</li> + <li><code><b>contexts()</b></code>: Only supported for DII calls on client side. + Not supported on server-side since our ORB does not send contexts. + </li> + <li><code><b>operation_context()</b></code>: Only supported for DII calls + on client side. Not supported on server-side since ORB + does not send contexts.</li> + <li><code><b>result()</b></code>: Only supported for DII/DSI calls</li> + </ul> + </li> + <li> + <code><b>ClientRequestInfo</b></code> + <ul> + <li><code><b>received_exception_id()</b></code>: Always returns null in the + DII case</li> + <li><code><b>get_request_policy(int type)</b></code>: Not implemented.</li> + </ul> + </li> + <li> + <code><b>ServerRequestInfo</b></code> + <ul> + <li><code><b>sending_exception()</b></code>: Does not support user exceptions on + the server side in non-DSI case.</li> + </ul> + </li> +</ul> + +<h2>Package Specification</h2> +<P>For a precise list of supported sections of official OMG specifications with which +the Java[tm] Platform, Standard Edition 6 complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java b/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java new file mode 100644 index 0000000..82ec778 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/CurrentHelper.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.PortableServer; + + +/** +* org/omg/PortableServer/CurrentHelper.java . +* Generated by the IDL-to-Java compiler (portable), version "3.1" +* from ../../../../src/share/classes/org/omg/PortableServer/poa.idl +* Tuesday, October 23, 2001 1:17:01 PM PDT +*/ + + +/** + * The PortableServer::Current interface, derived from + * CORBA::Current, provides method implementations with + * access to the identity of the object on which the + * method was invoked. The Current interface is provided + * to support servants that implement multiple objects, + * but can be used within the context of POA-dispatched + * method invocations on any servant. To provide location + * transparency, ORBs are required to support use of + * Current in the context of both locally and remotely + * invoked operations. An instance of Current can be + * obtained by the application by issuing the + * CORBA::ORB::resolve_initial_references("POACurrent") + * operation. Thereafter, it can be used within the + * context of a method dispatched by the POA to obtain + * the POA and ObjectId that identify the object on + * which that operation was invoked. + */ +abstract public class CurrentHelper +{ + private static String _id = "IDL:omg.org/PortableServer/Current:2.3"; + + public static void insert (org.omg.CORBA.Any a, + org.omg.PortableServer.Current that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.PortableServer.Current extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc ( + org.omg.PortableServer.CurrentHelper.id (), "Current"); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.PortableServer.Current read ( + org.omg.CORBA.portable.InputStream istream) + { + throw new org.omg.CORBA.MARSHAL (); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, + org.omg.PortableServer.Current value) + { + throw new org.omg.CORBA.MARSHAL (); + } + + public static org.omg.PortableServer.Current narrow ( + org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof org.omg.PortableServer.Current) + return (org.omg.PortableServer.Current)obj; + else if (!obj._is_a (id ())) + throw new org.omg.CORBA.BAD_PARAM (); + return null; + } + +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html new file mode 100644 index 0000000..cb33802 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/CurrentPackage/package.html @@ -0,0 +1,61 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> +<P> Provides method implementations with + access to the identity of the object on which the + method was invoked. The <code>Current</code> package + supports servants that implement multiple objects, + but can be used within the context of POA-dispatched + method invocations on any servant. To provide location + transparency, ORBs are required to support use of + <code>Current</code> in the context of both locally and remotely + invoked operations. An instance of <code>Current</code> can be + obtained by the application by issuing the + <code>CORBA::ORB::resolve_initial_references("POACurrent")</code> + operation. Thereafter, it can be used within the + context of a method dispatched by the POA to obtain + the <code>POA</code> and <code>ObjectId</code> that identify the object on + which that operation was invoked. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java b/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java new file mode 100644 index 0000000..aaac51e --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/DynamicImplementation.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.PortableServer; + +/** + * Allows dynamic handling of object invocations. POA-based DSI + * servants inherit from the + * standard <code>DynamicImplementation</code> class, this class inherits + * from the <code>Servant</code> class. Based on IDL to Java spec. + * CORBA V 2.3.1 ptc/00-01-08.pdf. + */ +abstract public class DynamicImplementation extends Servant { + +/** + * Receives requests issued to any CORBA object + * incarnated by the DSI servant and performs the processing + * necessary to execute the request. + * @param request the request issued to the CORBA object. + */ + abstract public void invoke(org.omg.CORBA.ServerRequest request); +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java b/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java new file mode 100644 index 0000000..7a37689 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/POAHelper.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.PortableServer; + +/** +* org/omg/PortableServer/POAHelper.java . +* Generated by the IDL-to-Java compiler (portable), version "3.1" +* from ../../../../src/share/classes/org/omg/PortableServer/poa.idl +* Tuesday, October 23, 2001 1:16:58 PM PDT +*/ + + +/** + * A POA object manages the implementation of a + * collection of objects. The POA supports a name space + * for the objects, which are identified by Object Ids. + * A POA also provides a name space for POAs. A POA is + * created as a child of an existing POA, which forms a + * hierarchy starting with the root POA. A POA object + * must not be exported to other processes, or + * externalized with ORB::object_to_string. + */ +abstract public class POAHelper +{ + private static String _id = "IDL:omg.org/PortableServer/POA:2.3"; + + public static void insert (org.omg.CORBA.Any a, + org.omg.PortableServer.POA that) + { + org.omg.CORBA.portable.OutputStream out = a.create_output_stream (); + a.type (type ()); + write (out, that); + a.read_value (out.create_input_stream (), type ()); + } + + public static org.omg.PortableServer.POA extract (org.omg.CORBA.Any a) + { + return read (a.create_input_stream ()); + } + + private static org.omg.CORBA.TypeCode __typeCode = null; + synchronized public static org.omg.CORBA.TypeCode type () + { + if (__typeCode == null) + { + __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.PortableServer.POAHelper.id (), "POA"); + } + return __typeCode; + } + + public static String id () + { + return _id; + } + + public static org.omg.PortableServer.POA read ( + org.omg.CORBA.portable.InputStream istream) + { + throw new org.omg.CORBA.MARSHAL (); + } + + public static void write (org.omg.CORBA.portable.OutputStream ostream, + org.omg.PortableServer.POA value) + { + throw new org.omg.CORBA.MARSHAL (); + } + + public static org.omg.PortableServer.POA narrow (org.omg.CORBA.Object obj) + { + if (obj == null) + return null; + else if (obj instanceof org.omg.PortableServer.POA) + return (org.omg.PortableServer.POA)obj; + else if (!obj._is_a (id ())) + throw new org.omg.CORBA.BAD_PARAM (); + return null; + } +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html new file mode 100644 index 0000000..7bdbaec --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/POAManagerPackage/package.html @@ -0,0 +1,51 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> +<P> +Encapsulates the processing + state of the POAs it is associated with. Each <code>POA</code> object has an associated <code>POAManager</code> object. A POA manager may be associated with one or more + POA objects. + + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html new file mode 100644 index 0000000..3cda2fb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/POAPackage/package.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> + +<P>Allows programmers to construct object implementations that are portable +between different ORB products. + +<P>The Portable Object Adaptor (POA) is designed to meet the following goals: +<UL> +<LI>Allow programmers to construct object implementations that are portable between different ORB products. +<LI>Provide support for objects with persistent identities. +<LI>Provide support for transparent activation of objects. +<LI>Allow a single servant to support multiple object identities simultaneously. +</UL> + + + +<P>Given an interface <code>My</code> defined in <code>My.idl</code>, the file <code>MyPOA.java</code> +is generated by the <code>idlj</code> compiler. You must provide +the implementation for <code>My</code> and it must inherit from <code>MyPOA</code>. + +<P><code>MyPOA.java</code> is a stream-based skeleton that extends +<code>org.omg.PortableServer.Servant</code> and implements the <code>InvokeHandler</code> +interface and the operations interface associated with the IDL interface the skeleton implements. + +<P>The <code>PortableServer</code> module for the Portable Object Adapter (POA) +defines the native <code>Servant</code> type. In the Java programming language, +the <code>Servant</code> type is mapped to the Java <code>org.omg.PortableServer.Servant</code> class. +It serves as the base class for all POA servant implementations +and provides a number of methods that may be invoked by the application programmer, +as well as methods which are invoked by the POA itself +and may be overridden by the user to control aspects of servant behavior. + + + +<P>All Mapping corresponds to the Chapter 11 of + CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf. + The exception to this is the <code>id</code> attribute, which is added in ptc/00-08-06, + section 11.3.8.26. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6, ORB complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/Servant.java b/src/java.corba/share/classes/org/omg/PortableServer/Servant.java new file mode 100644 index 0000000..de960bb --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/Servant.java @@ -0,0 +1,266 @@ +/* + * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.PortableServer; + +import org.omg.CORBA.ORB; +import org.omg.PortableServer.portable.Delegate; + +/** + * Defines the native <code>Servant</code> type. In Java, the + * <code>Servant</code> type is mapped to the Java + * <code>org.omg.PortableServer.Servant</code> class. + * It serves as the base class for all POA servant + * implementations and provides a number of methods that may + * be invoked by the application programmer, as well as methods + * which are invoked by the POA itself and may be overridden by + * the user to control aspects of servant behavior. + * Based on IDL to Java spec. (CORBA V2.3.1) ptc/00-01-08.pdf. + */ + +abstract public class Servant { + + private transient Delegate _delegate = null; + /** + * Gets the ORB vendor-specific implementation of + * <code>PortableServer::Servant</code>. + * @return <code>_delegate</code> the ORB vendor-specific + * implementation of <code>PortableServer::Servant</code>. + */ + final public Delegate _get_delegate() { + if (_delegate == null) { + throw + new + org.omg.CORBA.BAD_INV_ORDER + ("The Servant has not been associated with an ORB instance"); + } + return _delegate; + } + + /** + * Supports the Java ORB portability + * interfaces by providing a method for classes that support + * ORB portability through delegation to set their delegate. + * @param delegate ORB vendor-specific implementation of + * the <code>PortableServer::Servant</code>. + */ + final public void _set_delegate(Delegate delegate) { + _delegate = delegate; + } + + /** + * Allows the servant to obtain the object reference for + * the target CORBA object it is incarnating for that request. + * @return <code>this_object</code> <code>Object</code> reference + * associated with the request. + */ + final public org.omg.CORBA.Object _this_object() { + return _get_delegate().this_object(this); + } + + /** + * Allows the servant to obtain the object reference for + * the target CORBA Object it is incarnating for that request. + * @param orb ORB with which the servant is associated. + * @return <code>_this_object</code> reference associated with the request. + */ + final public org.omg.CORBA.Object _this_object(ORB orb) { + try { + ((org.omg.CORBA_2_3.ORB)orb).set_delegate(this); + } + catch(ClassCastException e) { + throw + new + org.omg.CORBA.BAD_PARAM + ("POA Servant requires an instance of org.omg.CORBA_2_3.ORB"); + } + return _this_object(); + } + + /** + * Returns the instance of the ORB + * currently associated with the <code>Servant</code> (convenience method). + * @return <code>orb</code> the instance of the ORB currently + * associated with the <code>Servant</code>. + */ + final public ORB _orb() { + return _get_delegate().orb(this); + } + + /** + * Allows easy execution of common methods, equivalent to + * <code>PortableServer::Current:get_POA</code>. + * @return <code>poa</code> POA associated with the servant. + */ + final public POA _poa() { + return _get_delegate().poa(this); + } + + /** + * Allows easy execution of + * common methods, equivalent + * to calling <code>PortableServer::Current::get_object_id</code>. + * @return <code>object_id</code> the <code>Object</code> ID associated + * with this servant. + */ + final public byte[] _object_id() { + return _get_delegate().object_id(this); + } + + /** + * Returns the + * root POA from the ORB instance associated with the servant. + * Subclasses may override this method to return a different POA. + * @return <code>default_POA</code> the POA associated with the + * <code>Servant</code>. + */ + public POA _default_POA() { + return _get_delegate().default_POA(this); + } + + /** + * Checks to see if the specified <code>repository_id</code> is present + * on the list returned by <code>_all_interfaces()</code> or is the + * <code>repository_id</code> for the generic CORBA Object. + * @param repository_id the <code>repository_id</code> + * to be checked in the repository list or against the id + * of generic CORBA objects. + * @return <code>is_a</code> boolean indicating whether the specified + * <code>repository_id</code> is + * in the repository list or is same as a generic CORBA + * object. + */ + public boolean _is_a(String repository_id) { + return _get_delegate().is_a(this, repository_id); + } + + /** + * Checks for the existence of an + * <code>Object</code>. + * The <code>Servant</code> provides a default implementation of + * <code>_non_existent()</code> that can be overridden by derived servants. + * @return <code>non_existent</code> <code>true</code> if that object does + * not exist, <code>false</code> otherwise. + */ + public boolean _non_existent() { + return _get_delegate().non_existent(this); + } + + // Ken and Simon will ask about editorial changes + // needed in IDL to Java mapping to the following + // signature. + /** + * Returns an object in the Interface Repository + * which provides type information that may be useful to a program. + * <code>Servant</code> provides a default implementation of + * <code>_get_interface()</code> + * that can be overridden by derived servants if the default + * behavior is not adequate. + * @return <code>get_interface</code> type information that corresponds to this servant. + */ + /* + public org.omg.CORBA.Object _get_interface() { + return _get_delegate().get_interface(this); + } + */ + + // _get_interface_def() replaces the _get_interface() method + + /** + * Returns an <code>InterfaceDef</code> object as a + * <code>CORBA::Object</code> that defines the runtime type of the + * <code>CORBA::Object</code> implemented by the <code>Servant</code>. + * The invoker of <code>_get_interface_def</code> + * must narrow the result to an <code>InterfaceDef</code> in order + * to use it. + * <P>This default implementation of <code>_get_interface_def()</code> + * can be overridden + * by derived servants if the default behavior is not adequate. + * As defined in the CORBA 2.3.1 specification, section 11.3.1, the + * default behavior of <code>_get_interface_def()</code> is to use + * the most derived + * interface of a static servant or the most derived interface retrieved + * from a dynamic servant to obtain the <code>InterfaceDef</code>. + * This behavior must + * be supported by the <code>Delegate</code> that implements the + * <code>Servant</code>. + * @return <code>get_interface_def</code> an <code>InterfaceDef</code> + * object as a + * <code>CORBA::Object</code> that defines the runtime type of the + * <code>CORBA::Object</code> implemented by the <code>Servant</code>. + */ + public org.omg.CORBA.Object _get_interface_def() + { + // First try to call the delegate implementation class's + // "Object get_interface_def(..)" method (will work for ORBs + // whose delegates implement this method). + // Else call the delegate implementation class's + // "InterfaceDef get_interface(..)" method using reflection + // (will work for ORBs that were built using an older version + // of the Delegate interface with a get_interface method + // but not a get_interface_def method). + + org.omg.PortableServer.portable.Delegate delegate = _get_delegate(); + try { + // If the ORB's delegate class does not implement + // "Object get_interface_def(..)", this will throw + // an AbstractMethodError. + return delegate.get_interface_def(this); + } catch( AbstractMethodError aex ) { + // Call "InterfaceDef get_interface(..)" method using reflection. + try { + Class[] argc = { org.omg.PortableServer.Servant.class }; + java.lang.reflect.Method meth = + delegate.getClass().getMethod("get_interface", argc); + Object[] argx = { this }; + return (org.omg.CORBA.Object)meth.invoke(delegate, argx); + } catch( java.lang.reflect.InvocationTargetException exs ) { + Throwable t = exs.getTargetException(); + if (t instanceof Error) { + throw (Error) t; + } else if (t instanceof RuntimeException) { + throw (RuntimeException) t; + } else { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } catch( RuntimeException rex ) { + throw rex; + } catch( Exception exr ) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + } + } + + // methods for which the user must provide an + // implementation + /** + * Used by the ORB to obtain complete type + * information from the servant. + * @param poa POA with which the servant is associated. + * @param objectId is the id corresponding to the object + * associated with this servant. + * @return list of type information for the object. + */ + abstract public String[] _all_interfaces( POA poa, byte[] objectId); +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java new file mode 100644 index 0000000..76c8030 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.omg.PortableServer.ServantLocatorPackage; + +/** + * The native type PortableServer::ServantLocator::Cookie is mapped + * to java.lang.Object. A CookieHolder class is provided for passing + * the Cookie type as an out parameter. The CookieHolder class + * follows exactly the same pattern as the other holder classes + * for basic types. + */ + +final public class CookieHolder implements org.omg.CORBA.portable.Streamable +{ + public java.lang.Object value; + + public CookieHolder() { } + + public CookieHolder(java.lang.Object initial) { + value = initial; + } + + public void _read( org.omg.CORBA.portable.InputStream is) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + public void _write( org.omg.CORBA.portable.OutputStream os) { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } + + public org.omg.CORBA.TypeCode _type() { + throw new org.omg.CORBA.NO_IMPLEMENT(); + } +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html new file mode 100644 index 0000000..a409400 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html @@ -0,0 +1,51 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> +Provides classes and interfaces for locating the servant. + +<P>This package supplies a <code>CookieHolder</code> class for passing +the <code>Cookie</code> type as an <code>out</code> parameter. The <code>CookieHolder</code> class +follows exactly the same pattern as the other holder classes for basic types. + +<H2>Package Specification</H2> + +<P>For a precise list of supported sections of official OMG specifications with which +the Java[tm] Platform, Standard Edition 6 complies, see <A +HREF="../../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/corba.idl b/src/java.corba/share/classes/org/omg/PortableServer/corba.idl new file mode 100644 index 0000000..6d0a028 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/corba.idl @@ -0,0 +1,101 @@ +/* + * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +// minimal definitions to keep idltojava happy while compiling poa.idl +#pragma prefix "omg.org" + +module CORBA { + + typedef string Identifier; + typedef string RepositoryId; + + // basic Policy definition + typedef unsigned long PolicyType ; + + /** The Policy interface provides a mechanism for ORBs and Object + * Services to allow access to certain choices that affect their + * operation. This information is accessed in a structured manner + * using interfaces derived from the org.omg.CORBA.Policy interface. + */ + interface Policy { + /** Return the constant value that corresponds to the + * type of the policy object. The values of + * the polivy objectys are allocated by the OMG. + * New values for PolicyType should be obtained from the OMG by + * sending mail to request@omg.org. In general the constant + * values that are allocated are defined in conjunction with + * the definition of the corresponding policy object. + * @return the constant value that corresponds to the type of + * the policy object. + */ + readonly attribute PolicyType policy_type; + + /** Copies the policy object. The copy does not retain any + * relationships that the policy had with any domain or object. + * @return the copy of the policy object. + */ + Policy copy( ); + + /** Destroys the policy object. It is the responsibility of + * the policy object to determine whether it can be destroyed. + */ + void destroy( ); + }; + + typedef sequence <Policy> PolicyList; + + /** + * An interface that makes it possible to access information + * associated with a particular thread of execution, such as + * security information or a transaction identifier. + * <P> + * An ORB or CORBA service that needs its own thread-specific + * state extends the CORBA package's <code>Current</code>. + * Users of the service can obtain an instance of the appropriate + * <code>Current</code> interface by invoking + * <code>ORB.resolve_initial_references</code>. + * For example, the Security service obtains the <code>Current</code> + * relevant to it by invoking + * <PRE> + * ORB.resolve_initial_references("SecurityCurrent"); + * </PRE> + * <P> + * A CORBA service does not have to use this method of keeping context + * but may choose to do so. + * <P> + * Methods on classes that implement from <code>Current</code> access state + * associated with the thread in which they are invoked, not state associated + * with the thread from which the <code>Current</code> was obtained. + * Current objects must not be exported to other processes, or externalized + * with ORB.object_to_string. If any attempt is made to do so, the offending + * operation will raise a MARSHAL system exception. + * @see <a href="package-summary.html#unimpl"><code>portable</code> + * package comments for unimplemented features</a> + */ + interface Current { }; +}; + + diff --git a/src/java.corba/share/classes/org/omg/PortableServer/package.html b/src/java.corba/share/classes/org/omg/PortableServer/package.html new file mode 100644 index 0000000..ab441f9 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/package.html @@ -0,0 +1,230 @@ +<!doctype html> +<html> +<head> +<!-- + + Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body> +Provides classes and interfaces for making the server side of your applications +portable across multivendor ORBs. + +<P>In Java, Portable Object Adaptor (POA)-based Dynamic Skeleton Interface (DSI) +servants inherit from the standard <code>DynamicImplementation</code> class, which +inherits from the <code>Servant</code> class. The native <code>Servant</code> type is +defined by the <code>PortableServer</code> module for the POA. In Java, the + <code>Servant</code> type is mapped to the Java + <code>org.omg.PortableServer.Servant</code> class. + It serves as the base class for all POA servant + implementations and provides a number of methods that may + be invoked by the application programmer, as well as methods + which are invoked by the POA itself and may be overridden by + the user to control aspects of servant behavior. + +<H2>Package Specification</H2> + +<P>For a precise list of supported sections of official OMG specifications with which +the Java[tm] Platform, Standard Edition 6 complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +<H2>POA-related Interfaces</H2> + +<P>The <code>PortableServer</code> module defines the following POA-related interfaces: +<UL> + <LI><code>POA</code> + <LI><code>POAManager</code> + <LI><code>ServantManager</code> + <LI><code>ServantActivator</code> + <LI><code>ServantLocator</code> + <LI><code>AdapterActivator</code> + <LI><code>ThreadPolicy</code> + <LI><code>LifespanPolicy</code> + <LI><code>IdUniquenessPolicy</code> + <LI><code>IdAssignmentPolicy</code> + <LI><code>ImplicitActivationPolicy</code> + <LI><code>ServantRetentionPolicy</code> + <LI><code>RequestProcessingPolicy</code> + <LI><code>Current</code> +</UL> + +<P>In addition, the POA defines the <code>Servant</code> native type. + +<H3>Operations classes</H3> + +<P>Each of the interfaces listed above has an associated <code>Operations</code> interface. +The <code>Operations</code> interface is generated by the <code>idlj</code> compiler and +contains the method signatures for methods defined in its associated interface. +The <code>Operations</code> interface can be accessed by both the client and the server, +while its associated interface can only be called by the client. + +<H3>Value Classes</H3> + +Classes ending in the suffix <code>PolicyValue</code> provide the values used +for the <code>create_POA</code> call, which sets the policy for the POA. See +the <a href="#sampleserver">sample code</a> below for a demonstration. +<code>PolicyValue</code> files include the following: +<UL> +<LI><code>IdAssignmentPolicyValue</code> +<LI><code>IdUniquenessPolicyValue</code> +<LI><code>ImplicitActivationPolicyValue</code> +<LI><code>LifespanPolicyValue</code> +<LI><code>RequestProcessingPolicyValue</code> +<LI><code>ServantRetentionPolicyValue</code> +<LI><code>ThreadPolicyValue</code> +</UL> + +<H3>Helper Classes</H3> + +<P>Helper classes, which are generated for all user-defined types in an OMG IDL +interface, supply static methods needed to manipulate those types. +There is only one method in a helper class that an application programmer uses: +the <code>narrow</code> method. Only Java interfaces mapped from IDL interfaces +will have a helper class that includes a <code>narrow</code> method, so in +the <code>PortableServer</code> package, only the following classes have a <code>narrow</code> method: +<UL> +<LI><code>ForwardRequestHelper</code> +<LI><code>ServantActivatorHelper</code> +<LI><code>ServantLocatorHelper</code> +</UL> + +<H3>POA Classes</H3> + +<P>POA classes are used to implement the <code>ServantActivator</code> or <code>ServantLocator</code>. + +<H3>Exceptions</H3> + +<P>The <code>ForwardRequest</code> exception indicates to the ORB +that it is responsible for delivering the current request and +subsequent <code>ForwardRequest</code> requests to the object denoted in the +<code>forward_reference</code> member of the exception. + +<H3>Interfaces Implemented by the Application Programmer</H3> + +<P>Most of what <code>PortableServer</code> does is transparent to the user. +The result is that programmers will use only a few of the interfaces mentioned above. +The remaining interfaces will be provided by the ORB implementation. +The interfaces of interest to application programmers are the following: +<ul> + <LI><code>AdapterActivator</code> + <P>Adapter activators are associated with POAs. + An adapter activator supplies a POA with the ability to create child POAs on demand, + as a side-effect of receiving a request that names the child POA (or one of its children), + or when <code>find_POA</code> is called with an activate parameter value of <code>TRUE</code>. + An application server that creates all its needed POAs at the beginning of execution + does not need to use or provide an adapter activator; it is necessary + only for the case in which POAs need to be created during request processing. + <LI><code>ServantLocator</code> + <P>When the POA has the <code>NON_RETAIN</code> policy, + it uses servant managers that are <code>ServantLocator</code>s. + <LI><code>ServantActivator</code> + <P>When the POA has the <code>RETAIN</code> policy, + it uses servant managers that are <code>ServantActivator</code>s. +</ul> + + +<H2>Package <code>org.omg.PortableServer.ServantLocatorPackage</code></H2> + +<P>This package supplies a <code>CookieHolder</code> class for passing +the <code>Cookie</code> type as an <code>out</code> parameter. The <code>CookieHolder</code> class +follows exactly the same pattern as the other holder classes for basic types. + +<H2>Related Documentation</H2> + +<P>For an overview of Java IDL, please see: +{@extLink idl_guides Java IDL home page}. + +<H2>Example Code</H2> +<a id="sampleserver"></a> +<H3>Example Server Code</H3> +<PRE> +import javax.naming.InitialContext; +import javax.naming.Context; +import javax.rmi.PortableRemoteObject ; +import com.sun.corba.se.impl.poa.POAORB; +import org.omg.PortableServer.*; +import java.util.*; +import org.omg.CORBA.*; +import javax.rmi.CORBA.Stub; +import javax.rmi.CORBA.Util; + + + +public class HelloServer { + public HelloServer(String[] args) { + try { + Properties p = System.getProperties(); + // p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB"); + ORB orb = ORB.init( args, p ); + + POA rootPOA = (POA)orb.resolve_initial_references("RootPOA"); +<strong> + Policy[] tpolicy = new Policy[3]; + tpolicy[0] = rootPOA.create_lifespan_policy( + LifespanPolicyValue.TRANSIENT ); + tpolicy[1] = rootPOA.create_request_processing_policy( + RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY ); + tpolicy[2] = rootPOA.create_servant_retention_policy( + ServantRetentionPolicyValue.RETAIN); + POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy); +</strong> + + String ObjectId = "MyObjectId"; + byte[] oid = ObjectId.getBytes(); + + org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid, + new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]); + HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow( + obj, HelloInterface.class ); + + Context initialNamingContext = new InitialContext(); + initialNamingContext.rebind("HelloService", helloRef); + System.out.println("Hello Server: Ready..."); + orb.run(); + } catch (Exception e) { + System.out.println("Trouble: " + e); + e.printStackTrace(); + } + } + + + public static void main(String args[]) { + new HelloServer( args ); + } +} + + +</PRE> + + + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/PortableServer/poa.idl b/src/java.corba/share/classes/org/omg/PortableServer/poa.idl new file mode 100644 index 0000000..aecf570 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/poa.idl @@ -0,0 +1,1191 @@ +/* + * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include "corba.idl" +#include "CORBAX.idl" + +#pragma prefix "omg.org" +/** + * All Mapping corresponds to the Chapter 11 of + * CORBA V2.3.1 specified by OMG document formal/99-10-07.pdf. + * The exception to this is the id attribute, which is added in ptc/00-08-06, + * section 11.3.8.26. + */ +module PortableServer { + + #pragma version PortableServer 2.3 + + // forward reference + interface POA; + + /** + * List of POAs + */ + typedef sequence<POA> POAList; + + /** + * Values of type Servant support a language specific + * programming interface that can be used by the ORB to + * obtain a default POA for that servant. + * Some language mappings may allow Servant values to + * be implicitly converted to object references under + * appropriate conditions. + */ + native Servant; + + /** + * ObjectId value associated with the object reference. + */ + typedef sequence<octet> ObjectId; + + /** + * ForwardRequest to indicate to the ORB + * that it is responsible for delivering + * the current request and subsequent + * requests to the object denoted in the + * forward_reference member of the exception. + */ + exception ForwardRequest { Object forward_reference; }; + + // ********************************************** + // + // Policy interfaces + // + // ********************************************** + + /** + * The value representing THREAD_POLICY_ID. + */ + const CORBA::PolicyType THREAD_POLICY_ID = 16; + /** + * The value representing LIFESPAN_POLICY_ID. + */ + const CORBA::PolicyType LIFESPAN_POLICY_ID = 17; + /** + * The value representing ID_UNIQUENESS_POLICY_ID. + */ + const CORBA::PolicyType ID_UNIQUENESS_POLICY_ID = 18; + /** + * The value representing ID_ASSIGNMENT_POLICY_ID. + */ + const CORBA::PolicyType ID_ASSIGNMENT_POLICY_ID = 19; + /** + * The value representing IMPLICIT_ACTIVATION_POLICY_ID. + */ + const CORBA::PolicyType IMPLICIT_ACTIVATION_POLICY_ID = 20; + /** + * The value representing SERVANT_RETENTION_POLICY_ID. + */ + const CORBA::PolicyType SERVANT_RETENTION_POLICY_ID = 21; + /** + * The value representing REQUEST_PROCESSING_POLICY_ID. + */ + const CORBA::PolicyType REQUEST_PROCESSING_POLICY_ID = 22; + + /** + * The ThreadPolicyValue can have the following values. + * ORB_CTRL_MODEL - The ORB is responsible for assigning + * requests for an ORB- controlled POA to threads. + * SINGLE_THREAD_MODEL - Requests for a single-threaded + * POA are processed sequentially. + */ + enum ThreadPolicyValue { ORB_CTRL_MODEL, SINGLE_THREAD_MODEL }; + + /** + * The ThreadPolicy specifies the threading model + * used with the created POA. The default is + * ORB_CTRL_MODEL. + */ + interface ThreadPolicy : CORBA::Policy { + #pragma sun_local ThreadPolicy "" + /** + * specifies the policy value + */ + readonly attribute ThreadPolicyValue value; + }; + + /** + * The LifespanPolicyValue can have the following values. + * TRANSIENT - The objects implemented in the POA + * cannot outlive the POA instance in which they are + * first created. + * PERSISTENT - The objects implemented in the POA can + * outlive the process in which they are first created. + */ + enum LifespanPolicyValue { TRANSIENT, PERSISTENT }; + + /** + * The LifespanPolicy specifies the lifespan of the + * objects implemented in the created POA. The default + * is TRANSIENT. + */ + interface LifespanPolicy : CORBA::Policy { + #pragma sun_local LifespanPolicy "" + /** + * specifies the policy value + */ + readonly attribute LifespanPolicyValue value; + }; + + /** + * IdUniquenessPolicyValue can have the following values. + * UNIQUE_ID - Servants activated with that POA support + * exactly one Object Id. MULTIPLE_ID - a servant + * activated with that POA may support one or more + * Object Ids. + */ + enum IdUniquenessPolicyValue { UNIQUE_ID, MULTIPLE_ID }; + + /** + * The IdUniquenessPolicy specifies whether the servants + * activated in the created POA must have unique object i + * identities. The default is UNIQUE_ID. + */ + interface IdUniquenessPolicy : CORBA::Policy { + #pragma sun_local IdUniquenessPolicy "" + /** + * specifies the policy value + */ + readonly attribute IdUniquenessPolicyValue value; + }; + + /** + * The IdAssignmentPolicyValue can have the following + * values. USER_ID - Objects created with that POA are + * assigned Object Ids only by the application. + * SYSTEM_ID - Objects created with that POA are + * assigned Object Ids only by the POA. If the POA also + * has the PERSISTENT policy, assigned Object Ids must + * be unique across all instantiations of the same POA. + */ + enum IdAssignmentPolicyValue { USER_ID, SYSTEM_ID }; + + /** + * IdAssignmentPolicy specifies whether Object Ids in + * the created POA are generated by the application or + * by the ORB. The default is SYSTEM_ID. + */ + interface IdAssignmentPolicy : CORBA::Policy { + #pragma sun_local IdAssignmentPolicy "" + /** + * specifies the policy value + */ + readonly attribute IdAssignmentPolicyValue value; + }; + + /** + * ImplicitActivationPolicyValue has the following + * semantics. + * IMPLICIT_ACTIVATION to indicate implicit activation + * of servants. This requires SYSTEM_ID and RETAIN + * policies to be set. + * NO_IMPLICIT_ACTIVATION to indicate no implicit + * servant activation. + */ + enum ImplicitActivationPolicyValue { + IMPLICIT_ACTIVATION, NO_IMPLICIT_ACTIVATION + }; + + /** + * This policy specifies whether implicit activation + * of servants is supported in the created POA. + */ + interface ImplicitActivationPolicy : CORBA::Policy { + #pragma sun_local ImplicitActivationPolicy "" + /** + * specifies the policy value + */ + readonly attribute ImplicitActivationPolicyValue value; + }; + + /** + * ServantRetentionPolicyValue can have the following + * values. RETAIN - to indicate that the POA will retain + * active servants in its Active Object Map. + * NON_RETAIN - to indicate Servants are not retained by + * the POA. If no ServantRetentionPolicy is specified at + * POA creation, the default is RETAIN. + */ + enum ServantRetentionPolicyValue { RETAIN, NON_RETAIN }; + + /** + * This policy specifies whether the created POA retains + * active servants in an Active Object Map. + */ + interface ServantRetentionPolicy : CORBA::Policy { + #pragma sun_local ServantRetentionPolicy "" + /** + * specifies the policy value + */ + readonly attribute ServantRetentionPolicyValue value; + }; + + /** + * The RequestProcessingPolicyValue can have the following + * values. USE_ACTIVE_OBJECT_MAP_ONLY - If the Object Id + * is not found in the Active Object Map, + * an OBJECT_NOT_EXIST exception is returned to the + * client. The RETAIN policy is also required. + * USE_DEFAULT_SERVANT - If the Object Id is not found in + * the Active Object Map or the NON_RETAIN policy is + * present, and a default servant has been registered + * with the POA using the set_servant operation, + * the request is dispatched to the default servant. + * USE_SERVANT_MANAGER - If the Object Id is not found + * in the Active Object Map or the NON_RETAIN policy + * is present, and a servant manager has been registered + * with the POA using the set_servant_manager operation, + * the servant manager is given the opportunity to + * locate a servant or raise an exception. + */ + enum RequestProcessingPolicyValue { + USE_ACTIVE_OBJECT_MAP_ONLY, USE_DEFAULT_SERVANT, USE_SERVANT_MANAGER + }; + + /** + * This policy specifies how requests are processed by + * the created POA. The default is + * USE_ACTIVE_OBJECT_MAP_ONLY. + */ + interface RequestProcessingPolicy : CORBA::Policy { + #pragma sun_local RequestProcessingPolicy "" + /** + * specifies the policy value + */ + readonly attribute RequestProcessingPolicyValue value; + }; + + + // ************************************************** + // + // POAManager interface + // + // ********************************** + /** + * Each POA object has an associated POAManager object. + * A POA manager may be associated with one or more + * POA objects. A POA manager encapsulates the processing + * state of the POAs it is associated with. + */ + interface POAManager { + #pragma sun_local POAManager "" + exception AdapterInactive{ }; + /** + * Specifies the states for the POAManager + */ + enum State {HOLDING, ACTIVE, DISCARDING, INACTIVE}; + + /** + * This operation changes the state of the POA manager + * to active, causing associated POAs to start processing + * requests. + * @exception AdapterInactive is raised if the operation is + * invoked on the POAManager in inactive state. + */ + void activate() + raises(AdapterInactive); + /** + * This operation changes the state of the POA manager + * to holding, causing associated POAs to queue incoming + * requests. + * @param wait_for_completion if FALSE, the operation + * returns immediately after changing state. + * If TRUE, it waits for all active requests + * to complete. + * @exception AdapterInactive is raised if the operation is + * invoked on the POAManager in inactive state. + */ + void hold_requests(in boolean wait_for_completion) + raises(AdapterInactive); + /** + * This operation changes the state of the POA manager + * to discarding. This causes associated POAs to discard + * incoming requests. + * @param wait_for_completion if FALSE, the operation + * returns immediately after changing state. + * If TRUE, it waits for all active requests + * to complete. + * @exception AdapterInactive is raised if the operation is + * invoked on the POAManager in inactive state. + */ + void discard_requests(in boolean wait_for_completion) + raises(AdapterInactive); + + /** + * This operation changes the state of the POA manager + * to inactive, causing associated POAs to reject the + * requests that have not begun executing as well as + * as any new requests. + * @param etherealize_objects a flag to indicate whether + * to invoke the etherealize operation of the + * associated servant manager for all active + * objects. + * @param wait_for_completion if FALSE, the operation + * returns immediately after changing state. + * If TRUE, it waits for all active requests + * to complete. + * @exception AdapterInactive is raised if the operation is + * invoked on the POAManager in inactive state. + */ + void deactivate(in boolean etherealize_objects, + in boolean wait_for_completion) + raises(AdapterInactive); + /** + * This operation returns the state of the POA manager. + */ + State get_state(); + }; + + + // ************************************************** + // + // AdapterActivator interface + // + // **************************** + + /** + * An adapter activator supplies a POA with the ability + * to create child POAs on demand, as a side-effect of + * receiving a request that names the child POA + * (or one of its children), or when find_POA is called + * with an activate parameter value of TRUE. + */ + + interface AdapterActivator { + #pragma sun_local AdapterActivator "" + #pragma version AdapterActivator 2.3 + /** + * This operation is invoked when the ORB receives + * a request for an object reference that identifies + * a target POA that does not exist. The ORB invokes + * this operation once for each POA that must be + * created in order for the target POA to exist. + * @param parent indicates the parent POA for the POA + * that needs to be created. + * @param name identifies the name of the POA relative to + * the parent. + * @return returns TRUE if the POA was created or FALSE + * otherwise. + */ + boolean unknown_adapter(in POA parent, in string name); + }; + + + // ************************************************** + // + // ServantManager interface + // + // ****************************** + + /** + * A servant manager supplies a POA with the ability + * to activate objects on demand when the POA receives + * a request targeted at an inactive object. A servant + * manager is registered with a POA as a callback object, + * to be invoked by the POA when necessary. + * ServantManagers can either be ServantActivators or + * ServantLocators. A ServantManager object must be + * local to the process containing the POA objects + * it is registered with. + */ + + interface ServantManager + { #pragma sun_local ServantManager "" }; + + + /** + * When the POA has the RETAIN policy it uses servant + * managers that are ServantActivators. + */ + interface ServantActivator : ServantManager { + #pragma version ServantActivator 2.3 + #pragma sun_localservant ServantActivator "" + /** + * This operation is invoked by the POA whenever the + * POA receives a request for an object that is not + * currently active, assuming the POA has the + * USE_SERVANT_MANAGER and RETAIN policies. + * @param oid object Id associated with the object on + * the request was made. + * @param adapter object reference for the POA in which + * the object is being activated. + * @return Servant corresponding to oid is created or + * located by the user supplied servant manager. + * @exception ForwardRequest to indicate to the ORB + * that it is responsible for delivering + * the current request and subsequent + * requests to the object denoted in the + * forward_reference member of the exception. + */ + Servant incarnate ( in ObjectId oid, in POA adapter ) + raises (ForwardRequest); + /** + * This operation is invoked whenever a servant for + * an object is deactivated, assuming the POA has + * the USE_SERVANT_MANAGER and RETAIN policies. + * @param oid object Id associated with the object + * being deactivated. + * @param adapter object reference for the POA in which + * the object was active. + * @param serv contains reference to the servant + * associated with the object being deactivated. + * @param cleanup_in_progress if TRUE indicates that + * destroy or deactivate is called with + * etherealize_objects param of TRUE. FALSE + * indicates that etherealize was called due to + * other reasons. + * @param remaining_activations indicates whether the + * Servant Manager can destroy a servant. If + * set to TRUE, the Servant Manager should wait + * until all invocations in progress have + * completed. + */ + void etherealize ( in ObjectId oid, + in POA adapter, + in Servant serv, + in boolean cleanup_in_progress, + in boolean remaining_activations); + }; + + + /** + * When the POA has the NON_RETAIN policy it uses servant + * managers that are ServantLocators. Because the POA + * knows that the servant returned by this servant + * manager will be used only for a single request, + * it can supply extra information to the servant + * manager's operations and the servant manager's pair + * of operations may be able to cooperate to do + * something different than a ServantActivator. + * When the POA uses the ServantLocator interface, + * immediately after performing the operation invocation + * on the servant returned by preinvoke, the POA will + * invoke postinvoke on the servant manager, passing the + * ObjectId value and the Servant value as parameters + * (among others). This feature may be used to force + * every request for objects associated with a POA to + * be mediated by the servant manager. + */ + interface ServantLocator : ServantManager { + #pragma sun_localservant ServantLocator "" + /** + * Opaque data used to pass the information from + * preinvoke to postinvoke hooks. This specific + * by the language mapping, that is why it is + * specified as native. + */ + native Cookie; + /** + * This operations is used to get a servant that will be + * used to process the request that caused preinvoke to + * be called. + * @param oid the object id associated with object on + * which the request was made. + * @param adapter the reference for POA in which the + * object is being activated. + * @param operation the operation name. + * @param the_cookie an opaque value that can be set + * by the servant manager to be used + * during postinvoke. + * @return Servant used to process incoming request. + * @exception ForwardRequest to indicate to the ORB + * that it is responsible for delivering + * the current request and subsequent + * requests to the object denoted in the + * forward_reference member of the exception. + */ + Servant preinvoke( in ObjectId oid, in POA adapter, + in CORBA::Identifier operation, + out Cookie the_cookie ) + raises (ForwardRequest); + /** + * This operation is invoked whenener a servant completes + * a request. + * @param oid the object id ssociated with object on which + * the request was made. + * @param adapter the reference for POA in which the + * object was active. + * @param the_cookie an opaque value that contains + * the data set by preinvoke. + * @param the_servant reference to the servant that is + * associated with the object. + */ + void postinvoke( in ObjectId oid, in POA adapter, + in CORBA::Identifier operation, + in Cookie the_cookie, + in Servant the_servant); + }; + + + // ************************************************** + // + // POA interface + // + // ***************************************** + + /** + * A POA object manages the implementation of a + * collection of objects. The POA supports a name space + * for the objects, which are identified by Object Ids. + * A POA also provides a name space for POAs. A POA is + * created as a child of an existing POA, which forms a + * hierarchy starting with the root POA. A POA object + * must not be exported to other processes, or + * externalized with ORB::object_to_string. + */ + interface POA { + #pragma sun_local POA "" + #pragma version POA 2.3 + /** + * specifies that an child POA with the specified + * name already exists. + */ + exception AdapterAlreadyExists { }; + + /** + * This is raised if the POA with a specified Name cannot + * be found. + */ + exception AdapterNonExistent { }; + + /** + * This is raised if any of the policy objects are + * not valid for the ORB + */ + exception InvalidPolicy { + unsigned short index; + }; + + /** + * This is raised if no default servant is associated + * with the POA. + */ + exception NoServant { }; + + /** + * specifies that an object is already active or + * exists in the Active Object Map. + */ + exception ObjectAlreadyActive { }; + /** + * specifies that the object is not active or its + * mapping does not exist in the Active Object Map. + */ + + exception ObjectNotActive { }; + + /** + * This is raised when an attempt is made to activate + * a servant that is already active or has a mapping in + * the Active Object Map. + */ + exception ServantAlreadyActive { }; + + /** + * This is raised when an attempt is made to access a + * servant that is not active or is not registered in + * the Active Object Map. + */ + exception ServantNotActive { }; + + /** + * This is raised if the reference was not created by + * the POA + * specified in the reference. + */ + exception WrongAdapter { }; + + /** + * WrongPolicy is specified when the POA does not + * specify the policy appropriate for its operations. + */ + exception WrongPolicy { }; + + + //---------------------------------------- + // + // POA creation and destruction + // + //------------------------------- + + /** + * This operation creates a new POA as a child of the + * target POA. + * @param adapter_name identifies the new POA with + * respect to other POAs with the same parent POA. + * @param a_POAManager specifies the POA Manager to be + * associated with the new POA. + * @param policies specifies policy objects to be + * associated with the POA to control its behavior. + * @exception AdapterAlreadyExists specifies that the + * target POA already has a child POA with + * the specified name. + * @exception InvalidPolicy is raised if any of the + * policy objects are not valid for the ORB, + * or are in conflict, or require an + * administrative action that has not been + * performed. + */ + POA create_POA(in string adapter_name, + in POAManager a_POAManager, + in CORBA::PolicyList policies) + raises (AdapterAlreadyExists, InvalidPolicy); + + /** + * If the target POA is the parent of a child POA with + * the specified name (relative to the target POA), that + * child POA is returned. + * @param adapter_name POA name to be found. + * @param activate_it if a POA with the specified + * name does not exist and the value of + * the activate_it parameter is TRUE, the target + * POA's AdapterActivator, if one exists, + * is invoked. + * @return POA if one exists or is activated by the + * AdapterActivator. + * @return AdapterNonExistent is raised if POA with + * a specified name cannot be found or + * activated using AdapaterActivator. + */ + POA find_POA(in string adapter_name, + in boolean activate_it) + raises (AdapterNonExistent); + + /** + * This operation destroys the POA and all descendant + * POAs. All descendant POAs are destroyed (recursively) + * before the destruction of the containing POA. The POA + * so destroyed (that is, the POA with its name) may be + * re-created later in the same process. + * @param etherealize_objects flag to indicate whether + * etherealize operation on servant manager needs + * to be called. + * @param wait_for_completion flag to indicate whether + * POA and its children need to wait for active + * requests and the etherealization to complete. + * + */ + void destroy( in boolean etherealize_objects, + in boolean wait_for_completion); + + // ************************************************** + // + // Factories for Policy objects + // + // ************ + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return ThreadPolcy Object + */ + ThreadPolicy create_thread_policy( + in ThreadPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return LifespanPolicy Object. + */ + LifespanPolicy create_lifespan_policy( + in LifespanPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return IdUniquenessPolicy Object. + */ + IdUniquenessPolicy create_id_uniqueness_policy( + in IdUniquenessPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return IdAssignmentPolicy Object. + */ + IdAssignmentPolicy create_id_assignment_policy( + in IdAssignmentPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return ImplicitActivationPolicy Object. + */ + ImplicitActivationPolicy create_implicit_activation_policy( + in ImplicitActivationPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return ServantRetentionPolicy Object. + */ + ServantRetentionPolicy create_servant_retention_policy( + in ServantRetentionPolicyValue value); + /** + * These operations each return a reference to a policy + * object with the specified value. + * @param value policy type + * @return RequestProcessingPolicy Object. + */ + + RequestProcessingPolicy create_request_processing_policy( + in RequestProcessingPolicyValue value); + + //-------------------------------------------------- + // + // POA attributes + // + //----------------------------------- + /** + * This attribute identifies the POA relative to its + * parent. This name is assigned when the POA is created. + */ + readonly attribute string the_name; + /** + * This attribute identifies the parent of the POA. + * The parent of the root POA is null. + */ + readonly attribute POA the_parent; + /** + * This attribute identifies the current set of all + * child POAs of the POA. The set of child POAs + * includes only the POA's immediate children, and + * not their descendants. + */ + readonly attribute POAList the_children; + /** + * This attribute identifies the POA manager + * associated with the POA. + */ + readonly attribute POAManager the_POAManager; + + /** + * This attribute identifies the adapter activator + * associated with the POA. + */ + attribute AdapterActivator the_activator; + + //-------------------------------------------------- + // + // Servant Manager registration: + // + //-------------------------------------------------- + /** + * + * If the ServantRetentionPolicy of the POA is RETAIN, + * then the ServantManager argument (imgr) shall support + * the ServantActivator interface. For a NON_RETAIN policy, + * the ServantManager shall support the ServantLocator + * interface. If the argument is nil, or does not support + * the required interface, then the OBJ_ADAPTER + * exception is raised. + * @return ServantManager associated with a POA or null if + * none exists. + * @exception WrongPolicy raised if the + * USE_SERVANT_MANAGER policy is not specified. + */ + ServantManager get_servant_manager() + raises (WrongPolicy); + /** + * + * This operation sets the default servant manager + * associated with the POA. This operation may only be + * invoked once after a POA has been created. Attempting + * to set the servant manager after one has already + * been set will result in the BAD_INV_ORDER exception + * being raised. + * @param imgr servant manager to be used as a default. + * @exception WrongPolicy raised if the + * USE_SERVANT_MANAGER policy is not specified. + */ + void set_servant_manager( in ServantManager imgr) + raises (WrongPolicy); + + //-------------------------------------------------- + // + // operations for the USE_DEFAULT_SERVANT policy + // + //---------- + /** + * This operation returns the default servant associated + * with the POA. + * @return p_servant default servant associated with a POA. + * @exception NoServant raised if no default servant is + * associated with the POA. + * @exception WrongPolicy raised if the + * USE_DEFAULT_SERVANT policy is not specified. + */ + Servant get_servant() + raises (NoServant, WrongPolicy); + + /** + * + * This operation registers the specified servant with + * the POA as the default servant. This servant will + * be used for all requests for which no servant is + * found in the Active Object Map. + * @param p_servant servant to be used as a default. + * @exception WrongPolicy raised if the + * USE_DEFAULT_SERVANT policy is not specified. + */ + void set_servant(in Servant p_servant) + raises (WrongPolicy); + + // ************************************************** + // + // object activation and deactivation + // + // ************ + + /** + * + * This operation generates an Object Id and enters + * the Object Id and the specified servant in the + * Active Object Map. + * @param p_servant servant to be associated with an + * object to be activated. + * @return POA generated object id. + * @exception ServantAlreadyActive is raised if the + * POA has UNIQUE_ID policy and servant is + * is already in the Active Object Map. + * @exception WrongPolicy raised if the SYSTEM_ID and + * RETAIN policies are not specified. + */ + ObjectId activate_object( in Servant p_servant ) + raises (ServantAlreadyActive, WrongPolicy); + /** + * This operation enters an association between the + * specified Object Id and the specified servant in the + * Active Object Map. + * @param id object id for the object to be activated. + * @param p_servant servant to be associated with the + * object. + * @exception ServantAlreadyActive raised if the POA + * has the UNIQUE_ID policy and the servant + * is already in the Active Object Map. + * @exception ObjectAlreadyActive raised if the object is + * already active in the POA. + * @exception WrongPolicy raised if the RETAIN policy is + * is not specified. + */ + + void activate_object_with_id( in ObjectId id, + in Servant p_servant) + raises ( ServantAlreadyActive, ObjectAlreadyActive, + WrongPolicy); + /** + * + * This operation causes the ObjectId specified in the + * oid parameter to be deactivated. An ObjectId which + * has been deactivated continues to process requests + * until there are no active requests for that ObjectId. + * A deactivated ObjectId is removed from the Active + * Object Map when all requests executing for that + * ObjectId have completed. + * @param oid Object Id for the object to be deactivated. + * @exception ObjectNotActive if the object with the + * specified oid is not in the Active Object + * Map. + * @exception WrongPolicy raised if the RETAIN policy is + * is not specified. + */ + void deactivate_object(in ObjectId oid) + raises (ObjectNotActive, WrongPolicy); + + // ************************************************** + // + // reference creation operations + // + // ***************** + /** + * This operation creates an object reference that + * encapsulates a POA-generated Object Id value and + * the specified interface repository id. + * + * @param intf rep id for creating an object reference. + * @return object reference created using intf. + * @exception WrongPolicy if SYSTEM_ID policy is not + * specified. + */ + Object create_reference ( in CORBA::RepositoryId intf ) + raises (WrongPolicy); + + /** + * This operation creates an object reference that + * encapsulates the specified Object Id and interface + * repository Id values. It does not cause an activation + * to take place. The resulting reference may be passed + * to clients, so that subsequent requests on those + * references will cause the object to be activated + * if necessary, or the default servant used, depending + * on the applicable policies. + * @param oid object id for creating an objref + * @param intf rep id for creating an objref + * @return object reference created using oid and intf + * @exception BAD_PARAM is raised if the POA has the + * SYSTEM_ID policy and it detects that the + * Object Id value was not generated by the + * system or for this POA. + */ + Object create_reference_with_id ( in ObjectId oid, + in CORBA::RepositoryId intf ); + // not specified in 11.3.8.19 raises (WrongPolicy); + + //-------------------------------------------------- + // + // Identity mapping operations: + // + //-------------------------------------------------- + /** + * This operation has four possible behaviors. + * 1. If the POA has the UNIQUE_ID policy and the + * specified servant is active, the Object Id associated + * with that servant is returned. + * 2. If the POA has the IMPLICIT_ACTIVATION policy and + * either the POA has the MULTIPLE_ID policy or the + * specified servant is not active, the servant is + * activated using a POA-generated Object Id and the + * Interface Id associated with the servant, and that + * Object Id is returned. + * 3. If the POA has the USE_DEFAULT_SERVANT policy, + * the servant specified is the default servant, and the + * operation is being invoked in the context of executing + * a request on the default servant, then the ObjectId + * associated with the current invocation is returned. + * 4. Otherwise, the ServantNotActive exception is raised. + * + * @param p_servant servant for which the object disi returned. + * @return object id associated with the servant. + * @exception ServantNotActive if the above rules and + * policy combination is not met. + * @exception WrongPolicy if the USE_DEFAULT_SERVANT policy + * or a combination of the RETAIN policy and + * either the UNIQUE_ID or IMPLICIT_ACTIVATION + * policies are not present. + */ + ObjectId servant_to_id(in Servant p_servant) + raises (ServantNotActive, WrongPolicy); + + /** + * This operation requires the RETAIN policy and either + * the UNIQUE_ID or IMPLICIT_ACTIVATION policies if + * invoked outside the context of an operation dispatched + * by this POA. It has four possible behaviors. + * 1. If the POA has both the RETAIN and the + * UNIQUE_ID policy and the specified servant is active, + * an object reference encapsulating the information used + * to activate the servant is returned. + * 2. If the POA has both the RETAIN and the + * IMPLICIT_ACTIVATION policy and either the POA has the + * MULTIPLE_ID policy or the specified servant is not + * active, the servant is activated using a POA-generated + * Object Id and the Interface Id associated with the + * servant, and a corresponding object reference is + * returned. + * 3. If the operation was invoked in the context of + * executing a request on the specified servant, the + * reference associated with the current invocation + * is returned. + * 4. Otherwise, the ServantNotActive exception is raised. + * + * @param p_servant servant for which the object reference + * needs to be obtained. + * @return object reference associated with the servant. + * @exception WrongPolicy if the operation is not invoked + * in the context of executing a request on + * the specified servant and the required + * policies are not present. + * @exception ServantNotActive if the above specified + * policies and rules are not met. + */ + Object servant_to_reference(in Servant p_servant) + raises (ServantNotActive, WrongPolicy); + + /** + * If the POA has the RETAIN policy and the specified + * object is present in the Active Object Map, this + * operation returns the servant associated with that + * object in the Active Object Map. Otherwise, if the + * POA has the USE_DEFAULT_SERVANT policy and a default + * servant has been registered with the POA, this + * operation returns the default servant. If the object + * reference was not created by this POA, + * the WrongAdapter exception is raised. (OMG Issue + * on inconsistency with the POA.IDL. + * + * @param reference object reference for which the + * servant is returned. + * @return servant associated with the reference. + * @exception WrongPolicy if neither the RETAIN policy or + * the USE_DEFAULT_SERVANT policy is present. + * @exception ObjectNotActive if the servant is not + * present in the Active Object Map (for RETAIN) + * or no default servant is registered (for + * USE_DEFAULT_POLICY). + * @exception WrongAdapter if reference was not created by + * this POA instance. + */ + Servant reference_to_servant(in Object reference) + raises (ObjectNotActive, WrongPolicy, WrongAdapter); + + /** + * This operation returns the Object Id value + * encapsulated by the specified reference. This + * operation is valid only if the reference was created + * by the POA on which the operation is being performed. + * The object denoted by the reference does not have + * to be active for this operation to succeed. + * + * @param reference the object reference from which the + * object id needs to be returned. + * @return object id encapsulated in the reference. + * @exception WrongAdapter if the reference was not + * created by the POA specified in the + * reference. + * @exception WrongPolicy declared to allow future + * extensions. + * + */ + ObjectId reference_to_id(in Object reference) + raises (WrongAdapter, WrongPolicy); + + /** + * If the POA has the RETAIN policy and the specified + * ObjectId is in the Active Object Map, this operation + * returns the servant associated with that object in + * the Active Object Map. Otherwise, if the POA has + * the USE_DEFAULT_SERVANT policy and a default servant + * has been registered with the POA, this operation + * returns the default servant. + * + * @param oid object id for the which the servant is + * returned. + * @return servant associated with oid. + * @exception ObjectNotActive is raised if ObjectId is + * is not in the Active Object Map (for RETAIN + * policy), or no default servant is registered + * (for USE_DEFAULT_SERVANT policy). + * + * @exception WrongPolicy is raised if the RETAIN policy + * or the USE_DEFAULT_SERVANT + * policy is not present. + */ + Servant id_to_servant(in ObjectId oid) + raises (ObjectNotActive, WrongPolicy); + + /** + * If an object with the specified Object Id value is + * currently active, a reference encapsulating the + * information used to activate the object is returned. + * + * @param oid id of the object for which the + * reference is returned. + * @return the object reference + * + * @exception ObjectNotActive if the Object Id value + * is not active in the POA. + * @exception WrongPolicy if the RETAIN policy is not + * present. + */ + Object id_to_reference(in ObjectId oid) + raises (ObjectNotActive, WrongPolicy); + + /** + * This returns the unique id of the POA in the process in which it + * is created. It is for use by portable interceptors. + * <p> + * This id is guaranteed unique for the life span of the POA in the + * process. For persistent POAs, this means that if a POA is created + * in the same path with the same name as another POA, these POAs + * are identical and, therefore, have the same id. For transient + * POAs, each POA is unique. + */ + readonly attribute ::org::omg::CORBA::OctetSeq id; + + }; + + // ***************************************************** + // + // Current interface: + // + // ***************************************************** + + /** + * The PortableServer::Current interface, derived from + * CORBA::Current, provides method implementations with + * access to the identity of the object on which the + * method was invoked. The Current interface is provided + * to support servants that implement multiple objects, + * but can be used within the context of POA-dispatched + * method invocations on any servant. To provide location + * transparency, ORBs are required to support use of + * Current in the context of both locally and remotely + * invoked operations. An instance of Current can be + * obtained by the application by issuing the + * CORBA::ORB::resolve_initial_references("POACurrent") + * operation. Thereafter, it can be used within the + * context of a method dispatched by the POA to obtain + * the POA and ObjectId that identify the object on + * which that operation was invoked. + */ + interface Current : CORBA::Current { + #pragma sun_local Current "" + #pragma version Current 2.3 + /** + * The exception that is used to indicate that the + * operation is invoked outside the context of the + * POA-dispatched operation. + */ + + exception NoContext { }; + + /** + * Returns reference to the POA implementing the + * object in whose context it is called. + * + * @return The poa implementing the object + * + * @exception NoContext is raised when the operation is + * outside the context of a POA-dispatched + * operation + */ + POA get_POA() + raises (NoContext); + + /** + * Returns the ObjectId identifying the object in + * whose context it is called. + * + * @return the ObjectId of the object + * + * @exception NoContext is raised when the operation + * is called outside the context of a POA-dispatched + * operation. + */ + + ObjectId get_object_id() + raises (NoContext); + }; +}; diff --git a/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java b/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java new file mode 100644 index 0000000..56d9a4b --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/portable/Delegate.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.omg.PortableServer.portable; + +import org.omg.PortableServer.Servant; +import org.omg.PortableServer.POA; + +/** + * The portability package contains interfaces and classes + * that are designed for and intended to be used by ORB + * implementor. It exposes the publicly defined APIs that + * are used to connect stubs and skeletons to the ORB. + * The Delegate interface provides the ORB vendor specific + * implementation of PortableServer::Servant. + * Conformant to spec CORBA V2.3.1, ptc/00-01-08.pdf + */ +public interface Delegate { +/** + * Convenience method that returns the instance of the ORB + * currently associated with the Servant. + * @param Self the servant. + * @return ORB associated with the Servant. + */ + org.omg.CORBA.ORB orb(Servant Self); + +/** + * This allows the servant to obtain the object reference for + * the target CORBA Object it is incarnating for that request. + * @param Self the servant. + * @return Object reference associated with the request. + */ + org.omg.CORBA.Object this_object(Servant Self); + +/** + * The method _poa() is equivalent to + * calling PortableServer::Current:get_POA. + * @param Self the servant. + * @return POA associated with the servant. + */ + POA poa(Servant Self); + +/** + * The method _object_id() is equivalent + * to calling PortableServer::Current::get_object_id. + * @param Self the servant. + * @return ObjectId associated with this servant. + */ + byte[] object_id(Servant Self); + +/** + * The default behavior of this function is to return the + * root POA from the ORB instance associated with the servant. + * @param Self the servant. + * @return POA associated with the servant class. + */ + POA default_POA(Servant Self); + +/** + * This method checks to see if the specified repid is present + * on the list returned by _all_interfaces() or is the + * repository id for the generic CORBA Object. + * @param Self the servant. + * @param Repository_Id the repository_id to be checked in the + * repository list or against the id of generic CORBA + * object. + * @return boolean indicating whether the specified repid is + * in the list or is same as that got generic CORBA + * object. + */ + boolean is_a(Servant Self, String Repository_Id); + +/** + * This operation is used to check for the existence of the + * Object. + * @param Self the servant. + * @return boolean true to indicate that object does not exist, + * and false otherwise. + */ + boolean non_existent(Servant Self); + //Simon And Ken Will Ask About Editorial Changes + //In Idl To Java For The Following Signature. + +/** + * This operation returns an object in the Interface Repository + * which provides type information that may be useful to a program. + * @param self the servant. + * @return type information corresponding to the object. + */ + // The get_interface() method has been replaced by get_interface_def() + //org.omg.CORBA.Object get_interface(Servant Self); + + org.omg.CORBA.Object get_interface_def(Servant self); +} diff --git a/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html b/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html new file mode 100644 index 0000000..9969bb6 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/PortableServer/portable/package.html @@ -0,0 +1,49 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> +Provides classes and interfaces for making the server side of your applications +portable across multivendor ORBs. + +<P>The <code>portable</code> package contains interfaces and classes + that are designed for and intended to be used by an ORB +implementor. It exposes the publicly defined APIs that + are used to connect stubs and skeletons to the ORB. + The <code>Delegate</code> interface provides the ORB-vendor-specific + implementation of <code>PortableServer::Servant</code>. + This package conforms CORBA Specification V2.3.1, ptc/00-01-08. + +@since 1.4 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java b/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java new file mode 100644 index 0000000..b5eb36a --- /dev/null +++ b/src/java.corba/share/classes/org/omg/SendingContext/RunTime.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.SendingContext; + +/** Defines the base class that represents the Sending Context of a +* request. The sending context provides access to information about +* the runtime environment of the originator of a GIOP message. For example, +* when a value type is marshalled on a GIOP Request message, the receiver +* of the value type may need to ask the sender about the CodeBase for the +* implementation of the value type. +*/ +public interface RunTime extends RunTimeOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity +{ +} diff --git a/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java b/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java new file mode 100644 index 0000000..7205ce8 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/SendingContext/RunTimeOperations.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +package org.omg.SendingContext; + +/** Defines operations on the base class that represents the Sending Context of a +* request. The sending context provides access to information about +* the runtime environment of the originator of a GIOP message. For example, +* when a value type is marshalled on a GIOP Request message, the receiver +* of the value type may need to ask the sender about the CodeBase for the +* implementation of the value type. +*/ +public interface RunTimeOperations +{ +} diff --git a/src/java.corba/share/classes/org/omg/SendingContext/package.html b/src/java.corba/share/classes/org/omg/SendingContext/package.html new file mode 100644 index 0000000..a76f241 --- /dev/null +++ b/src/java.corba/share/classes/org/omg/SendingContext/package.html @@ -0,0 +1,76 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> +<head> +<!-- + + Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> + +</head> +<body bgcolor="white"> + Provides support for the marshalling of value types. Value type + marshalling may require access to an implementation of the value type or + to meta information about the value type. This information is passed + between the sending context and the receiving context using a particular + service context containing an instance of the + <code>SendingContext.RunTime</code> interface. + <P> + A sending context may be either the client side or the server side of + an invocation, depending on which contains a value type. + The sending context is the client side of an + invocation if the request contains a value type. It is the server side + if the reply contains a value type. The other party in the communication + is the receiving context. + <P> + The service context marshalled for <code>SendingContext</code> + consists of an encapsulated IOR for the <code>SendingContext.RunTime</code> + interface. <code>RunTime</code> is just a marker + interface defined to allow extensibility in the future. There is + currently only one subinterface of <code>RunTime</code> defined: + the <code>SendingContext.CodeBase</code> interface. + The interface <code>CodeBase</code> defines operations to obtain code URLs + and meta-information about a value type received from the sending + context. + <P> + Note that these classes are currently defined in the + <code>com.sun.org.omg.SendingContext</code> + package rather than in the package <code>org.omg.SendingContext</code>. + This has been done to avoid including large parts of the interface + repository in the JDK core, since the interface repository is still + evolving in response to the needs of the CORBA Components work. + +<H3>Package Specification</H3> + +<P>For a precise list of supported sections of official specifications with which +the Java[tm] Platform, Standard Edition 6 ORB complies, see <A +HREF="../CORBA/doc-files/compliance.html">Official Specifications for CORBA +support in Java[tm] SE 6</A>. + +@since 1.3 +<br> +@serial exclude +</body> +</html> diff --git a/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java b/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java new file mode 100644 index 0000000..d1cb4cd --- /dev/null +++ b/src/java.corba/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +/* + * Licensed Materials - Property of IBM + * RMI-IIOP v1.0 + * Copyright IBM Corp. 1998 1999 All Rights Reserved + * + */ + +// Stub class generated by rmic, do not edit. +// Contents subject to change without notice. + +package org.omg.stub.java.rmi; + +import java.rmi.Remote; +import javax.rmi.CORBA.Stub; + +/** + * This class provides the Stub for the Remote Type. The class is generated + * by the rmic compiler, and is still under works at OMG. It's contents are + * subject to change without notice as the specification evolves. + */ +public final class _Remote_Stub extends Stub implements Remote { + + private static final String _type_ids[] = { + "" + }; + + /** + * Returns an array of repository ids that an object implements. + * The string at index zero represents the most derived interface. The last id, + * for the generic CORBA object is (i.e., IDL:omg.org/CORBA/Object:1.0") is + * implied and not present. + * @return an array of repository ids that an object implements. + */ + public String[] _ids() { + return (String[]) _type_ids.clone(); + } +} diff --git a/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html b/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html new file mode 100644 index 0000000..6ac9fec --- /dev/null +++ b/src/java.corba/share/classes/org/omg/stub/java/rmi/package.html @@ -0,0 +1,40 @@ +<html> +<head> +<title>org.omg.stub.java.rmi package</title> +<!-- + + Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. Oracle designates this + particular file as subject to the "Classpath" exception as provided + by Oracle in the LICENSE file that accompanied this code. + + This code 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 + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + or visit www.oracle.com if you need additional information or have any + questions. + + +--> +</head> +<body bgcolor="white"> + Contains RMI-IIOP Stubs for the Remote types that occur in the + <code>java.rmi</code> package. + +@since 1.3 +<br> +@serial exclude +</body> +</html> |