com.ibm.as400.access.ExtendedIOException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400 Show documentation
Show all versions of jt400 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: ExtendedIOException.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2004 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.access;
import java.io.IOException;
/**
The ExtendedIOException class represents an exception
that indicates that an error has occurred while
communicating with the system.
**/
public class ExtendedIOException extends IOException
implements ReturnCodeException
{
static final long serialVersionUID = 4L;
private int rc_; // Return code associated with this exception
// Handles loading the appropriate resource bundle
// private static ResourceBundleLoader loader_;
// Return code values used by this class.
// If a value is added here, it must also be added to MRI.properties,
// and possibly also to IFSReturnCodeRep, which references most of these constants.
// The numbers assigned to these constants are significant
// and must not be changed.
/**
The return code indicating that
the file is in use.
**/
public final static int FILE_IN_USE = 1;
/**
The return code indicating that
the file was not found.
**/
public final static int FILE_NOT_FOUND = 2;
/**
The return code indicating that
the path is not found.
**/
public final static int PATH_NOT_FOUND = 3;
/**
The return code indicating that
the directory entry exists.
**/
public final static int DIR_ENTRY_EXISTS = 4;
/**
The return code indicating that
the access to the request was denied.
**/
public final static int ACCESS_DENIED = 5;
/**
The return code indicating that
the handle is not valid.
**/
public final static int INVALID_HANDLE = 6;
/**
The return code indicating that
the directory entry name is not valid.
**/
public final static int INVALID_DIR_ENTRY_NAME = 7;
/**
The return code indicating that
the attribute name is not valid.
**/
public final static int INVALID_ATTRIBUTE_NAME = 8;
/**
The return code indicating that
the directory is not empty.
**/
public final static int DIR_NOT_EMPTY = 9;
/**
The return code indicating that
the file substream is in use.
**/
public final static int FILE_SUBSTREAM_IN_USE = 10;
/**
The return code indicating that
the resource limit was exceeded.
**/
public final static int RESOURCE_LIMIT_EXCEEDED = 11;
/**
The return code indicating that
the resource is not available.
**/
public final static int RESOURCE_NOT_AVAILABLE = 12;
/**
The return code indicating that
the request was denied.
**/
public final static int REQUEST_DENIED = 13;
/**
The return code indicating that
the directory entry is damaged.
**/
public final static int DIR_ENTRY_DAMAGED = 14;
/**
The return code indicating that
the connection is not valid.
**/
public final static int INVALID_CONNECTION = 15;
/**
The return code indicating that
the request is not valid.
**/
public final static int INVALID_REQUEST = 16;
/**
The return code indicating that
there is a syntax error in the data stream.
**/
public final static int DATA_STREAM_SYNTAX_ERROR = 17;
/**
The return code indicating that
no more files are available.
**/
public final static int NO_MORE_FILES = 18;
/**
The return code indicating that
the parameter is not supported.
**/
public final static int PARM_NOT_SUPPORTED = 19;
/**
The return code indicating that
the parameter value is not supported.
**/
public final static int PARM_VALUE_NOT_SUPPORTED = 20;
/**
The return code indicating that
the value cannot be converted.
**/
public final static int CANNOT_CONVERT_VALUE = 21;
/**
The return code indicating that
the end of file has been reached.
**/
public final static int END_OF_FILE = 22;
/**
The return code indicating that
the request is not supported.
**/
public final static int REQUEST_NOT_SUPPORTED = 23;
/**
The return code indicating that
the user ID is not valid.
**/
public final static int INVALID_USER = 24;
/**
The return code indicating that
an unknown problem has occurred.
**/
public final static int UNKNOWN_ERROR = 25;
/**
The return code indicating that
a sharing violation has occurred.
**/
public final static int SHARING_VIOLATION = 32;
/**
The return code indicating that
a lock violation has occurred.
**/
public final static int LOCK_VIOLATION = 33;
/**
The return code indicating that
the handle is stale.
**/
public final static int STALE_HANDLE = 34;
// Additional constants, that are not referenced by IFSReturnCodeRep.
/**
The return code indicating that
no certificate was found.
"Certificate was not found."
**/
public final static int CERTIFICATE_NOT_FOUND = 40;
/**
The return code indicating that
the certificate was already added.
"Certificate association already exists."
**/
public final static int CERTIFICATE_ALREADY_ADDED = 41;
/**
The return code indicating that
the certificate or certificate format was not valid.
"Certificate or certificate type is not valid."
**/
public final static int INVALID_CERTIFICATE = 42;
/**
Constructs an ExtendedIOException object. It indicates
that an IO Exception occurred.
Exception message will look like this: End of file reached.
@param returnCode The return code which identifies the message to be returned.
**/
ExtendedIOException(int returnCode)
{
// Create the message
super(ResourceBundleLoader.getText(getMRIKey(returnCode)));
rc_ = returnCode;
}
/**
Constructs an ExtendedIOException object. It indicates
that an IO Exception occurred.
Exception message will look like this: myuserid: User ID not valid.
@param objectName The name of the object.
@param returnCode The return code which identifies the message to be returned.
**/
ExtendedIOException(String objectName, int returnCode)
{
// Create the message
super(objectName + ": " + ResourceBundleLoader.getText(getMRIKey(returnCode)));
rc_ = returnCode;
}
/**
Constructs an ExtendedIOException object. It indicates
that an IO Exception occurred.
Exception message will look like this: myuserid: User ID not valid. (errno: 2345)
@param objectName The name of the object.
@param returnCode The return code which identifies the message to be returned.
@param errno The errno value associated with the error.
**/
ExtendedIOException(String objectName, int returnCode, int errno)
{
// Create the message
super(objectName + ": " + ResourceBundleLoader.getText(getMRIKey(returnCode)) + " (errno: " + errno + ")");
rc_ = returnCode;
}
/**
Returns the translatable text associated with the
return code.
@param returnCode The return code associated with this exception.
@return The translatable text string which describes the error.
**/
// This method is required so the message can be created and sent in super()
static String getMRIKey (int returnCode)
{
switch(returnCode)
{
case ACCESS_DENIED :
return "EXC_ACCESS_DENIED";
case CANNOT_CONVERT_VALUE:
return "EXC_VALUE_CANNOT_CONVERT";
case CERTIFICATE_ALREADY_ADDED:
return "EXC_CERTIFICATE_ALREADY_ADDED";
case CERTIFICATE_NOT_FOUND:
return "EXC_CERTIFICATE_NOT_FOUND";
case DATA_STREAM_SYNTAX_ERROR:
return "EXC_DATA_STREAM_SYNTAX_ERROR";
case DIR_ENTRY_DAMAGED:
return "EXC_DIRECTORY_ENTRY_DAMAGED";
case DIR_ENTRY_EXISTS :
return "EXC_DIRECTORY_ENTRY_EXISTS";
case DIR_NOT_EMPTY :
return "EXC_DIRECTORY_NOT_EMPTY";
case END_OF_FILE:
return "EXC_FILE_END";
case FILE_IN_USE :
return "EXC_FILE_IN_USE";
case FILE_NOT_FOUND:
return "EXC_FILE_NOT_FOUND";
case FILE_SUBSTREAM_IN_USE :
return "EXC_FILE_SUBSTREAM_IN_USE";
case INVALID_ATTRIBUTE_NAME:
return "EXC_ATTRIBUTE_NOT_VALID";
case INVALID_CERTIFICATE:
return "EXC_CERTIFICATE_NOT_VALID";
case INVALID_CONNECTION:
return "EXC_CONNECTION_NOT_VALID";
case INVALID_DIR_ENTRY_NAME:
return "EXC_DIRECTORY_NAME_NOT_VALID";
case INVALID_HANDLE:
return "EXC_HANDLE_NOT_VALID";
case INVALID_REQUEST:
return "EXC_REQUEST_NOT_VALID";
case INVALID_USER:
return "EXC_USERID_UNKNOWN";
case LOCK_VIOLATION:
return "EXC_LOCK_VIOLATION";
case NO_MORE_FILES:
return "EXC_FILES_NOT_AVAILABLE";
case PARM_NOT_SUPPORTED:
return "EXC_PARAMETER_NOT_SUPPORTED";
case PARM_VALUE_NOT_SUPPORTED:
return "EXC_PARAMETER_VALUE_NOT_SUPPORTED";
case PATH_NOT_FOUND:
return "EXC_PATH_NOT_FOUND";
case REQUEST_DENIED:
return "EXC_REQUEST_DENIED";
case RESOURCE_LIMIT_EXCEEDED:
return "EXC_RESOURCE_LIMIT_EXCEEDED";
case RESOURCE_NOT_AVAILABLE :
return "EXC_RESOURCE_NOT_AVAILABLE";
case REQUEST_NOT_SUPPORTED :
return "EXC_REQUEST_NOT_SUPPORTED";
case SHARING_VIOLATION :
return "EXC_SHARE_VIOLATION";
case UNKNOWN_ERROR :
return "EXC_UNKNOWN";
default:
return "EXC_UNKNOWN"; // Bad return code was provided.
}
}
/**
Returns the return code associated with this exception.
@return The return code.
**/
public int getReturnCode ()
{
return rc_;
}
/**
* Update the exception, so that when it prints the return code.
* It will then be visible without needing to see the trace.
* See CPS 8B5S2H and CPS 8KMAN8
*/
public String toString() {
String returnString = super.toString() + " rc="+rc_;
return returnString;
}
} // End of ExtendedIOException class
© 2015 - 2025 Weber Informatics LLC | Privacy Policy