TimeZoneNameProvider.java 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /* TimeZoneNameProvider.java -- Providers of localized currency symbols
  2. Copyright (C) 2007 Free Software Foundation, Inc.
  3. This file is part of GNU Classpath.
  4. GNU Classpath is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.
  8. GNU Classpath is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with GNU Classpath; see the file COPYING. If not, write to the
  14. Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  15. 02110-1301 USA.
  16. Linking this library statically or dynamically with other modules is
  17. making a combined work based on this library. Thus, the terms and
  18. conditions of the GNU General Public License cover the whole
  19. combination.
  20. As a special exception, the copyright holders of this library give you
  21. permission to link this library with independent modules to produce an
  22. executable, regardless of the license terms of these independent
  23. modules, and to copy and distribute the resulting executable under
  24. terms of your choice, provided that you also meet, for each linked
  25. independent module, the terms and conditions of the license of that
  26. module. An independent module is a module which is not derived from
  27. or based on this library. If you modify this library, you may extend
  28. this exception to your version of the library, but you are not
  29. obligated to do so. If you do not wish to do so, delete this
  30. exception statement from your version. */
  31. package java.util.spi;
  32. import java.util.Locale;
  33. /**
  34. * A {@link TimeZoneNameProvider} provides localized
  35. * versions of the names that represent a particular
  36. * timezone. A <code>null</code> value may
  37. * be returned, which should be treated as a lack of
  38. * support for the specified {@link Locale}. The names
  39. * from this class are also used by
  40. * {@link DateFormatSymbols#getZoneStrings()}.
  41. *
  42. * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
  43. * @since 1.6
  44. */
  45. public abstract class TimeZoneNameProvider
  46. extends LocaleServiceProvider
  47. {
  48. /**
  49. * Constructs a new {@link TimeZoneNameProvider}.
  50. * Provided for implicit invocation by subclasses.
  51. */
  52. protected TimeZoneNameProvider()
  53. {
  54. }
  55. /**
  56. * Returns a name for the specified time zone identifier
  57. * localized to the supplied {@link java.util.Locale}.
  58. * The time zone identifier is either <code>"GMT"</code>
  59. * or one of the identifiers from the public domain "tz
  60. * database" found at <a href="ftp://elsie.nci.nih.gov/pub/">
  61. * ftp://elsie.nci.nih.gov/pub</a>. Note that a translated
  62. * name for the daylight savings time variant should be returned,
  63. * even if the timezone has not observed daylight savings
  64. * time in the past. If the name of the timezone
  65. * in the given locale is not supported, <code>null</code>
  66. * is returned.
  67. *
  68. * @param id a time zone identifier.
  69. * @param daylight true if the daylight savings time variant
  70. * should be returned.
  71. * @param style either {@link java.util.TimeZone.LONG} or
  72. * {@link java.util.TimeZone.SHORT}
  73. * @param locale the locale to express the timezone in.
  74. * @return the localized time zone name, or <code>null</code>
  75. * if one is not available.
  76. * @throws NullPointerException if the identifer or locale is null.
  77. * @throws IllegalArgumentException if the style is invalid
  78. * or the locale is not one
  79. * returned by
  80. * {@link getAvailableLocales()}
  81. * @see java.util.TimeZone#getDisplayName(boolean,int,java.util.Locale)
  82. */
  83. public abstract String getDisplayName(String id, boolean daylight,
  84. int style, Locale locale);
  85. }