/* * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code 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. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 in the LICENSE file that * accompanied this code). * * 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.xml.catalog; import jdk.xml.internal.SecuritySupport; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * Catalog Error messages * * @since 9 */ final class CatalogMessages { public static final String ERR_INVALID_CATALOG = "InvalidCatalog"; public static final String ERR_INVALID_ENTRY_TYPE = "InvalidEntryType"; public static final String ERR_INVALID_ARGUMENT = "InvalidArgument"; public static final String ERR_NULL_ARGUMENT = "NullArgument"; public static final String ERR_CIRCULAR_REFERENCE = "CircularReference"; public static final String ERR_INVALID_PATH = "InvalidPath"; public static final String ERR_PARSER_CONF = "ParserConf"; public static final String ERR_PARSING_FAILED = "ParsingFailed"; public static final String ERR_NO_CATALOG = "NoCatalogFound"; public static final String ERR_NO_MATCH = "NoMatchFound"; public static final String ERR_NO_URI_MATCH = "NoMatchURIFound"; public static final String ERR_CREATING_URI = "FailedCreatingURI"; public static final String ERR_OTHER = "OtherError"; static final String bundleName = CatalogMessages.class.getPackage().getName() + ".CatalogMessages"; static ResourceBundle resourceBundle; /** * Reports an error. * @param key the message key */ static void reportError(String key) { reportError(key, null); } /** * Reports an error. * @param key the message key * @param arguments the message replacement text arguments. The order of the * arguments must match that of the placeholders in the actual message. */ static void reportError(String key, Object[] arguments) { throw new CatalogException(formatMessage(key, arguments)); } /** * Reports a CatalogException. * @param key the message key * @param arguments the message replacement text arguments. The order of the * arguments must match that of the placeholders in the actual message. */ static void reportRunTimeError(String key, Object[] arguments) { throw new CatalogException(formatMessage(key, arguments)); } /** * Reports a CatalogException. * @param key the message key * @param cause the cause if any */ static void reportRunTimeError(String key, Throwable cause) { throw new CatalogException(formatMessage(key, null), cause); } /** * Reports a CatalogException. * @param key the message key * @param arguments the message replacement text arguments. The order of the * arguments must match that of the placeholders in the actual message. * @param cause the cause if any */ static void reportRunTimeError(String key, Object[] arguments, Throwable cause) { throw new CatalogException(formatMessage(key, arguments), cause); } /** * Reports IllegalArgumentException if the argument is null. * * @param name the name of the argument * @param value the value of the argument */ static void reportIAEOnNull(String name, String value) { if (value == null) { throw new IllegalArgumentException( formatMessage(ERR_INVALID_ARGUMENT, new Object[]{null, name})); } } /** * Reports NullPointerException if the argument is null. * * @param name the name of the argument * @param value the value of the argument */ static void reportNPEOnNull(String name, String value) { if (value == null) { throw new NullPointerException( formatMessage(ERR_NULL_ARGUMENT, new Object[]{name})); } } /** * Reports IllegalArgumentException * @param arguments the arguments for formating the error message * @param cause the cause if any */ static void reportIAE(Object[] arguments, Throwable cause) { throw new IllegalArgumentException( formatMessage(ERR_INVALID_ARGUMENT, arguments), cause); } /** * Format a message with the specified arguments using the default locale * information. * * @param key the message key * @param arguments the message replacement text arguments. The order of the * arguments must match that of the placeholders in the actual message. * * @return the formatted message * * @throws MissingResourceException If the message with the specified key * cannot be found */ static String formatMessage(String key, Object[] arguments) { return formatMessage(key, arguments, Locale.getDefault()); } /** * Format a message with the specified arguments using the given locale * information. * * @param key the message key * @param arguments the message replacement text arguments. The order of the * arguments must match that of the placeholders in the actual message. * @param locale the locale of the message * * @return the formatted message * * @throws MissingResourceException If the message with the specified key * cannot be found */ static String formatMessage(String key, Object[] arguments, Locale locale) { return SecuritySupport.getErrorMessage(locale, bundleName, key, arguments); } /** * Returns sanitized URI. * @param uri an URI to be sanitized */ static String sanitize(String uri) { if (uri == null) { return null; } String temp; int p; p = uri.lastIndexOf("/"); if (p > 0 && p < uri.length()) { return uri.substring(p + 1); } return uri; } }