home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / DateMaskResourceLoader.java < prev    next >
C/C++ Source or Header  |  1998-12-09  |  2KB  |  80 lines

  1.  
  2. package com.symantec.itools.swing;
  3.  
  4. import java.util.ResourceBundle;
  5. import java.util.ListResourceBundle;
  6. import com.symantec.itools.swing.DateMaskResourceBundle;
  7.  
  8. /**
  9.  * <P>This class loads the Resource.
  10.  * <P>It implements the Singleton Design Pattern.
  11.  *
  12.  * @version 1.0
  13.  * @author  Symantec
  14.  * @see java.util.ResourceBundle
  15.  * @see java.util.ListResourceBundle
  16.  */
  17. public final class DateMaskResourceLoader {
  18.  
  19. //////////////////////////////////////////////////
  20. //   Singleton pattern implementation - BEGIN   //
  21. //////////////////////////////////////////////////
  22.  
  23. //
  24. //  Class variables
  25. //
  26.     private static DateMaskResourceLoader instance = null;
  27.  
  28. //
  29. //  Instance variables
  30. //
  31.     private ResourceBundle bundle = null;
  32.     
  33.     public static synchronized DateMaskResourceLoader getInstance() {
  34.         if( instance == null ) {
  35.             instance = new DateMaskResourceLoader();
  36.         }
  37.         return instance; 
  38.     }
  39.  
  40.     private DateMaskResourceLoader() {
  41.         super();
  42.  
  43.         try {
  44.             // Try to load the resource bundle
  45.             bundle = ResourceBundle.getBundle(
  46.                             "com.symantec.itools.swing.DateMaskResourceBundle");
  47.         }
  48.         catch( java.util.MissingResourceException ex ) {
  49.             System.err.println(
  50.                 "Could not load [com.symantec.itools.swing.DateMaskResourceBundle]\n"
  51.                 + ex);
  52.         }
  53.     }
  54.  
  55. ////////////////////////////////////////////////
  56. //   Singleton pattern implementation - END   //
  57. ////////////////////////////////////////////////
  58.  
  59.     /**
  60.      *  This method is the same as:
  61.      *  <code>java.util.ResourceBundle.getBundle("com.symantec.itools.swing.DateMaskResourceBundle"))</code>
  62.      *  Unfortunately we cannot override getBundle() - it is final.
  63.      *  Everywhere where you need to load Resource use this:
  64.      *  <code>DateMaskResourceLoader.getBundle()</code>
  65.      *  It prevents from loading the same resource file multiple times.
  66.      *  The usage of the resource remains the same:
  67.      *  <code>MyResource.getString()</code> - MyResource is the reference that is in your code
  68.      */
  69.     public ResourceBundle getBundle() {
  70.         return bundle;
  71.     }
  72.  
  73.  
  74.     // main() is provided here ONLY for testing puposes
  75.     public static void main(String[] args) {
  76.         DateMaskResourceLoader inst = getInstance();
  77.         inst.getBundle();
  78.     }
  79. }
  80.