/*
*
*
* Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*/
package com.sun.j2me.payment;
import java.io.InputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import com.sun.midp.util.Properties;
/**
* This class provides utility methods. They are implemented in a subclass
* of this class. An instance of it can be obtained from the payment module.
* <p>
* This approach allows the <code>com.sun.j2me.payment</code> package to be
* more independent on MIDP classes.
*
* @version 1.2
*/
public abstract class Utils {
/** The starting value of the resource keys. */
public static final int PAYMENT_ID_BASE = 0x02290000;
// JSR229 Payment resource strings 0x02290000 - 0x02290021
/** Resource string. never */
public static final int PAYMENT_PROV_SEL_DLG_NEVER =
PAYMENT_ID_BASE + 0;
/** Resource string. No */
public static final int PAYMENT_PROV_SEL_DLG_NO =
PAYMENT_ID_BASE + 1;
/** Resource string. Yes */
public static final int PAYMENT_PROV_SEL_DLG_YES =
PAYMENT_ID_BASE + 2;
/** Resource string. Update */
public static final int PAYMENT_PROV_SEL_DLG_UPDATE =
PAYMENT_ID_BASE + 3;
/** Resource string. Stop */
public static final int PAYMENT_UPDATE_DLG_STOP =
PAYMENT_ID_BASE + 4;
/** Resource string. Updating payment information... */
public static final int PAYMENT_UPDATE_DLG_CAPTION =
PAYMENT_ID_BASE + 5;
/** Resource string. Pay by */
public static final int PAYMENT_PROV_SEL_DLG_PAY_BY =
PAYMENT_ID_BASE + 6;
/** Resource string. Update date: */
public static final int PAYMENT_PROV_SEL_DLG_UPDATE_DATE =
PAYMENT_ID_BASE + 7;
/** Resource string. Update stamp: */
public static final int PAYMENT_PROV_SEL_DLG_UPDATE_STAMP =
PAYMENT_ID_BASE + 8;
/** Resource string. Cancelling... */
public static final int PAYMENT_UPDATE_DLG_CANCELLING =
PAYMENT_ID_BASE + 9;
/** Resource string. Connecting... */
public static final int PAYMENT_UPDATE_DLG_CONNECTING =
PAYMENT_ID_BASE + 10;
/** Resource string. Sending request... */
public static final int PAYMENT_UPDATE_DLG_SENDING =
PAYMENT_ID_BASE + 11;
/** Resource string. Waiting for server... */
public static final int PAYMENT_UPDATE_DLG_WAITING =
PAYMENT_ID_BASE + 12;
/** Resource string. Downloading... */
public static final int PAYMENT_UPDATE_DLG_DOWNLOADING =
PAYMENT_ID_BASE + 13;
/** Resource string. Verifying... */
public static final int PAYMENT_UPDATE_DLG_VERIFYING =
PAYMENT_ID_BASE + 14;
/** Resource string. (Retry %1/%2) */
public static final int PAYMENT_UPDATE_DLG_RETRY =
PAYMENT_ID_BASE + 15;
/** Resource string. Update Error */
public static final int PAYMENT_ERROR_DLG_CAPTION =
PAYMENT_ID_BASE + 16;
/** Resource string. Can not update. */
public static final int PAYMENT_ERROR_PREFIX =
PAYMENT_ID_BASE + 17;
/**
* Resource string.
* Contact your application provider to correct this situation.
*/
public static final int PAYMENT_ERROR_SUFFIX =
PAYMENT_ID_BASE + 18;
/**
* Resource string.
* The application has not got permission to download the update file from
* the server.
*/
public static final int PAYMENT_ERROR_PERMISSIONS =
PAYMENT_ID_BASE + 19;
/** Resource string. Failed to download the update file from the server. */
public static final int PAYMENT_ERROR_DOWNLOAD_FAILED =
PAYMENT_ID_BASE + 20;
/**
* Resource string.
* The payment information on the server is not supported.
*/
public static final int PAYMENT_ERROR_UPDATE_NOT_SUPPORTED =
PAYMENT_ID_BASE + 21;
/**
* Resource string.
* The payment information on the server is not yet valid.
*/
public static final int PAYMENT_ERROR_UPDATE_NOT_YET_VALID =
PAYMENT_ID_BASE + 22;
/** Resource string. The payment information on the server is expired. */
public static final int PAYMENT_ERROR_UPDATE_EXPIRED =
PAYMENT_ID_BASE + 23;
/** Resource string. The payment information on the server is invalid. */
public static final int PAYMENT_ERROR_UPDATE_INVALID =
PAYMENT_ID_BASE + 24;
/** Resource string. The payment information on the server is incomplete. */
public static final int PAYMENT_ERROR_UPDATE_INCOMPLETE =
PAYMENT_ID_BASE + 25;
/**
* Resource string.
* The payment update file has not been found at its URL.
*/
public static final int PAYMENT_ERROR_UPDATE_NOT_FOUND =
PAYMENT_ID_BASE + 26;
/** Resource string. Connection with the server failed. */
public static final int PAYMENT_ERROR_CONNECTION_FAILED =
PAYMENT_ID_BASE + 27;
/**
* Resource string.
* The payment information on the server is of an invalid type.
*/
public static final int PAYMENT_ERROR_UPDATE_INVALID_TYPE =
PAYMENT_ID_BASE + 28;
/**
* Resource string.
* The certificate used to sign the update file on the server is expired or
* not yet valid.
*/
public static final int PAYMENT_ERROR_CERTIFICATE_EXPIRED =
PAYMENT_ID_BASE + 29;
/**
* Resource string.
* The certificate used to sign the update file on the server is incorrect
* or unsupported.
*/
public static final int PAYMENT_ERROR_CERTIFICATE_INCORRECT =
PAYMENT_ID_BASE + 30;
/**
* Resource string.
* The certificate used to sign the update file on the server is not
* trusted.
*/
public static final int PAYMENT_ERROR_CERTIFICATE_UNTRUSTED =
PAYMENT_ID_BASE + 31;
/**
* Resource string.
* The verification of the update file signature failed.
*/
public static final int PAYMENT_ERROR_VERIFICATION_FAILED =
PAYMENT_ID_BASE + 32;
/**
* Resource string.
* Are you sure, you want to buy this feature for %1 %2.%3 using %4
* provided by %5?
*/
public static final int PAYMENT_UPDATE_DLG_QUESTION =
PAYMENT_ID_BASE + 33;
/** Creates a new instance of <code>Utils</code>. */
protected Utils() {
}
/**
* Parses properties from the given input stream and returns them as an
* instance of the <code>Properties</code> class. The <code>charset</code>
* parameter contains the actual character encoding of the input stream.
*
* @param is the input stream which contains properties
* @param charset the character set of the input stream
* @return the properties read from the stream
* @throws UnsupportedEncodingException if <code>charset</code> is not
* supported by the implementation
* @throws IOException if the input stream doesn't have properties in the
* correct format
*/
public abstract Properties loadProperties(InputStream is, String charset)
throws UnsupportedEncodingException, IOException;
/**
* Returns a resource string for the given key.
*
* @param key the key
* @return the string assigned to the key
*/
public abstract String getString(int key);
/**
* Returns a modified resource string for the given key. It replaces any
* occurence of %1, %2, ... in the original resource string with the first,
* second, ... string from <code>values</code>.
*
* @param key the key
* @param values the replacement strings
* @return the modified resource string
*/
public abstract String getString(int key, String[] values);
/**
* Parses a date string according to the ISO 8601 standard.
*
* @param date the date string in the format YYYY-MM-DDTHH:MM[:SS][[+|-]
* HH[MM]]
* @return the number of milliseconds elapsed since 1970-1-1 GMT to this
* date
* @throws IllegalArgumentException if the format of the date string is
* incorrect or the date is invalid
*/
public abstract long parseISODate(String date);
/**
* Converts the given date to the string formatted according to the
* ISO 8601 standard.
*
* @param date the date as the number of milliseconds elapsed since
* 1970-1-1 GMT
* @return the date string
*/
public abstract String formatISODate(long date);
}
|