package com.sap.trex.client;
import java.io.IOException;
public class Error implements Serializable {
public static final int TREX_SAP_OK =0;
public static final int TREX_SAPRC_VALUE_TOO_LONG =19;
public static final int TREX_CHANNEL_OPEN =50;
public static final int TREX_CHANNEL_CLOSED =51;
public static final int TREX_CHANNEL_WRITE =52;
public static final int TREX_CHANNEL_READ =53;
public static final int TREX_CHANNEL_TIMEOUT =54;
public static final int TREX_SAPRC_SERVER_NOT_FOUND =1960;
public static final int TREX_SAPRC_UNKNOWN_EXCEPTION =1972;
public static final int IMSRC_TCPIP_OBJECT_ID_MISMATCH =2963;
public static final int TDBC_EMPTY_REQUEST =22001;
public static final int TDBC_INVALID_CONNECTION_URL =22004;
public static final int TDBC_CONN_INVALID_STATE =22005;
public static final int TDBC_IOEXCEPTION =22006;
public static final int TDBC_EMPTY_RESPONSE =22010;
public static final int TDBC_COLUMN_READ =22011;
public static final int TDBC_READ_ONLY =22012;
public static final int TDBC_WRITE_ONLY =22013;
private int itsCode;
private String itsMsg;
public static final String [][] messages =
{
{ Integer.toString(TREX_SAP_OK), "No error"},
{ Integer.toString(TREX_SAPRC_VALUE_TOO_LONG), "A received argument is too long"},
{ Integer.toString(TREX_SAPRC_UNKNOWN_EXCEPTION), "An unknown exception occured"},
{ Integer.toString(IMSRC_TCPIP_OBJECT_ID_MISMATCH), "A different object was expected" },
{ Integer.toString(TREX_CHANNEL_OPEN), "Error while opening a channel"},
{ Integer.toString(TREX_CHANNEL_CLOSED), "Channel is closed"},
{ Integer.toString(TREX_CHANNEL_WRITE), "Error while writing to channel"},
{ Integer.toString(TREX_CHANNEL_READ), "Error while reading from channel"},
{ Integer.toString(TREX_CHANNEL_TIMEOUT), "Communication timeout"},
{ Integer.toString(TDBC_EMPTY_REQUEST), "Empty request" },
{ Integer.toString(TDBC_INVALID_CONNECTION_URL), "Invalid connection url"},
{ Integer.toString(TDBC_CONN_INVALID_STATE), "Connection is in invalid state"},
{ Integer.toString(TDBC_EMPTY_RESPONSE), "Empty response from server"},
{ Integer.toString(TDBC_COLUMN_READ), "Column already read"},
{ Integer.toString(TDBC_READ_ONLY), "Read only type"},
{ Integer.toString(TDBC_WRITE_ONLY), "Write only type"},
};
public Error()
{
itsCode = 0;
itsMsg = "";
}
private void setMsg()
{
for (int i=0; i < messages.length;i++)
if (messages[i][0].equalsIgnoreCase(Integer.toString(itsCode))) {
itsMsg = messages[i][1];
return;
}
itsMsg="message not found";
}
public Error(int theCode)
{
set(theCode, null);
}
public Error(int theCode, String theAppend)
{
set(theCode, theAppend);
}
public Error(TrexException ex)
{
set(ex.getCode(), ex.getAppend());
}
public void set(int theCode)
{
set(theCode, null);
}
public void set(int theCode, String theAppend)
{
itsCode = theCode;
setMsg();
if(theAppend != null)
itsMsg += ";"+theAppend;
}
public void read(InputStream theStream) throws IOException, TrexException {
itsCode = theStream.readInt();
itsMsg = theStream.readString();
}
public void write(OutputStream theStream) throws IOException, TrexException {
theStream.writeInt(itsCode);
theStream.writeString(itsMsg);
}
public void clear() {
itsCode = 0;
itsMsg = "";
}
public int getCode()
{
return itsCode;
}
public String getMsg()
{
return itsMsg;
}
/*
* for compatibility
*/
public int getErrorCode()
{
return itsCode;
}
public String getErrorMessage()
{
return itsMsg;
}
}