| /* |
| * Copyright (c) 2015, 2017, 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 java.net.URI; |
| import java.util.Locale; |
| import java.util.MissingResourceException; |
| import java.util.ResourceBundle; |
| import jdk.xml.internal.SecuritySupport; |
| |
| /** |
| * 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_URI_NOTABSOLUTE = "UriNotAbsolute"; |
| public static final String ERR_URI_NOTVALIDURL = "UriNotValidUrl"; |
| 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, Object 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(String key, Object[] arguments, Throwable cause) { |
| throw new IllegalArgumentException( |
| formatMessage(key, 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 a 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; |
| } |
| } |