package uk.co.mmscomputing.sms; import java.io.*; import java.util.*; public class SMSDataUnit implements SMSConstants{ protected Dictionary parameters; public SMSDataUnit(){ parameters=new Hashtable(); } protected int readOctet(boolean mandatory,InputStream in)throws IOException{ int b=in.read(); if(b==-1){ if(mandatory){ throw new IOException(getClass().getName()+".read():\n\tUnexpected end of stream."); } return 0x0000; } return b&0x00FF; } protected int readOctet(InputStream in)throws IOException{ return readOctet(true,in); } protected int readInt(boolean mandatory,InputStream in)throws IOException{ return readOctet(mandatory,in); } protected int readInt(InputStream in)throws IOException{ return readInt(true,in); } protected int read(InputStream in)throws IOException{ return readOctet(true,in); } protected void put(String name,Object value){ parameters.put(name,value); } public Object get(String name){ return parameters.get(name); } public boolean getBoolean(String name){ Boolean b=(Boolean)parameters.get(name); return b.booleanValue(); } public int getInt(String name){ Integer i=(Integer)parameters.get(name); return i.intValue(); } public byte getOctet(String name){ Integer i=(Integer)parameters.get(name); return (byte)i.intValue(); } public byte[] getUserData(){return new byte[0];} public void readFrom(InputStream in)throws IOException{ throw new IOException(getClass().getName()+".readFrom():\n\tNot implemented yet."); } public void writeTo(OutputStream out)throws IOException{ throw new IOException(getClass().getName()+".writeTo():\n\tNot implemented yet."); } public String toString(){ String s = getClass().getName()+":\n"; Enumeration e=parameters.keys(); while(e.hasMoreElements()){ String name=(String)e.nextElement(); s+=name+" = "+parameters.get(name)+"\n"; } return s; } }