All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.jms.MapMessage Maven / Gradle / Ivy

There is a newer version: 2.38.0
Show newest version
/*
 * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.jms;

import java.util.Enumeration;

/**
 * A {@code MapMessage} object is used to send a set of name-value pairs. The names are {@code String} objects, and the
 * values are primitive data types in the Java programming language. The names must have a value that is not null, and
 * not an empty string. The entries can be accessed sequentially or randomly by name. The order of the entries is
 * undefined. {@code MapMessage} inherits from the {@code Message} interface and adds a message body that contains a
 * Map.
 *
 * 

* The primitive types can be read or written explicitly using methods for each type. They may also be read or written * generically as objects. For instance, a call to {@code MapMessage.setInt("foo", 6)} is equivalent to * {@code MapMessage.setObject("foo", new Integer(6))}. Both forms are provided, because the explicit form is convenient * for static programming, and the object form is needed when types are not known at compile time. * *

* When a client receives a {@code MapMessage}, it is in read-only mode. If a client attempts to write to the message at * this point, a {@code MessageNotWriteableException} is thrown. If {@code clearBody} is called, the message can now be * both read from and written to. * *

* {@code MapMessage} objects support the following conversion table. The marked cases must be supported. The unmarked * cases must throw a {@code JMSException}. The {@code String}-to-primitive conversions may throw a runtime exception if * the primitive's {@code valueOf()} method does not accept it as a valid {@code String} representation of the * primitive. * *

* A value written as the row type can be read as the column type. * *

 * |        | boolean byte short char int long float double String byte[]
 * |----------------------------------------------------------------------
 * |boolean |    X                                            X
 * |byte    |          X     X         X   X                  X
 * |short   |                X         X   X                  X
 * |char    |                     X                           X
 * |int     |                          X   X                  X
 * |long    |                              X                  X
 * |float   |                                    X     X      X
 * |double  |                                          X      X
 * |String  |    X     X     X         X   X     X     X      X
 * |byte[]  |                                                        X
 * |----------------------------------------------------------------------
 * 
* *

* Attempting to read a null value as a primitive type must be treated as calling the primitive's corresponding * {@code valueOf(String)} conversion method with a null value. Since {@code char} does not support a {@code String} * conversion, attempting to read a null value as a {@code char} must throw a {@code NullPointerException}. * * @see jakarta.jms.Session#createMapMessage() * @see jakarta.jms.BytesMessage * @see jakarta.jms.Message * @see jakarta.jms.ObjectMessage * @see jakarta.jms.StreamMessage * @see jakarta.jms.TextMessage * * @version Jakarta Messaging 2.0 * @since JMS 1.0 */ public interface MapMessage extends Message { /** * Returns the {@code boolean} value with the specified name. * * @param name the name of the {@code boolean} * * @return the {@code boolean} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ boolean getBoolean(String name) throws JMSException; /** * Returns the {@code byte} value with the specified name. * * @param name the name of the {@code byte} * * @return the {@code byte} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ byte getByte(String name) throws JMSException; /** * Returns the {@code short} value with the specified name. * * @param name the name of the {@code short} * * @return the {@code short} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ short getShort(String name) throws JMSException; /** * Returns the Unicode character value with the specified name. * * @param name the name of the Unicode character * * @return the Unicode character value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ char getChar(String name) throws JMSException; /** * Returns the {@code int} value with the specified name. * * @param name the name of the {@code int} * * @return the {@code int} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ int getInt(String name) throws JMSException; /** * Returns the {@code long} value with the specified name. * * @param name the name of the {@code long} * * @return the {@code long} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ long getLong(String name) throws JMSException; /** * Returns the {@code float} value with the specified name. * * @param name the name of the {@code float} * * @return the {@code float} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ float getFloat(String name) throws JMSException; /** * Returns the {@code double} value with the specified name. * * @param name the name of the {@code double} * * @return the {@code double} value with the specified name * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ double getDouble(String name) throws JMSException; /** * Returns the {@code String} value with the specified name. * * @param name the name of the {@code String} * * @return the {@code String} value with the specified name; if there is no item by this name, a null value is returned * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ String getString(String name) throws JMSException; /** * Returns the byte array value with the specified name. * * @param name the name of the byte array * * @return a copy of the byte array value with the specified name; if there is no item by this name, a null value is * returned. * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. * @exception MessageFormatException if this type conversion is invalid. */ byte[] getBytes(String name) throws JMSException; /** * Returns the value of the object with the specified name. * *

* This method can be used to return, in objectified format, an object in the Java programming language ("Java object") * that had been stored in the Map with the equivalent {@code setObject} method call, or its equivalent primitive * settype method. * *

* Note that byte values are returned as {@code byte[]}, not {@code Byte[]}. * * @param name the name of the Java object * * @return a copy of the Java object value with the specified name, in objectified format (for example, if the object * was set as an {@code int}, an {@code Integer} is returned); if there is no item by this name, a null value is * returned * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. */ Object getObject(String name) throws JMSException; /** * Returns an {@code Enumeration} of all the names in the {@code MapMessage} object. * * @return an enumeration of all the names in this {@code MapMessage} * * @exception JMSException if the Jakarta Messaging provider fails to read the message due to some internal error. */ Enumeration getMapNames() throws JMSException; /** * Sets a {@code boolean} value with the specified name into the Map. * * @param name the name of the {@code boolean} * @param value the {@code boolean} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setBoolean(String name, boolean value) throws JMSException; /** * Sets a {@code byte} value with the specified name into the Map. * * @param name the name of the {@code byte} * @param value the {@code byte} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setByte(String name, byte value) throws JMSException; /** * Sets a {@code short} value with the specified name into the Map. * * @param name the name of the {@code short} * @param value the {@code short} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setShort(String name, short value) throws JMSException; /** * Sets a Unicode character value with the specified name into the Map. * * @param name the name of the Unicode character * @param value the Unicode character value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setChar(String name, char value) throws JMSException; /** * Sets an {@code int} value with the specified name into the Map. * * @param name the name of the {@code int} * @param value the {@code int} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setInt(String name, int value) throws JMSException; /** * Sets a {@code long} value with the specified name into the Map. * * @param name the name of the {@code long} * @param value the {@code long} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setLong(String name, long value) throws JMSException; /** * Sets a {@code float} value with the specified name into the Map. * * @param name the name of the {@code float} * @param value the {@code float} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setFloat(String name, float value) throws JMSException; /** * Sets a {@code double} value with the specified name into the Map. * * @param name the name of the {@code double} * @param value the {@code double} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setDouble(String name, double value) throws JMSException; /** * Sets a {@code String} value with the specified name into the Map. * * @param name the name of the {@code String} * @param value the {@code String} value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setString(String name, String value) throws JMSException; /** * Sets a byte array value with the specified name into the Map. * * @param name the name of the byte array * @param value the byte array value to set in the Map; the array is copied so that the value for {@code name} will not * be altered by future modifications * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null, or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setBytes(String name, byte[] value) throws JMSException; /** * Sets a portion of the byte array value with the specified name into the Map. * * @param name the name of the byte array * @param value the byte array value to set in the Map * @param offset the initial offset within the byte array * @param length the number of bytes to use * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setBytes(String name, byte[] value, int offset, int length) throws JMSException; /** * Sets an object value with the specified name into the Map. * *

* This method works only for the objectified primitive object types ({@code Integer}, {@code Double}, * {@code Long} ...), {@code String} objects, and byte arrays. * * @param name the name of the Java object * @param value the Java object value to set in the Map * * @exception JMSException if the Jakarta Messaging provider fails to write the message due to some internal error. * @exception IllegalArgumentException if the name is null or if the name is an empty string. * @exception MessageFormatException if the object is invalid. * @exception MessageNotWriteableException if the message is in read-only mode. */ void setObject(String name, Object value) throws JMSException; /** * Indicates whether an item exists in this {@code MapMessage} object. * * @param name the name of the item to test * * @return true if the item exists * * @exception JMSException if the Jakarta Messaging provider fails to determine if the item exists due to some internal error. */ boolean itemExists(String name) throws JMSException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy