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

jakarta.jms.MapMessage Maven / Gradle / Ivy

Go to download

This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up with different versions on classes on the class path).

There is a newer version: 34.0.0.Final
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