package org.cups;
/**
* @version 1.00 06-NOV-2003
* @author Easy Software Products
*
* Internet Printing Protocol definitions for the Common UNIX Printing
* System (CUPS).
*
* Copyright 1997-2003 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE.txt" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636-3111 USA
*
* Voice: (301) 373-9603
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*/
/**
* An IPPError
object is used for error conversion.
*
* @author TDB
* @version 1.0
* @since JDK1.3
*/
import java.util.*;
import java.io.*;
public class IPPError
{
private int error_number;
private String error_string;
/**
* Constructor that sets error_string
after creation.
*
* @param error_number
Error number to convert.
* @see IPPDefs
*/
public IPPError(int p_error)
{
error_number = p_error;
error_string = ippErrorString( error_number );
}
/**
* Get the string associated with an error number.
*
* @param error
Error number to convert.
* @see IPPDefs
*/
private String ippErrorString( int error )
{
String unknown;
String status_oks[] = // "OK" status codes
{
"successful-ok",
"successful-ok-ignored-or-substituted-attributes",
"successful-ok-conflicting-attributes",
"successful-ok-ignored-subscriptions",
"successful-ok-ignored-notifications",
"successful-ok-too-many-events",
"successful-ok-but-cancel-subscription"
};
String status_400s[] = // Client errors
{
"client-error-bad-request",
"client-error-forbidden",
"client-error-not-authenticated",
"client-error-not-authorized",
"client-error-not-possible",
"client-error-timeout",
"client-error-not-found",
"client-error-gone",
"client-error-request-entity-too-large",
"client-error-request-value-too-long",
"client-error-document-format-not-supported",
"client-error-attributes-or-values-not-supported",
"client-error-uri-scheme-not-supported",
"client-error-charset-not-supported",
"client-error-conflicting-attributes",
"client-error-compression-not-supported",
"client-error-compression-error",
"client-error-document-format-error",
"client-error-document-access-error",
"client-error-attributes-not-settable",
"client-error-ignored-all-subscriptions",
"client-error-too-many-subscriptions",
"client-error-ignored-all-notifications",
"client-error-print-support-file-not-found"
};
String status_500s[] = // Server errors
{
"server-error-internal-error",
"server-error-operation-not-supported",
"server-error-service-unavailable",
"server-error-version-not-supported",
"server-error-device-error",
"server-error-temporary-error",
"server-error-not-accepting-jobs",
"server-error-busy",
"server-error-job-canceled",
"server-error-multiple-document-jobs-not-supported",
"server-error-printer-is-deactivated"
};
//
// See if the error code is a known value...
//
if ((error >= IPPDefs.OK) && (error <= IPPDefs.OK_BUT_CANCEL_SUBSCRIPTION))
{
return (status_oks[error]);
}
else if (error == IPPDefs.REDIRECTION_OTHER_SITE)
{
return ("redirection-other-site");
}
else if ((error >= IPPDefs.BAD_REQUEST) &&
(error <= IPPDefs.PRINT_SUPPORT_FILE_NOT_FOUND))
{
return (status_400s[error - IPPDefs.BAD_REQUEST]);
}
else if ((error >= IPPDefs.INTERNAL_ERROR) &&
(error <= IPPDefs.PRINTER_IS_DEACTIVATED))
{
return (status_500s[error - IPPDefs.INTERNAL_ERROR]);
}
//
// No, build an "unknown-xxxx" error string...
//
unknown = "unknown" + error;
return (unknown);
}
} // End of IPPError class