001 /*
002 // $Id: //open/util/resgen/src/org/eigenbase/resgen/Resource.java#4 $
003 // Package org.eigenbase.resgen is an i18n resource generator.
004 // Copyright (C) 2005-2005 The Eigenbase Project
005 // Copyright (C) 2005-2005 Disruptive Tech
006 // Copyright (C) 2005-2005 LucidEra, Inc.
007 // Portions Copyright (C) 2001-2005 Kana Software, Inc. and others.
008 //
009 // This library is free software; you can redistribute it and/or modify it
010 // under the terms of the GNU Lesser General Public License as published by the
011 // Free Software Foundation; either version 2 of the License, or (at your
012 // option) any later version approved by The Eigenbase Project.
013 //
014 // This library is distributed in the hope that it will be useful,
015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
017 // GNU Lesser General Public License for more details.
018 //
019 // You should have received a copy of the GNU Lesser General Public License
020 // along with this library; if not, write to the Free Software
021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022 */
023 package org.eigenbase.resgen;
024
025 import java.util.Locale;
026
027 /**
028 * A <code>Resource</code> is a collection of messages for a particular
029 * software component and locale. It is loaded from an XML file whose root
030 * element is <code><BaflResourceList></code>.
031 *
032 * <p>Given such an XML file, {@link ResourceGen} can generate Java a wrapper
033 * class which implements this interface, and also has a method to create an
034 * error for each message.</p>
035 *
036 * @author jhyde
037 * @since 3 December, 2001
038 * @version $Id: //open/util/resgen/src/org/eigenbase/resgen/Resource.java#4 $
039 **/
040 public interface Resource {
041 /**
042 * Populates this <code>Resource</code> from a URL.
043 *
044 * @param url The URL of the XML file containing the error messages
045 * @param locale The ISO locale code (e.g. <code>"en"</code>, or
046 * <code>"en_US"</code>, or <code>"en_US_WIN"</code>) of the messages
047 * @throws IOException if <code>url</code> cannot be opened, or if the
048 * format of its contents are invalid
049 **/
050 void init(java.net.URL url, Locale locale) throws java.io.IOException;
051
052 /**
053 * Populates this <code>Resource</code> from an XML document.
054 *
055 * @param resourceList The URL of the XML file containing the error messages
056 * @param locale The ISO locale code (e.g. <code>"en"</code>, or
057 * <code>"en_US"</code>, or <code>"en_US_WIN"</code>) of the messages
058 **/
059 void init(ResourceDef.ResourceBundle resourceList, Locale locale);
060
061 /**
062 * Returns the locale of the messages.
063 **/
064 Locale getLocale();
065
066 /**
067 * Formats the message corresponding to <code>code</code> with the given
068 * arguments. If an argument is not supplied, the tokens remain in the
069 * returned message string.
070 **/
071 String formatError(int code, Object[] args);
072
073 /**
074 * Returns the severity of this message.
075 **/
076 int getSeverity(int code);
077 int SEVERITY_INFO = 0;
078 int SEVERITY_ERR = 1;
079 int SEVERITY_WARN = 2;
080 int SEVERITY_NON_FATAL_ERR = 3;
081 }
082
083 // End Resource.java