/*
* Copyright 2003,2004 Colin Crist
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package hermes.providers.messages;
import hermes.HermesException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import org.apache.commons.collections.iterators.IteratorEnumeration;
/**
* @author colincrist@hermesjms.com
* @version $Id: MapMessageImpl.java,v 1.4 2004/09/16 20:30:49 colincrist Exp $
*/
public class MapMessageImpl extends MessageImpl implements MapMessage
{
private Map body = new HashMap();
/**
*
*/
public MapMessageImpl()
{
super();
}
/*
* (non-Javadoc)
*
* @see javax.jms.Message#clearBody()
*/
public void clearBody() throws JMSException
{
body.clear();
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getBoolean(java.lang.String)
*/
public boolean getBoolean(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Boolean)
{
return ((Boolean) body.get(arg0)).booleanValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getByte(java.lang.String)
*/
public byte getByte(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Byte)
{
return ((Byte) body.get(arg0)).byteValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getBytes(java.lang.String)
*/
public byte[] getBytes(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof byte[])
{
return ((byte[]) body.get(arg0));
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getChar(java.lang.String)
*/
public char getChar(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Character)
{
return ((Character) body.get(arg0)).charValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getDouble(java.lang.String)
*/
public double getDouble(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Double)
{
return ((Double) body.get(arg0)).doubleValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getFloat(java.lang.String)
*/
public float getFloat(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Float)
{
return ((Float) body.get(arg0)).floatValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getInt(java.lang.String)
*/
public int getInt(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Integer)
{
return ((Integer) body.get(arg0)).intValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getLong(java.lang.String)
*/
public long getLong(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Long)
{
return ((Long) body.get(arg0)).longValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getMapNames()
*/
public Enumeration getMapNames() throws JMSException
{
return new IteratorEnumeration(body.keySet().iterator());
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getObject(java.lang.String)
*/
public Object getObject(String arg0) throws JMSException
{
if (body.containsKey(arg0))
{
return body.get(arg0);
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getShort(java.lang.String)
*/
public short getShort(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof Short)
{
return ((Short) body.get(arg0)).shortValue();
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#getString(java.lang.String)
*/
public String getString(String arg0) throws JMSException
{
if (body.containsKey(arg0) && body.get(arg0) instanceof String)
{
return (String) body.get(arg0);
}
else
{
throw new HermesException("No such property " + arg0);
}
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#itemExists(java.lang.String)
*/
public boolean itemExists(String arg0) throws JMSException
{
return body.containsKey(arg0);
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setBoolean(java.lang.String, boolean)
*/
public void setBoolean(String arg0, boolean arg1) throws JMSException
{
body.put(arg0, new Boolean(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setByte(java.lang.String, byte)
*/
public void setByte(String arg0, byte arg1) throws JMSException
{
body.put(arg0, new Byte(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setBytes(java.lang.String, byte[])
*/
public void setBytes(String arg0, byte[] arg1) throws JMSException
{
body.put(arg0, arg1);
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setBytes(java.lang.String, byte[], int, int)
*/
public void setBytes(String arg0, byte[] arg1, int arg2, int arg3) throws JMSException
{
body.put(arg0, arg1);
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setChar(java.lang.String, char)
*/
public void setChar(String arg0, char arg1) throws JMSException
{
body.put(arg0, new Character(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setDouble(java.lang.String, double)
*/
public void setDouble(String arg0, double arg1) throws JMSException
{
body.put(arg0, new Double(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setFloat(java.lang.String, float)
*/
public void setFloat(String arg0, float arg1) throws JMSException
{
body.put(arg0, new Float(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setInt(java.lang.String, int)
*/
public void setInt(String arg0, int arg1) throws JMSException
{
body.put(arg0, new Integer(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setLong(java.lang.String, long)
*/
public void setLong(String arg0, long arg1) throws JMSException
{
body.put(arg0, new Long(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setObject(java.lang.String, java.lang.Object)
*/
public void setObject(String arg0, Object arg1) throws JMSException
{
body.put(arg0, arg1);
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setShort(java.lang.String, short)
*/
public void setShort(String arg0, short arg1) throws JMSException
{
body.put(arg0, new Short(arg1));
}
/*
* (non-Javadoc)
*
* @see javax.jms.MapMessage#setString(java.lang.String, java.lang.String)
*/
public void setString(String arg0, String arg1) throws JMSException
{
body.put(arg0, arg1);
}
}