src/share/classes/org/omg/CORBA/LocalObject.java

Tue, 25 May 2010 15:52:11 -0700

author
ohair
date
Tue, 25 May 2010 15:52:11 -0700
changeset 158
91006f157c46
parent 1
55540e827aef
child 748
6845b95cba6b
permissions
-rw-r--r--

6943119: Rebrand source copyright notices
Reviewed-by: darcy

     1 /*
     2  * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package org.omg.CORBA;
    27 import org.omg.CORBA.portable.*;
    30 /**
    31  * <P>Used as a base class for implementation of a local IDL interface in the
    32  * Java language mapping.  It is a class which implements all the operations
    33  * in the <tt>org.omg.CORBA.Object</tt> interface.
    34  * <P>Local interfaces are implemented by using CORBA::LocalObject
    35  *  to provide implementations of <code>Object</code> pseudo
    36  *  operations and any other ORB-specific support mechanisms that are
    37  *  appropriate for such objects.  Object implementation techniques are
    38  *  inherently language-mapping specific.  Therefore, the
    39  *  <code>LocalObject</code> type is not defined in IDL, but is specified
    40  *  in each language mapping.
    41  *  <P>Methods that do not apply to local objects throw
    42  *  an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with the message,
    43  *  "This is a locally contrained object."  Attempting to use a
    44  *  <TT>LocalObject</TT> to create a DII request results in NO_IMPLEMENT
    45  *  system exception.  Attempting to marshal or stringify a
    46  *  <TT>LocalObject</TT> results in a MARSHAL system exception.  Narrowing
    47  *  and widening references to <TT>LocalObjects</TT> must work as for regular
    48  *  object references.
    49  *  <P><code>LocalObject</code> is to be used as the base class of locally
    50  *  constrained objects, such as those in the PortableServer module.
    51  *  The specification here is based on the CORBA Components
    52  *  Volume I - orbos/99-07-01<P>
    53  * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
    54      *      comments for unimplemented features</a>
    55  */
    57 public class LocalObject implements org.omg.CORBA.Object
    58 {
    59     private static String reason = "This is a locally constrained object.";
    61     /**
    62      * Constructs a default <code>LocalObject</code> instance.
    63      */
    64     public LocalObject() {}
    66     /**
    67      * <P>Determines whether the two object references are equivalent,
    68      * so far as the ORB can easily determine. Two object references are equivalent
    69      * if they are identical. Two distinct object references which in fact refer to
    70      * the same object are also equivalent. However, ORBs are not required
    71      * to attempt determination of whether two distinct object references
    72      * refer to the same object, since such determination could be impractically
    73      * expensive.
    74      * <P>Default implementation of the org.omg.CORBA.Object method. <P>
    75      *
    76      * @param that the object reference with which to check for equivalence
    77      * @return <code>true</code> if this object reference is known to be
    78      *         equivalent to the given object reference.
    79      *         Note that <code>false</code> indicates only that the two
    80      *         object references are distinct, not necessarily that
    81      *         they reference distinct objects.
    82      */
    83     public boolean _is_equivalent(org.omg.CORBA.Object that) {
    84         return equals(that) ;
    85     }
    87     /**
    88      * Always returns <code>false</code>.
    89      * This method is the default implementation of the
    90      * <code>org.omg.CORBA.Object</code> method.<P>
    91      *
    92      * @return <code>false</code>
    93      */
    94     public boolean _non_existent() {
    95         return false;
    96     }
    98     /**
    99      * Returns a hash value that is consistent for the
   100      * lifetime of the object, using the given number as the maximum.
   101      * This method is the default implementation of the
   102      * <code>org.omg.CORBA.Object</code> method.<P>
   103      * @param maximum an <code>int</code> identifying maximum value of
   104      *                  the hashcode
   105      * @return this instance's hashcode
   106      */
   107     public int _hash(int maximum) {
   108         return hashCode() ;
   109     }
   111     /**
   112      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   113      * the message "This is a locally constrained object."  This method
   114      * does not apply to local objects and is therefore not implemented.
   115      * This method is the default implementation of the
   116      * <code>org.omg.CORBA.Object</code> method.<P>
   117      *
   118      * @param repository_id a <code>String</code>
   119      * @return NO_IMPLEMENT because this is a locally constrained object
   120      *      and this method does not apply to local objects
   121      * @exception NO_IMPLEMENT because this is a locally constrained object
   122      *      and this method does not apply to local objects
   123      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   124      *      comments for unimplemented features</a>
   125      */
   126     public boolean _is_a(String repository_id) {
   127         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   128     }
   130     /**
   131      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   132      * the message "This is a locally constrained object."
   133      * This method is the default implementation of the
   134      * <code>org.omg.CORBA.Object</code> method.<P>
   135      * @return a duplicate of this <code>LocalObject</code> instance.
   136      * @exception NO_IMPLEMENT
   137      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   138      *      comments for unimplemented features</a>
   139      */
   140     public org.omg.CORBA.Object _duplicate() {
   141         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   142     }
   144     /**
   145      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   146      * the message "This is a locally constrained object."
   147      * This method is the default implementation of the
   148      * <code>org.omg.CORBA.Object</code> method.<P>
   149      * @exception NO_IMPLEMENT
   150      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   151      *      comments for unimplemented features</a>
   152      */
   153     public void _release() {
   154         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   155     }
   157     /**
   158      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   159      * the message "This is a locally constrained object."
   160      * This method is the default implementation of the
   161      * <code>org.omg.CORBA.Object</code> method.<P>
   162      *
   163      * @param operation a <code>String</code> giving the name of an operation
   164      *        to be performed by the request that is returned
   165      * @return a <code>Request</code> object with the given operation
   166      * @exception NO_IMPLEMENT
   167      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   168      *      comments for unimplemented features</a>
   169      */
   170     public Request _request(String operation) {
   171         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   172     }
   174     /**
   175      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   176      * the message "This is a locally constrained object."
   177      * This method is the default implementation of the
   178      * <code>org.omg.CORBA.Object</code> method.<P>
   179      *
   180      * @param ctx          a <code>Context</code> object containing
   181      *                     a list of properties
   182      * @param operation    the <code>String</code> representing the name of the
   183      *                     method to be invoked
   184      * @param arg_list     an <code>NVList</code> containing the actual arguments
   185      *                     to the method being invoked
   186      * @param result       a <code>NamedValue</code> object to serve as a
   187      *                     container for the method's return value
   188      * @return a new <code>Request</code> object initialized with the given
   189      * arguments
   190      * @exception NO_IMPLEMENT
   191      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   192      *      comments for unimplemented features</a>
   193      */
   194     public Request _create_request(Context ctx,
   195                                    String operation,
   196                                    NVList arg_list,
   197                                    NamedValue result) {
   198         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   199     }
   201     /**
   202      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   203      * the message "This is a locally constrained object."
   204      * This method is the default implementation of the
   205      * <code>org.omg.CORBA.Object</code> method.<P>
   206      *
   207      * @param ctx          a <code>Context</code> object containing
   208      *                     a list of properties
   209      * @param operation    the name of the method to be invoked
   210      * @param arg_list     an <code>NVList</code> containing the actual arguments
   211      *                     to the method being invoked
   212      * @param result       a <code>NamedValue</code> object to serve as a
   213      *                     container for the method's return value
   214      * @param exceptions   an <code>ExceptionList</code> object containing a
   215      *                     list of possible exceptions the method can throw
   216      * @param contexts     a <code>ContextList</code> object containing a list of
   217      *                     context strings that need to be resolved and sent
   218      *                     with the
   219      *                     <code>Request</code> instance
   220      * @return the new <code>Request</code> object initialized with the given
   221      * arguments
   222      * @exception NO_IMPLEMENT
   223      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   224      *      comments for unimplemented features</a>
   225      */
   226     public Request _create_request(Context ctx,
   227                                    String operation,
   228                                    NVList arg_list,
   229                                    NamedValue result,
   230                                    ExceptionList exceptions,
   231                                    ContextList contexts) {
   232         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   233     }
   235     /**
   236      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   237      * the message "This is a locally constrained object." This method
   238      * does not apply to local objects and is therefore not implemented.
   239      * This method is the default implementation of the
   240      * <code>org.omg.CORBA.Object</code> method.<P>
   241      * @return NO_IMPLEMENT because this is a locally constrained object
   242      *      and this method does not apply to local objects
   243      * @exception NO_IMPLEMENT because this is a locally constrained object
   244      *      and this method does not apply to local objects
   245      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   246      *      comments for unimplemented features</a>
   247      */
   248     public org.omg.CORBA.Object _get_interface()
   249     {
   250         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   251     }
   253     /**
   254      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   255      * the message "This is a locally constrained object."
   256      * This method is the default implementation of the
   257      * <code>org.omg.CORBA.Object</code> method.<P>
   258      * @exception NO_IMPLEMENT
   259      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   260      *      comments for unimplemented features</a>
   261      */
   262     public org.omg.CORBA.Object _get_interface_def()
   263     {
   264         // First try to call the delegate implementation class's
   265         // "Object get_interface_def(..)" method (will work for JDK1.2
   266         // ORBs).
   267         // Else call the delegate implementation class's
   268         // "InterfaceDef get_interface(..)" method using reflection
   269         // (will work for pre-JDK1.2 ORBs).
   271         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   272     }
   274     /**
   275      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   276      * the message "This is a locally constrained object."
   277      * This method is the default implementation of the
   278      * <code>org.omg.CORBA.Object</code> method.<P>
   279      * @return the ORB instance that created the Delegate contained in this
   280      * <code>ObjectImpl</code>
   281      * @exception NO_IMPLEMENT
   282      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   283      *      comments for unimplemented features</a>
   284      */
   285     public org.omg.CORBA.ORB _orb() {
   286         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   287     }
   289     /**
   290      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   291      * the message "This is a locally constrained object." This method
   292      * does not apply to local objects and is therefore not implemented.
   293      * This method is the default implementation of the
   294      * <code>org.omg.CORBA.Object</code> method.<P>
   295      * @param policy_type  an <code>int</code>
   296      * @return NO_IMPLEMENT because this is a locally constrained object
   297      *      and this method does not apply to local objects
   298      * @exception NO_IMPLEMENT because this is a locally constrained object
   299      *      and this method does not apply to local objects
   300      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   301      *      comments for unimplemented features</a>
   302      */
   303     public org.omg.CORBA.Policy _get_policy(int policy_type) {
   304         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   305     }
   308     /**
   309      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   310      * the message "This is a locally constrained object." This method
   311      * does not apply to local objects and is therefore not implemented.
   312      * This method is the default implementation of the
   313      * <code>org.omg.CORBA.Object</code> method.<P>
   314      * @exception NO_IMPLEMENT
   315      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   316      *      comments for unimplemented features</a>
   317      */
   318     public org.omg.CORBA.DomainManager[] _get_domain_managers() {
   319         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   320     }
   322     /**
   323      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   324      * the message "This is a locally constrained object." This method
   325      * does not apply to local objects and is therefore not implemented.
   326      * This method is the default implementation of the
   327      * <code>org.omg.CORBA.Object</code> method.
   328      *
   329      * @param policies an array
   330      * @param set_add a flag
   331      * @return NO_IMPLEMENT because this is a locally constrained object
   332      *      and this method does not apply to local objects
   333      * @exception NO_IMPLEMENT because this is a locally constrained object
   334      *      and this method does not apply to local objects
   335      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   336      *      comments for unimplemented features</a>
   337      */
   338     public org.omg.CORBA.Object
   339         _set_policy_override(org.omg.CORBA.Policy[] policies,
   340                              org.omg.CORBA.SetOverrideType set_add) {
   341         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   342     }
   345     /**
   346      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   347      * the message "This is a locally constrained object."
   348      * This method is the default implementation of the
   349      * <code>org.omg.CORBA.Object</code> method.<P>
   350      * Returns <code>true</code> for this <code>LocalObject</code> instance.<P>
   351      * @return <code>true</code> always
   352      * @exception NO_IMPLEMENT
   353      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   354      *      comments for unimplemented features</a>
   355      */
   356     public boolean _is_local() {
   357         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   358     }
   360     /**
   361      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   362      * the message "This is a locally constrained object."
   363      * This method is the default implementation of the
   364      * <code>org.omg.CORBA.Object</code> method.<P>
   365      * @param operation a <code>String</code> indicating which operation
   366      *                  to preinvoke
   367      * @param expectedType the class of the type of operation mentioned above
   368      * @return NO_IMPLEMENT because this is a locally constrained object
   369      *      and this method does not apply to local objects
   370      * @exception NO_IMPLEMENT because this is a locally constrained object
   371      *      and this method does not apply to local object
   372      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   373      *      comments for unimplemented features</a>
   374      */
   375     public ServantObject _servant_preinvoke(String operation,
   376                                             Class expectedType) {
   377         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   378     }
   380     /**
   381      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   382      * the message "This is a locally constrained object."
   383      * This method is the default implementation of the
   384      * <code>org.omg.CORBA.Object</code> method.<P>
   385      * @param servant the servant object on which to post-invoke
   386      * @exception NO_IMPLEMENT
   387      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   388      *      comments for unimplemented features</a>
   389      */
   390     public void _servant_postinvoke(ServantObject servant) {
   391         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   392     }
   394     /*
   395      * The following methods were added by orbos/98-04-03: Java to IDL
   396      * Mapping. These are used by RMI over IIOP.
   397      */
   399     /**
   400      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   401      * the message "This is a locally constrained object."
   402      * This method is the default implementation of the
   403      * <code>org.omg.CORBA.Object</code> method.
   404      * <P>Called by a stub to obtain an OutputStream for
   405      * marshaling arguments. The stub must supply the operation name,
   406      * and indicate if a response is expected (i.e is this a oneway
   407      * call).<P>
   408      * @param operation the name of the operation being requested
   409      * @param responseExpected <code>true</code> if a response is expected,
   410      *                         <code>false</code> if it is a one-way call
   411      * @return NO_IMPLEMENT because this is a locally constrained object
   412      *      and this method does not apply to local objects
   413      * @exception NO_IMPLEMENT because this is a locally constrained object
   414      *      and this method does not apply to local objects
   415      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   416      *      comments for unimplemented features</a>
   417      */
   418     public OutputStream _request(String operation,
   419                                  boolean responseExpected) {
   420         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   421     }
   423     /**
   424      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   425      * the message "This is a locally constrained object."
   426      * This method is the default implementation of the
   427      * <code>org.omg.CORBA.Object</code> method.
   428      * <P>Called to invoke an operation. The stub provides an
   429      * <code>OutputStream</code> that was previously returned by a
   430      * <code>_request()</code>
   431      * call. <code>_invoke</code> returns an <code>InputStream</code> which
   432      * contains the
   433      * marshaled reply. If an exception occurs, <code>_invoke</code> may throw an
   434      * <code>ApplicationException</code> object which contains an
   435      * <code>InputStream</code> from
   436      * which the user exception state may be unmarshaled.<P>
   437      * @param output the <code>OutputStream</code> to invoke
   438      * @return NO_IMPLEMENT because this is a locally constrained object
   439      *      and this method does not apply to local objects
   440      * @throws ApplicationException If an exception occurs,
   441      * <code>_invoke</code> may throw an
   442      * <code>ApplicationException</code> object which contains
   443      * an <code>InputStream</code> from
   444      * which the user exception state may be unmarshaled.
   445      * @throws RemarshalException If an exception occurs,
   446      * <code>_invoke</code> may throw an
   447      * <code>ApplicationException</code> object which contains
   448      * an <code>InputStream</code> from
   449      * which the user exception state may be unmarshaled.
   450      * @exception NO_IMPLEMENT because this is a locally constrained object
   451      *      and this method does not apply to local objects
   452      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   453      *      comments for unimplemented features</a>
   454      */
   455     public InputStream _invoke(OutputStream output)
   456         throws ApplicationException, RemarshalException
   457     {
   458         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   459     }
   461     /**
   462      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   463      * the message "This is a locally constrained object."
   464      * This method is the default implementation of the
   465      * <code>org.omg.CORBA.Object</code> method.
   466      * <P>May optionally be called by a stub to release a
   467      * reply stream back to the ORB when the unmarshaling has
   468      * completed. The stub passes the <code>InputStream</code> returned by
   469      * <code>_invoke()</code> or
   470      * <code>ApplicationException.getInputStream()</code>.
   471      * A null
   472      * value may also be passed to <code>_releaseReply</code>, in which case the
   473      * method is a no-op.<P>
   474      * @param input the reply stream back to the ORB or null
   475      * @exception NO_IMPLEMENT
   476      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   477      *      comments for unimplemented features</a>
   478      */
   479     public void _releaseReply(InputStream input) {
   480         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   481     }
   483     /**
   484      * Throws an <code>org.omg.CORBA.NO_IMPLEMENT</code> exception with
   485      * the message "This is a locally constrained object." This method
   486      * does not apply to local objects and is therefore not implemented.
   487      * This method is the default implementation of the
   488      * <code>org.omg.CORBA.Object</code> method.<P>
   489      * @return NO_IMPLEMENT because this is a locally constrained object
   490      *      and this method does not apply to local objects
   491      * @exception NO_IMPLEMENT because this is a locally constrained object
   492      *      and this method does not apply to local objects
   493      * @see <a href="package-summary.html#unimpl"><code>CORBA</code> package
   494      *      comments for unimplemented features</a>
   495      */
   497     public boolean validate_connection() {
   498         throw new org.omg.CORBA.NO_IMPLEMENT(reason);
   499     }
   500 }

mercurial