summaryrefslogtreecommitdiff
path: root/java/src/Ice/Object.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Ice/Object.java')
-rw-r--r--java/src/Ice/Object.java170
1 files changed, 170 insertions, 0 deletions
diff --git a/java/src/Ice/Object.java b/java/src/Ice/Object.java
new file mode 100644
index 00000000000..eb7cca0c067
--- /dev/null
+++ b/java/src/Ice/Object.java
@@ -0,0 +1,170 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package Ice;
+
+/**
+ * The base interface for servants.
+ **/
+public interface Object
+{
+ /**
+ * Returns a copy of the object. The cloned object contains field-for-field copies
+ * of the state.
+ *
+ * @return The cloned object.
+ **/
+ java.lang.Object clone() throws java.lang.CloneNotSupportedException;
+
+ /**
+ * @deprecated This method is deprecated, use hashCode instead.
+ **/
+ int ice_hash();
+
+ /**
+ * Tests whether this object supports a specific Slice interface.
+ *
+ * @param s The type ID of the Slice interface to test against.
+ * @return <code>true</code> if this object has the interface
+ * specified by <code>s</code> or derives from the interface
+ * specified by <code>s</code>.
+ **/
+ boolean ice_isA(String s);
+
+ /**
+ * Tests whether this object supports a specific Slice interface.
+ *
+ * @param s The type ID of the Slice interface to test against.
+ * @param current The {@link Current} object for the invocation.
+ * @return <code>true</code> if this object has the interface
+ * specified by <code>s</code> or derives from the interface
+ * specified by <code>s</code>.
+ **/
+ boolean ice_isA(String s, Current current);
+
+ /**
+ * Tests whether this object can be reached.
+ **/
+ void ice_ping();
+
+ /**
+ * Tests whether this object can be reached.
+ *
+ * @param current The {@link Current} object for the invocation.
+ **/
+ void ice_ping(Current current);
+
+ /**
+ * Returns the Slice type IDs of the interfaces supported by this object.
+ *
+ * @return The Slice type IDs of the interfaces supported by this object, in base-to-derived
+ * order. The first element of the returned array is always <code>::Ice::Object</code>.
+ **/
+ String[] ice_ids();
+
+ /**
+ * Returns the Slice type IDs of the interfaces supported by this object.
+ *
+ * @param current The {@link Current} object for the invocation.
+ * @return The Slice type IDs of the interfaces supported by this object, in base-to-derived
+ * order. The first element of the returned array is always <code>::Ice::Object</code>.
+ **/
+ String[] ice_ids(Current current);
+
+ /**
+ * Returns the Slice type ID of the most-derived interface supported by this object.
+ *
+ * @return The Slice type ID of the most-derived interface.
+ **/
+ String ice_id();
+
+ /**
+ * Returns the Slice type ID of the most-derived interface supported by this object.
+ *
+ * @param current The {@link Current} object for the invocation.
+ * @return The Slice type ID of the most-derived interface.
+ **/
+ String ice_id(Current current);
+
+ /**
+ * Returns the Freeze metadata attributes for an operation.
+ *
+ * @param The name of the operation.
+ * @return The least significant bit indicates whether the operation is a read
+ * or write operation. If the bit is set, the operation is a write operation.
+ * The expression <code>ice_operationAttributes("op") & 0x1</code> is true if
+ * the operation has a <code>["freeze:write"]</code> metadata directive.
+ * <p>
+ * The second- and third least significant bit indicate the transactional mode
+ * of the operation. The expression <code>ice_operationAttributes("op") & 0x6 >> 1</code>
+ * indicates the transactional mode as follows:
+ * <dl>
+ * <dt>0</dt>
+ * <dd><code>["freeze:read:supports"]</code></dd>
+ * <dt>1</dt>
+ * <dd><code>["freeze:read:mandatory"]</code> or <code>["freeze:write:mandatory"]</code></dd>
+ * <dt>2</dt>
+ * <dd><code>["freeze:read:required"]</code> or <code>["freeze:write:required"]</code></dd>
+ * <dt>3</dt>
+ * <dd><code>["freeze:read:never"]</code></dd>
+ * </dl>
+ *
+ * @see Freeze.TransactionalEvictor
+ **/
+ int ice_operationAttributes(String operation);
+
+ /**
+ * The Ice run time invokes this method prior to marshaling an object's data members. This allows a subclass
+ * to override this method in order to validate its data members.
+ **/
+ void ice_preMarshal();
+
+ /**
+ * The Ice run time invokes this method vafter unmarshaling an object's data members. This allows a
+ * subclass to override this method in order to perform additional initialization.
+ **/
+ void ice_postUnmarshal();
+
+ /**
+ * Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
+ * to a servant (or to another interceptor).
+ *
+ * @param request The details of the invocation.
+ * @param cb The callback object for asynchronous dispatch. For synchronous dispatch, the callback object
+ * must be <code>null</code>.
+ * @return The dispatch status for the operation.
+ *
+ * @see DispatchInterceptor
+ * @see DispatchInterceptorAsyncCallback
+ * @see DispatchStatus
+ **/
+ DispatchStatus ice_dispatch(Request request, DispatchInterceptorAsyncCallback cb);
+
+ /**
+ * Dispatches an invocation to a servant. This method is used by dispatch interceptors to forward an invocation
+ * to a servant (or to another interceptor).
+ *
+ * @param request The details of the invocation.
+ * @return The dispatch status for the operation.
+ *
+ * @see DispatchInterceptor
+ * @see DispatchStatus
+ **/
+ DispatchStatus ice_dispatch(Request request);
+
+ DispatchStatus __dispatch(IceInternal.Incoming in, Current current);
+
+ DispatchStatus __collocDispatch(IceInternal.Direct request);
+
+ void __write(IceInternal.BasicStream __os);
+ void __read(IceInternal.BasicStream __is, boolean __rid);
+
+ void __write(OutputStream __outS);
+ void __read(InputStream __inS, boolean __rid);
+}