summaryrefslogtreecommitdiff
path: root/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gnu/classpath/tools/rmic/templates/ImplTie.jav')
-rw-r--r--tools/gnu/classpath/tools/rmic/templates/ImplTie.jav152
1 files changed, 152 insertions, 0 deletions
diff --git a/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav b/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav
new file mode 100644
index 000000000..aff606b90
--- /dev/null
+++ b/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav
@@ -0,0 +1,152 @@
+package #package;
+
+#imports
+import java.rmi.Remote;
+import javax.rmi.PortableRemoteObject;
+import javax.rmi.CORBA.Tie;
+
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.ResponseHandler;
+import org.omg.CORBA.portable.UnknownException;
+import org.omg.PortableServer.Servant;
+
+import org.omg.CORBA_2_3.portable.ObjectImpl;
+import org.omg.CORBA_2_3.portable.InputStream;
+
+// This Tie type is obsolete. Use the POA - based tie (key -poa).
+
+/**
+ * This class accepts remote calls to the served GIOP object and delegates them
+ * to the enclosed implementing class. Being derived from the ObjectImpl,
+ * it directly implements the GIOP Object.
+ *
+ * It is normally generated with grmic -impl
+ */
+public class _#nameImpl_Tie extends ObjectImpl implements Tie
+{
+ /**
+ * All decoded remote calls are forwarded to this target.
+ */
+ #implName target;
+
+ /**
+ * The array of repository ids, supported by this GIOP Object
+ */
+ private static final String[] type_ids =
+ {
+#idList
+ };
+
+ /**
+ * Get an array of all interfaces (repository ids),
+ * supported by this Object.
+ *
+ * @return the array of Ids.
+ */
+ public String[] _ids()
+ {
+ return type_ids;
+ }
+
+ /**
+ * Set the invocation target, where all received calls are finally
+ * forwarded.
+ *
+ * @param a_target the forwarding target
+ *
+ * @throws ClassCastException if the target is not an instance of
+ * #implName
+ */
+ public void setTarget(Remote a_target)
+ {
+ this.target = (#implName) a_target;
+ }
+
+ /**
+ * Get the invocation target, where all received calls are finally
+ * forwarded.
+ *
+ * @return the target, an instance of
+ * #implName
+ */
+ public Remote getTarget()
+ {
+ return target;
+ }
+
+ /**
+ * Return the actual GIOP object that would handle this request.
+ *
+ * @return <code>this</code>, always.
+ */
+ public org.omg.CORBA.Object thisObject()
+ {
+ return this;
+ }
+
+ /**
+ * Deactivates this object, disconnecting it from the orb.
+ */
+ public void deactivate()
+ {
+ _orb().disconnect(this);
+ _set_delegate(null);
+ target = null;
+ }
+
+ /**
+ * Get the {@link ORB} where this {@link Servant} is connected.
+ *
+ * @return the ORB
+ */
+ public ORB orb()
+ {
+ return _orb();
+ }
+
+ /**
+ * Connect this servant to the given ORB.
+ */
+ public void orb(ORB orb)
+ {
+ orb.connect(this);
+ }
+
+/**
+ * This method is invoked by ORB in response to the remote call. It redirects
+ * the call to one of the methods in the target.
+ *
+ * @param method the name of the method to call.
+ * @param parameter_stream the input stream, from where the parameters must be
+ * read.
+ * @param reply the response hander, providing methods to return the result.
+ *
+ * @return the output stream, created by the response handler
+ *
+ * @throws SystemException if one occurs during method invocation.
+ */
+ public OutputStream _invoke(String method,
+ org.omg.CORBA.portable.InputStream parameter_stream,
+ ResponseHandler reply)
+ {
+ try
+ {
+ InputStream in =(InputStream) parameter_stream;
+
+#tie_methods
+
+ throw new BAD_OPERATION("No such method: '"+method+"'");
+ }
+ catch (SystemException ex)
+ {
+ throw ex;
+ }
+ catch (Throwable ex)
+ {
+ throw new UnknownException(ex);
+ }
+ }
+} \ No newline at end of file