javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/NativeError.java
author hgs
Fri, 29 Oct 2010 11:49:32 +0300
changeset 87 1627c337e51e
parent 56 abc41079b313
permissions -rw-r--r--
v2.2.21_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     1
/*
87
1627c337e51e v2.2.21_1
hgs
parents: 56
diff changeset
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     3
* All rights reserved.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     8
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    11
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    12
* Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    13
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    14
* Description: Native Error Descriptions for M2G Component.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    15
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    16
*/
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    17
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    18
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    19
package com.nokia.microedition.m2g;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    20
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    21
import java.io.IOException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
/**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
 * A utility class for declaring and handling native SymbianOS error codes.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
 * All error codes that are used in Java from native code should be
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
 * declared here and referenced from this class. Also if a new error code
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    27
 * is added, it should be added to the list of compile-time asserts in
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    28
 * NativeError.cpp.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
 */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    30
public final class NativeError
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    31
{
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    32
    public static final String NATIVE_ERROR_MESSAGE = "SymbianOS error = ";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
    private static final int BUFFER_SIZE = 256;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
    // SymbianOS error codes
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
    public static final int KErrNone = 0;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
    public static final int KErrNotFound = -1;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
    public static final int KErrGeneral = -2;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
    public static final int KErrCancel = -3;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
    public static final int KErrNoMemory = -4;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
    public static final int KErrNotSupported = -5;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
    public static final int KErrArgument = -6;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
    public static final int KErrOverflow = -9;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
    public static final int KErrAlreadyExists = -11;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
    public static final int KErrPathNotFound = -12;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
    public static final int KErrDied = -13;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
    public static final int KErrNotReady = -18;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
    public static final int KErrCorrupt = -20;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
    public static final int KErrAccessDenied = -21;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
    public static final int KErrWrite = -23;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
    public static final int KErrEof = -25;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
    public static final int KErrDiskFull = -26;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
    public static final int KErrBadName = -28;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
    public static final int KErrCommsLineFail = -29;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
    public static final int KErrTimedOut = -33;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
    public static final int KErrDisconnected = -36;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
    public static final int KErrTooBig = -40;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
    public static final int KErrDivideByZero = -41;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
    public static final int KErrHardwareNotAvailable = -44;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
    // Not intended to be constructed
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
    private NativeError()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    70
     * Checks for basic native error codes that map to standard Java
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    71
     * exceptions and throws the exception if the error code matches.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    72
     * Otherwise just returns the error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
     * @param aError Possible error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    75
     * @return Value passed in is returned if not an error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    76
     * @throws OutOfMemoryError If aError equals KErrNoMemory.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
     * @throws IllegalArgumentException If aError equals KErrArgument
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
     * @throws ArithmeticException If aError equals KErrDivideByZero
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
    public static int checkExplicitOnly(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
        if (aError < KErrNone)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
            switch (aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
            case KErrNoMemory:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
                throw new OutOfMemoryError();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
                // KErrArgument must throw IllegalArgumentException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
                // otherwise lcdui will break, so don't change this.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
            case KErrArgument:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    91
                throw new IllegalArgumentException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    92
            case KErrDivideByZero:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    93
                throw new ArithmeticException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
            default:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
                // Do nothing
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
     * Checks for basic native error codes that map to standard Java
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
     * exceptions and throws the exception if the error code matches.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
     * Otherwise throws basic Error class.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
     * @param aError Possible error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
     * @param aThrowAlways Determines whether a default exception is thrown
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
     * if the error code is not recognised.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
     * @return Value passed in is returned if not an error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
     * @throws Error If the error code does not match any exception thrown
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
     * in checkExplicitOnly, a default exception is thrown here.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
    public static int check(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
        if (aError < KErrNone)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
            checkExplicitOnly(aError);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
            throw new Error(errorMessage(aError));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   127
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   128
     * Version of check that uses a long rather than an int.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   129
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
    public static long check(long aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   132
        check((int)aError);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   133
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
     * Checks for basic native error codes that map to standard Java
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
     * exceptions and throws the exception if the error code matches.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
     * Otherwise throws an IOException.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
     * @param aError Possible error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
     * @return Value passed in is returned if not an error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
    public static int checkIO(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
    throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
        if (aError < KErrNone)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
            checkExplicitOnly(aError);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   152
            throw new IOException(errorMessage(aError));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   153
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   154
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
     * Checks if the error code represents out of memory, and throws Java Error
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
     * if true. Otherwise throws basic Error class.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   163
     * @param aError Possible error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   164
     * @return Value passed in is returned if not an error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   165
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   166
    public static int checkOOM(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   167
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   168
        if (aError < KErrNone)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   169
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   170
            if (aError == KErrNoMemory)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   171
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   172
                throw new OutOfMemoryError();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   173
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   174
            throw new Error(errorMessage(aError));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   175
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   176
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   177
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   178
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   179
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   180
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   181
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   182
     * Checks if the object is a null reference, and throws OutOfMemoryError
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   183
     * if this is the case. Useful for checking for OOM when Java objects
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   184
     * returned from a native method.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   185
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   186
     * @param aObject Object that may be null.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   187
     * @return Value passed in is returned if not an error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   188
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   189
    public static Object checkOOM(Object aObject)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   190
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   191
        if (aObject == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   192
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   193
            throw new OutOfMemoryError();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   194
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   195
        return aObject;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   196
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   197
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   198
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   199
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   200
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   201
     * Checks if the error code represents out of memory, and throws Java Error
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   202
     * if true. Does not throw anything otherwise.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   203
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   204
     * @param aError Possible error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   205
     * @return Value passed in is returned if not an out of memory error.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   206
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   207
    public static int checkOOMOnly(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   208
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   209
        if (aError == KErrNoMemory)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   210
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   211
            throw new OutOfMemoryError();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   212
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   213
        return aError;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   214
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   215
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   216
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   217
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   218
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   219
     * Returns a string formatted with generic text to indicate where the error
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   220
     * code comes from and the error code given.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   221
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   222
     * @param A native error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   223
     * @return A string containing the error code and explanatory text.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   224
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   225
    public static String errorMessage(int aError)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   226
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   227
        final String message = _getNativeErrorMessage(aError);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   228
        String result = NATIVE_ERROR_MESSAGE.concat(Integer.toString(aError));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   229
        if (message != null &&  message.length() > 0)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   230
            result = result.concat(" : ").concat(message);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   231
        return result;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   232
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   233
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   234
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   235
     * Returns a string formatted with generic text to indicate where the error
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   236
     * code comes from and the error code given.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   237
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   238
     * @param A native error code.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   239
     * @param An extra text message for more information.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   240
     * @return A string containing the error code and explanatory text.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   241
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   242
    public static String errorMessage(int aError, String aExtraText)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   243
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   244
        final StringBuffer messageBuf = new StringBuffer(BUFFER_SIZE);   // use native max as base
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   245
        messageBuf.append(aExtraText);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   246
        messageBuf.append(", ");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   247
        messageBuf.append(errorMessage(aError));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   248
        return messageBuf.toString();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   249
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   250
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   251
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   252
    private static native String _getNativeErrorMessage(int aError);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   253
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   254
}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   255
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   256