Java ResourceBundle.Control needsReload() Method



Description

The java ResourceBundle.Control needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime) method determines if the expired bundle in the cache needs to be reloaded based on the loading time given by loadTime or some other criteria. The method returns true if reloading is required; false otherwise.

Declaration

Following is the declaration for java.util.ResourceBundle.Control.needsReload() method

public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime)

Parameters

  • baseName − the base bundle name of the resource bundle, a fully qualified class name

  • locale − the locale for which the resource bundle should be instantiated

  • format − the resource bundle format to be loaded

  • loader − the resource bundle instance that has been expired in the cache

  • bundle − the locale for which the resource bundle should be instantiated

  • loadTime − the time when bundle was loaded and put in the cache

Return Value

true if the expired bundle needs to be reloaded; false otherwise.

Exception

NullPointerException − if baseName, locale, format, loader, or bundle is null

Checking Reload Status of Given Resource Bundle of US Locale Example

The following example shows the usage of Java ResourceBundle.Control needsReload() method to get the reload status of a given resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then reload status of US Locale for the corresponding hello_en_US.properties file is printed using needsReload() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.US);

      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // print if the control needs restart
      long l = 2000000l;
      boolean x = rbc.needsReload("hello", Locale.US, "java.class", cl, bundle, 200);
      System.out.println("" + x);
   }
}

Output

Assuming we have a resource file hello_en_US.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hello World!

Let us compile and run the above program, this will produce the following result −

false

Checking Reload Status of Given Resource Bundle of French Locale Example

The following example shows the usage of Java ResourceBundle.Control needsReload() method to get the reload status of a given resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then reload status of French Locale for the corresponding hello_fr_FR.properties file is printed using needsReload() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.FRANCE);

      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // print if the control needs restart
      long l = 2000000l;
      boolean x = rbc.needsReload("hello", Locale.FRANCE, "java.class", cl, bundle, 200);
      System.out.println("" + x);
   }
}

Output

Assuming we have a resource file hello_fr_FR.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Bonjour le monde!

Let us compile and run the above program, this will produce the following result −

false

Checking Reload Status of Given Resource Bundle of German Locale Example

The following example shows the usage of Java ResourceBundle.Control needsReload() method to get the reload status of a given resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then reload status of German Locale for the corresponding hello_de_DE.properties file is printed using needsReload() method.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);

      ResourceBundle bundle = ResourceBundle.getBundle("hello", Locale.GERMAN);

      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // print if the control needs restart@marips
      long l = 2000000l;
      boolean x = rbc.needsReload("hello", Locale.GERMAN, "java.class", cl, bundle, 200);
      System.out.println("" + x);
   }
}

Output

Assuming we have a resource file hello_de_DE.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hallo Welt!

Let us compile and run the above program, this will produce the following result −

false
java_util_resourcebundle_control.htm
Advertisements