1/* 2 * Copyright (c) 2002, 2006, 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 */ 25 26package javax.rmi.CORBA; 27 28/** 29 * Java to IDL ptc 02-01-12 1.5.1.5 30 * @since 1.5 31 */ 32public interface ValueHandlerMultiFormat extends ValueHandler { 33 34 /** 35 * Returns the maximum stream format version for 36 * RMI/IDL custom value types that is supported 37 * by this ValueHandler object. The ValueHandler 38 * object must support the returned stream format version and 39 * all lower versions. 40 * 41 * An ORB may use this value to include in a standard 42 * IOR tagged component or service context to indicate to other 43 * ORBs the maximum RMI-IIOP stream format that it 44 * supports. If not included, the default for GIOP 1.2 45 * is stream format version 1, and stream format version 46 * 2 for GIOP 1.3 and higher. 47 */ 48 byte getMaximumStreamFormatVersion(); 49 50 /** 51 * Allows the ORB to pass the stream format 52 * version for RMI/IDL custom value types. If the ORB 53 * calls this method, it must pass a stream format version 54 * between 1 and the value returned by the 55 * getMaximumStreamFormatVersion method inclusive, 56 * or else a BAD_PARAM exception with standard minor code 57 * will be thrown. 58 * 59 * If the ORB calls the older ValueHandler.writeValue(OutputStream, 60 * Serializable) method, stream format version 1 is implied. 61 * 62 * The ORB output stream passed to the ValueHandlerMultiFormat.writeValue 63 * method must implement the ValueOutputStream interface, and the 64 * ORB input stream passed to the ValueHandler.readValue method must 65 * implement the ValueInputStream interface. 66 */ 67 void writeValue(org.omg.CORBA.portable.OutputStream out, 68 java.io.Serializable value, 69 byte streamFormatVersion); 70} 71