CalendarDataProvider (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.util.spi, class: CalendarDataProvider
Keywords: java.util.spi.CalendarDataProvider class

# Class CalendarDataProvider

java.lang.Object
java.util.spi.LocaleServiceProvider
java.util.spi.CalendarDataProvider

public abstract class CalendarDataProvider extends LocaleServiceProvider
An abstract class for service providers that provide locale-dependent `Calendar` parameters.

Since:
  1.8
See Also:
  - `CalendarNameProvider`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `CalendarDataProvider()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract int`
  `getFirstDayOfWeek(Locale locale)`
  Returns the first day of a week in the given `locale`.
  `abstract int`
  `getMinimalDaysInFirstWeek(Locale locale)`
  Returns the minimal number of days required in the first week of a year.

  ### Methods declared in class LocaleServiceProvider

  `getAvailableLocales, isSupportedLocale`
  Modifier and Type
  Method
  Description
  `abstract Locale[]`
  `getAvailableLocales()`
  Returns an array of all locales for which this locale service provider can provide localized objects or names.
  `boolean`
  `isSupportedLocale(Locale locale)`
  Returns `true` if the given `locale` is supported by this locale service provider.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### CalendarDataProvider

    protected CalendarDataProvider()
    Sole constructor. (For invocation by subclass constructors, typically implicit.)

- ## Method Details

  - ### getFirstDayOfWeek

    public abstract int getFirstDayOfWeek(Locale locale)
    Returns the first day of a week in the given `locale`. This information is required by `Calendar` to support operations on the week-related calendar fields.
    Parameters:
      `locale` - the desired locale
    Returns:
      the first day of a week; one of `Calendar.SUNDAY` .. `Calendar.SATURDAY`, or 0 if the value isn't available for the `locale`
    Throws:
      `NullPointerException` - if `locale` is `null`.
    See Also:
      - `Calendar.getFirstDayOfWeek()`
      - First Week

  - ### getMinimalDaysInFirstWeek

    public abstract int getMinimalDaysInFirstWeek(Locale locale)
    Returns the minimal number of days required in the first week of a year. This information is required by `Calendar` to determine the first week of a year. Refer to the description of how `Calendar` determines the first week.
    Parameters:
      `locale` - the desired locale
    Returns:
      the minimal number of days of the first week, or 0 if the value isn't available for the `locale`
    Throws:
      `NullPointerException` - if `locale` is `null`.
    See Also:
      - `Calendar.getMinimalDaysInFirstWeek()`