All Downloads are FREE. Search and download functionalities are using the official Maven repository.

flex.messaging.LocalizedException Maven / Gradle / Ivy

Go to download

BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe Flex and Adobe AIR applications for more responsive rich Internet application (RIA) experiences.

There is a newer version: 3.2.0.3978
Show newest version
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  [2002] - [2007] Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated
 * and its suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */
package flex.messaging;

import java.util.Locale;

import flex.messaging.util.PropertyStringResourceLoader;
import flex.messaging.util.ResourceLoader;

/**
 * The LocalizedException class is the base class for server
 * exceptions that use localized error message and details strings. This class overloads
 * setMessage and setDetails to support passing an error
 * number and an optional message variant that is used to look up a localized error
 * message or details string using a ResourceLoader. These methods also
 * set the number property of the exception instance.
 * 

* The various overloads optionally support specifying a target locale as well as * arguments to substitute into the localized string if it is parameterized. *

* Localized error message and details strings are stored in the flex.messaging.errors * resource bundle. Entries must have the following format. *

    *
  • Error message: {number}[-{variant}]={message}
  • *
  • Error details: {number}[-{variant}]-details={details}
  • *
*

* * @see ResourceLoader */ public class LocalizedException extends RuntimeException { /** @exclude - transient, the resourceLoader for localized strings doesn't need to serialize. */ protected transient ResourceLoader resourceLoader; /** @exclude */ protected int number; /** @exclude */ protected String message; /** @exclude */ protected String details; /** @exclude */ protected Throwable rootCause; /** * This number was generated using the 'serialver' command line tool. * This number should remain consistent with the version used by * ColdFusion to communicate with the message broker over RMI. */ private static final long serialVersionUID = 7980539484335065853L; /** * Create a LocalizedException with the default ResourceLoader. */ public LocalizedException() { super(); } /** * Create a LocalizedException that will use the specified * ResourceLoader. * @param resourceLoader */ public LocalizedException(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } /** * Returns the exception details. * * @return The exception details. */ public String getDetails() { return details; } /** * Sets the exception details. * * @param details The exception details. */ public void setDetails(String details) { this.details = details; } /** * Sets the message property to a localized string based on error number. * * @param number The error number for this exception instance. */ public void setMessage(int number) { setMessage(number, null, null, null); } /** * Sets the message property to a localized string based on error number and target locale. * * @param number The error number for this exception instance. * @param locale The target locale for error message lookup. */ public void setMessage(int number, Locale locale) { setMessage(number, null, locale, null); } /** * Sets the message property to a localized string based on error number. * The passed arguments are substituted into the parameterized error message string. * * @param number The error number for this exception instance. * @param arguments The arguments to substitute into the error message. */ public void setMessage(int number, Object[] arguments) { setMessage(number, null, null, arguments); } /** * Sets the message property to a localized string based on error number and variant. * * @param number The error number for this exception instance. * @param variant The variant of the error message for this instance. */ public void setMessage(int number, String variant) { setMessage(number, variant, null, null); } /** * Sets the message property to a localized string based on error number, variant * and target locale. * * @param number The error number for this exception instance. * @param variant The variant of the error message for this instance. * @param locale The target locale for error message lookup. */ public void setMessage(int number, String variant, Locale locale) { setMessage(number, variant, locale, null); } /** * Sets the message property to a localized string based on error number and variant. * The passed arguments are substituted into the parameterized error message string. * * @param number The error number for this exception instance. * @param variant The varient of the error message for this instance. * @param arguments The arguments to substitute into the error message. */ public void setMessage(int number, String variant, Object[] arguments) { setMessage(number, variant, null, arguments); } /** * Sets the message property to a localized string based on error number, variant and * target locale. The passed arguments are substituted into the parameterized error * message string. * * @param number The error number for this exception instance. * @param variant The variant of the error message for this instance. * @param locale The target locale for error message lookup. * @param arguments The arguments to substitute into the error message. */ public void setMessage(int number, String variant, Locale locale, Object[] arguments) { setNumber(number); ResourceLoader resources = getResourceLoader(); setMessage(resources.getString(generateFullKey(number, variant), locale, arguments)); } /** * Returns the exception message. * * @return The exception message. */ public String getMessage() { return message; } /** * Sets the exception message. * * @param message The exception message. */ public void setMessage(String message) { this.message = message; } /** * Sets the localized exception number. * * @param number The localized exception number. */ public void setNumber(int number) { this.number = number; } /** * Returns the localized exception number. * * @return The localized exception number. */ public int getNumber() { return number; } /** * Sets the details property to a localized string based on error number. * * @param number The error number to lookup details for. */ public void setDetails(int number) { setDetails(number, null, null, null); } /** * Sets the details property to a localized string based on error number and variant. * * @param number The error number to lookup details for. * @param variant The variant of the details string to lookup. */ public void setDetails(int number, String variant) { setDetails(number, variant, null, null); } /** * Sets the details property to a localized string based on error number, variant * and target locale. * * @param number The error number to lookup details for. * @param variant The variant of the details string to lookup. * @param locale The target locale for the lookup. */ public void setDetails(int number, String variant, Locale locale) { setDetails(number, variant, locale, null); } /** * Sets the details property to a localized string based on error number and variant. * The passed arguments are substituted into the parameterized error details string. * * @param number The error number to lookup details for. * @param variant The variant of the details string to lookup. * @param arguments The arguments to substitute into the details string. */ public void setDetails(int number, String variant, Object[] arguments) { setDetails(number, variant, null, arguments); } /** * Sets the details property to a localized string based on error number, variant, * and target locale. The passed arguments are substituted into the parameterized error * details string. * * @param number The error number to lookup a localized details string for. * @param variant The variant of the details string to lookup. * @param locale The target locale for the lookup. * @param arguments The arguments to substitute into the details string. */ public void setDetails(int number, String variant, Locale locale, Object[] arguments) { setNumber(number); ResourceLoader resources = getResourceLoader(); setDetails(resources.getString(generateDetailsKey(number, variant), locale, arguments)); } /** * Returns the root cause for this exception. * * @return The root cause for this exception. */ public Throwable getRootCause() { return rootCause; } /** * Sets the root cause for this exception. * * @param cause The root cause for this exception. */ public void setRootCause(Throwable cause) { rootCause = cause; } /** * Returns the ResourceLoader used to load localized strings. * * @return The ResourceLoader used to load localized strings. */ protected ResourceLoader getResourceLoader() { if (resourceLoader == null) resourceLoader = new PropertyStringResourceLoader(); return resourceLoader; } /** * Generates the full key to lookup a localized error message based on an error number * and an optional variant followed by a "-details" suffix. If the variant is null, the * lookup key is the error number. * * @param number The error number. * @param variant The variant of the error message. * @return The full lookup key for a localized error message. */ private String generateFullKey(int number, String variant) { return (variant != null) ? (number + "-" + variant) : String.valueOf(number); } /** * Generates the full key to lookup a localized details string based on an error number * and an optional variant followed by a "-details" suffix. If the variant is null, the * lookup key is the error number followed by a "-details" suffix. * * @param number The error number. * @param variant The variant of the details message. * @return The full lookup key for a localized details message. */ private String generateDetailsKey(int number, String variant) { return (generateFullKey(number, variant) + "-details"); } /** * Returns a string represenation of the exception. * * @return A string representation of the exception. */ public String toString() { String result = super.toString(); if (details != null) { StringBuffer buffer = new StringBuffer(result); if (!result.endsWith(".")) { buffer.append("."); } buffer.append(' ').append(details); result = buffer.toString(); } return result; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy