package jjil.android;
/**
* This is the class used to create Strings from Error objects when running
* under Android. The point is that the Android localization support is used so
* the same approach won't work with J2ME, etc.<br>
* Usage:<br>
* jjil.android.Error eAndroid = new jjil.android.Error(e);<br>
* ... eAndroid.toString() ...
* @author webb
*
*/
public class Error extends jjil.core.Error {
private static final String szMessage[][] = new String[jjil.core.Error.PACKAGE.COUNT][];
{
Error.szMessage[jjil.core.Error.PACKAGE.CORE] = new String[jjil.core.ErrorCodes.COUNT];
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.BOUNDS_OUTSIDE_IMAGE] =
Messages.getString("BOUNDS_OUTSIDE_IMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.ILLEGAL_PARAMETER_VALUE] =
Messages.getString("ILLEGAL_PARAMETER_VALUE");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.IMAGE_MASK_SIZE_MISMATCH] =
Messages.getString("IMAGE_MASK_SIZE_MISMATCH");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.MATH_DIVISION_ZERO] =
Messages.getString("MATH_DIVISION_ZERO");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.MATH_NEGATIVE_SQRT] =
Messages.getString("MATH_NEGATIVE_SQRT");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.MATH_PRODUCT_TOO_LARGE] =
Messages.getString("MATH_PRODUCT_TOO_LARGE");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.MATH_SQUARE_TOO_LARGE] =
Messages.getString("MATH_SQUARE_TOO_LARGE");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.NO_RESULT_AVAILABLE] =
Messages.getString("PIPELINE_NO_RESULT");
Error.szMessage[jjil.core.Error.PACKAGE.CORE][jjil.core.ErrorCodes.PIPELINE_EMPTY_PUSH] =
Messages.getString("PIPELINE_EMPTY_PUSH");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM] = new String[jjil.algorithm.ErrorCodes.COUNT];
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.CONN_COMP_LABEL_COMPARETO_NULL] =
Messages.getString("CONN_COMP_LABEL_COMPARETO_NULL");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.CONN_COMP_LABEL_OUT_OF_BOUNDS] =
Messages.getString("CONN_COMP_LABEL_OUT_OF_BOUNDS");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.INPUT_TERMINATED_EARLY] =
Messages.getString("INPUT_TERMINATED_EARLY");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.FFT_SIZE_LARGER_THAN_MAX] =
Messages.getString("FFT_SIZE_LARGER_THAN_MAX");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.FFT_SIZE_NOT_POWER_OF_2] =
Messages.getString("FFT_SIZE_NOT_POWER_OF_2");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.HEAP_EMPTY] =
Messages.getString("HEAP_EMPTY");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.HISTOGRAM_LENGTH_NOT_256] =
Messages.getString("HISTOGRAM_LENGTH_NOT_256");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.ILLEGAL_COLOR_CHOICE] =
Messages.getString("ILLEGAL_COLOR_CHOICE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_COMPLEX32IMAGE] =
Messages.getString("IMAGE_NOT_COMPLEX32IMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_GRAY16IMAGE] =
Messages.getString("IMAGE_NOT_GRAY16IMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_GRAY32IMAGE] =
Messages.getString("IMAGE_NOT_GRAY32IMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_GRAY8IMAGE] =
Messages.getString("IMAGE_NOT_GRAY8IMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_RGBIMAGE] =
Messages.getString("IMAGE_NOT_RGBIMAGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_NOT_SQUARE] =
Messages.getString("IMAGE_NOT_SQUARE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_SIZES_DIFFER] =
Messages.getString("IMAGE_SIZES_DIFFER");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IMAGE_TOO_SMALL] =
Messages.getString("IMAGE_TOO_SMALL");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.INPUT_IMAGE_SIZE_NEGATIVE] =
Messages.getString("INPUT_IMAGE_SIZE_NEGATIVE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.INPUT_TERMINATED_EARLY] =
Messages.getString("INPUT_TERMINATED_EARLY");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.IO_EXCEPTION] =
Messages.getString("IO_EXCEPTION");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.LOOKUP_TABLE_LENGTH_NOT_256] =
Messages.getString("LOOKUP_TABLE_LENGTH_NOT_256");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.OBJECT_NOT_EXPECTED_TYPE] =
Messages.getString("OBJECT_NOT_EXPECTED_TYPE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.OUTPUT_IMAGE_SIZE_NEGATIVE] =
Messages.getString("OUTPUT_IMAGE_SIZE_NEGATIVE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.PARAMETER_OUT_OF_RANGE] =
Messages.getString("PARAMETER_OUT_OF_RANGE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.PARAMETER_RANGE_NULL_OR_NEGATIVE] =
Messages.getString("PARAMETER_RANGE_NULL_OR_NEGATIVE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.PARSE_ERROR] =
Messages.getString("PARSE_ERROR");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.REDUCE_INPUT_IMAGE_NOT_MULTIPLE_OF_OUTPUT_SIZE] =
Messages.getString("REDUCE_INPUT_IMAGE_NOT_MULTIPLE_OF_OUTPUT_SIZE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.SHRINK_OUTPUT_LARGER_THAN_INPUT] =
Messages.getString("SHRINK_OUTPUT_LARGER_THAN_INPUT");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.STATISTICS_VARIANCE_LESS_THAN_ZERO] =
Messages.getString("STATISTICS_VARIANCE_LESS_THAN_ZERO");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.STRETCH_OUTPUT_SMALLER_THAN_INPUT] =
Messages.getString("STRETCH_OUTPUT_SMALLER_THAN_INPUT");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.SUBIMAGE_NO_IMAGE_AVAILABLE] =
Messages.getString("SUBIMAGE_NO_IMAGE_AVAILABLE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.THRESHOLD_NEGATIVE] =
Messages.getString("THRESHOLD_NEGATIVE");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.WARP_END_LEFT_COL_GE_END_RIGHT_COL] =
Messages.getString("WARP_END_LEFT_COL_GE_END_RIGHT_COL");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.WARP_START_LEFT_COL_GE_START_RIGHT_COL] =
Messages.getString("WARP_START_LEFT_COL_GE_START_RIGHT_COL");
Error.szMessage[jjil.core.Error.PACKAGE.ALGORITHM][jjil.algorithm.ErrorCodes.WARP_START_ROW_GE_END_ROW] =
Messages.getString("WARP_START_ROW_GE_END_ROW");
}
public Error(jjil.core.Error e) {
super(e);
}
public String getLocalizedMessage() {
String szResult = null;
switch (this.getPackage()) {
case Error.PACKAGE.CORE:
if (this.getCode() < 0 || this.getCode() >= jjil.core.ErrorCodes.COUNT) {
szResult = Messages.getString("Illegal_error_code_core") +
new Integer(this.getCode()).toString();
} else {
szResult = szMessage[this.getPackage()][this.getCode()];
}
break;
case Error.PACKAGE.ALGORITHM:
if (this.getCode() < 0 || this.getCode() >= jjil.algorithm.ErrorCodes.COUNT) {
szResult = Messages.getString("Illegal_error_code_algorithm") +
new Integer(this.getCode()).toString();
} else {
szResult = szMessage[this.getPackage()][this.getCode()];
}
break;
case jjil.core.Error.PACKAGE.J2ME:
szResult = Messages.getString("Illegal_error_code_j2me") + " " +
new Integer(this.getCode()).toString();
break;
default:
szResult = Messages.getString("Illegal_error_code_package") + " " +
new Integer(this.getPackage()).toString() + " " +
new Integer(this.getCode()).toString();
break;
}
return szResult + ": " + parameters();
}
}