home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / util / Locale.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  7.2 KB  |  430 lines

  1. package java.util;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public final class Locale implements Cloneable, Serializable {
  6.    public static final Locale ENGLISH = new Locale("en", "", "");
  7.    public static final Locale FRENCH = new Locale("fr", "", "");
  8.    public static final Locale GERMAN = new Locale("de", "", "");
  9.    public static final Locale ITALIAN = new Locale("it", "", "");
  10.    public static final Locale JAPANESE = new Locale("ja", "", "");
  11.    public static final Locale KOREAN = new Locale("ko", "", "");
  12.    public static final Locale CHINESE = new Locale("zh", "", "");
  13.    public static final Locale SIMPLIFIED_CHINESE = new Locale("zh", "CN", "");
  14.    public static final Locale TRADITIONAL_CHINESE = new Locale("zh", "TW", "");
  15.    public static final Locale FRANCE = new Locale("fr", "FR", "");
  16.    public static final Locale GERMANY = new Locale("de", "DE", "");
  17.    public static final Locale ITALY = new Locale("it", "IT", "");
  18.    public static final Locale JAPAN = new Locale("ja", "JP", "");
  19.    public static final Locale KOREA = new Locale("ko", "KR", "");
  20.    public static final Locale CHINA = new Locale("zh", "CN", "");
  21.    public static final Locale PRC = new Locale("zh", "CN", "");
  22.    public static final Locale TAIWAN = new Locale("zh", "TW", "");
  23.    // $FF: renamed from: UK java.util.Locale
  24.    public static final Locale field_0 = new Locale("en", "GB", "");
  25.    // $FF: renamed from: US java.util.Locale
  26.    public static final Locale field_1 = new Locale("en", "US", "");
  27.    public static final Locale CANADA = new Locale("en", "CA", "");
  28.    public static final Locale CANADA_FRENCH = new Locale("fr", "CA", "");
  29.    static final long serialVersionUID = 9149081749638150636L;
  30.    private String language = "";
  31.    private String country = "";
  32.    private String variant = "";
  33.    private int hashcode = -1;
  34.    private static Locale defaultLocale = new Locale(System.getProperty("user.language", "EN"), System.getProperty("user.region", ""));
  35.  
  36.    public Locale(String var1, String var2, String var3) {
  37.       this.language = this.toLowerCase(var1);
  38.       this.country = this.toUpperCase(var2);
  39.       this.variant = this.toUpperCase(var3);
  40.    }
  41.  
  42.    public Locale(String var1, String var2) {
  43.       this.language = this.toLowerCase(var1);
  44.       this.country = this.toUpperCase(var2);
  45.       this.variant = "";
  46.    }
  47.  
  48.    public static Locale getDefault() {
  49.       return defaultLocale;
  50.    }
  51.  
  52.    public static synchronized void setDefault(Locale var0) {
  53.       SecurityManager var1 = System.getSecurityManager();
  54.       if (var1 != null) {
  55.          var1.checkPropertyAccess("user.language");
  56.       }
  57.  
  58.       defaultLocale = var0;
  59.    }
  60.  
  61.    public String getLanguage() {
  62.       return this.language;
  63.    }
  64.  
  65.    public String getCountry() {
  66.       return this.country;
  67.    }
  68.  
  69.    public String getVariant() {
  70.       return this.variant;
  71.    }
  72.  
  73.    public final String toString() {
  74.       StringBuffer var1 = new StringBuffer(this.language);
  75.       if (this.country.length() != 0) {
  76.          var1.append('_');
  77.          var1.append(this.country);
  78.          if (this.variant.length() != 0) {
  79.             var1.append('_');
  80.             var1.append(this.variant);
  81.          }
  82.       }
  83.  
  84.       return var1.toString();
  85.    }
  86.  
  87.    public String getISO3Language() throws MissingResourceException {
  88.       if (this.language.length() == 0) {
  89.          return "";
  90.       } else {
  91.          this.getISO2Language();
  92.          ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
  93.          return var1.getString("ShortLanguage");
  94.       }
  95.    }
  96.  
  97.    public String getISO3Country() throws MissingResourceException {
  98.       if (this.country.length() == 0) {
  99.          return "";
  100.       } else {
  101.          this.getISO2Country();
  102.          ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
  103.          return var1.getString("ShortCountry");
  104.       }
  105.    }
  106.  
  107.    String getISO2Language() throws MissingResourceException {
  108.       if (this.language.length() == 0) {
  109.          return "";
  110.       } else {
  111.          ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
  112.          String var2 = var1.getString("LocaleString");
  113.          String var3 = var2.substring(0, 2);
  114.          if (!var3.equals(this.language)) {
  115.             throw new MissingResourceException("Requested resource bundle not installed", "LocaleElements", "LocaleString");
  116.          } else {
  117.             return var3;
  118.          }
  119.       }
  120.    }
  121.  
  122.    String getISO2Country() throws MissingResourceException {
  123.       if (this.country.length() == 0) {
  124.          return "";
  125.       } else {
  126.          ResourceBundle var1 = ResourceBundle.getBundle("java.text.resources.LocaleElements", this);
  127.          String var2 = var1.getString("LocaleString");
  128.          String var3 = var2.substring(3, 5);
  129.          if (!var3.equals(this.country)) {
  130.             throw new MissingResourceException("Requested resource bundle not installed", "LocaleElements", "LocaleString");
  131.          } else {
  132.             return var3;
  133.          }
  134.       }
  135.    }
  136.  
  137.    public final String getDisplayLanguage() {
  138.       return this.getDisplayLanguage(getDefault());
  139.    }
  140.  
  141.    public String getDisplayLanguage(Locale var1) {
  142.       String var2 = this.language;
  143.       if (var2.length() == 0) {
  144.          return "";
  145.       } else {
  146.          Locale var3 = (Locale)var1.clone();
  147.          String var4 = null;
  148.          int var5 = 0;
  149.          boolean var6 = false;
  150.          if (var3.variant.length() == 0) {
  151.             var5 = 1;
  152.          }
  153.  
  154.          if (var3.country.length() == 0) {
  155.             var5 = 2;
  156.          }
  157.  
  158.          while(!var6) {
  159.             try {
  160.                ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
  161.                var4 = this.findStringMatch((String[][])var7.getObject("Languages"), var2, var2);
  162.                if (var4.length() != 0) {
  163.                   var6 = true;
  164.                }
  165.             } catch (Exception var8) {
  166.             }
  167.  
  168.             if (!var6) {
  169.                switch (var5) {
  170.                   case 0:
  171.                      var3.variant = "";
  172.                      break;
  173.                   case 1:
  174.                      var3.country = "";
  175.                      break;
  176.                   case 2:
  177.                      var3 = getDefault();
  178.                      break;
  179.                   case 3:
  180.                      var3 = new Locale("", "", "");
  181.                      break;
  182.                   default:
  183.                      return var2;
  184.                }
  185.  
  186.                ++var5;
  187.             }
  188.          }
  189.  
  190.          return var4;
  191.       }
  192.    }
  193.  
  194.    public final String getDisplayCountry() {
  195.       return this.getDisplayCountry(getDefault());
  196.    }
  197.  
  198.    public String getDisplayCountry(Locale var1) {
  199.       String var2 = this.country;
  200.       if (var2.length() == 0) {
  201.          return "";
  202.       } else {
  203.          Locale var3 = (Locale)var1.clone();
  204.          String var4 = null;
  205.          int var5 = 0;
  206.          boolean var6 = false;
  207.          if (var3.variant.length() == 0) {
  208.             var5 = 1;
  209.          }
  210.  
  211.          if (var3.country.length() == 0) {
  212.             var5 = 2;
  213.          }
  214.  
  215.          while(!var6) {
  216.             try {
  217.                ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
  218.                var4 = this.findStringMatch((String[][])var7.getObject("Countries"), var2, var2);
  219.                if (var4.length() != 0) {
  220.                   var6 = true;
  221.                }
  222.             } catch (Exception var8) {
  223.             }
  224.  
  225.             if (!var6) {
  226.                switch (var5) {
  227.                   case 0:
  228.                      var3.variant = "";
  229.                      break;
  230.                   case 1:
  231.                      var3.country = "";
  232.                      break;
  233.                   case 2:
  234.                      var3 = getDefault();
  235.                      break;
  236.                   case 3:
  237.                      var3 = new Locale("", "", "");
  238.                      break;
  239.                   default:
  240.                      return var2;
  241.                }
  242.  
  243.                ++var5;
  244.             }
  245.          }
  246.  
  247.          return var4;
  248.       }
  249.    }
  250.  
  251.    public final String getDisplayVariant() {
  252.       return this.getDisplayVariant(getDefault());
  253.    }
  254.  
  255.    public String getDisplayVariant(Locale var1) {
  256.       String var2 = this.variant;
  257.       if (var2.length() == 0) {
  258.          return "";
  259.       } else {
  260.          Locale var3 = (Locale)var1.clone();
  261.          String var4 = null;
  262.          int var5 = 0;
  263.          boolean var6 = false;
  264.          if (var3.variant.length() == 0) {
  265.             var5 = 1;
  266.          }
  267.  
  268.          if (var3.country.length() == 0) {
  269.             var5 = 2;
  270.          }
  271.  
  272.          while(!var6) {
  273.             try {
  274.                ResourceBundle var7 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var3);
  275.                var4 = this.findStringMatch((String[][])var7.getObject("Variants"), var2, var2);
  276.                if (var4.length() != 0) {
  277.                   var6 = true;
  278.                }
  279.             } catch (Exception var8) {
  280.             }
  281.  
  282.             if (!var6) {
  283.                switch (var5) {
  284.                   case 0:
  285.                      var3.variant = "";
  286.                      break;
  287.                   case 1:
  288.                      var3.country = "";
  289.                      break;
  290.                   case 2:
  291.                      var3 = getDefault();
  292.                      break;
  293.                   case 3:
  294.                      var3 = new Locale("", "", "");
  295.                      break;
  296.                   default:
  297.                      return var2;
  298.                }
  299.  
  300.                ++var5;
  301.             }
  302.          }
  303.  
  304.          return var4;
  305.       }
  306.    }
  307.  
  308.    public final String getDisplayName() {
  309.       return this.getDisplayName(getDefault());
  310.    }
  311.  
  312.    public String getDisplayName(Locale var1) {
  313.       StringBuffer var2 = new StringBuffer();
  314.       String var3 = this.getDisplayLanguage(var1);
  315.       String var4 = this.getDisplayCountry(var1);
  316.       String var5 = this.getDisplayVariant(var1);
  317.       if (var3.length() != 0) {
  318.          var2.append(var3);
  319.          if (var4.length() != 0 || var5.length() != 0) {
  320.             var2.append(" (");
  321.             if (var4.length() != 0) {
  322.                var2.append(var4);
  323.                if (var5.length() != 0) {
  324.                   var2.append(",");
  325.                }
  326.             }
  327.  
  328.             if (var5.length() != 0) {
  329.                var2.append(var5);
  330.             }
  331.  
  332.             var2.append(")");
  333.          }
  334.       } else if (var4.length() != 0) {
  335.          var2.append(var4);
  336.          if (var5.length() != 0) {
  337.             var2.append(" (");
  338.             var2.append(var5);
  339.             var2.append(")");
  340.          }
  341.       } else if (var5.length() != 0) {
  342.          var2.append(var5);
  343.       }
  344.  
  345.       return var2.toString();
  346.    }
  347.  
  348.    public Object clone() {
  349.       try {
  350.          Locale var1 = (Locale)super.clone();
  351.          return var1;
  352.       } catch (CloneNotSupportedException var2) {
  353.          throw new InternalError();
  354.       }
  355.    }
  356.  
  357.    public synchronized int hashCode() {
  358.       if (this.hashcode == -1) {
  359.          this.hashcode = this.language.hashCode() ^ this.country.hashCode() ^ this.variant.hashCode();
  360.       }
  361.  
  362.       return this.hashcode;
  363.    }
  364.  
  365.    public boolean equals(Object var1) {
  366.       if (this == var1) {
  367.          return true;
  368.       } else if (!(var1 instanceof Locale)) {
  369.          return false;
  370.       } else {
  371.          Locale var2 = (Locale)var1;
  372.          if (this.hashCode() != var2.hashCode()) {
  373.             return false;
  374.          } else if (!this.language.equals(var2.language)) {
  375.             return false;
  376.          } else if (!this.country.equals(var2.country)) {
  377.             return false;
  378.          } else {
  379.             return this.variant.equals(var2.variant);
  380.          }
  381.       }
  382.    }
  383.  
  384.    private String toLowerCase(String var1) {
  385.       char[] var2 = var1.toCharArray();
  386.  
  387.       for(int var3 = 0; var3 < var2.length; ++var3) {
  388.          var2[var3] = Character.toLowerCase(var2[var3]);
  389.       }
  390.  
  391.       return new String(var2);
  392.    }
  393.  
  394.    private String toUpperCase(String var1) {
  395.       char[] var2 = var1.toCharArray();
  396.  
  397.       for(int var3 = 0; var3 < var2.length; ++var3) {
  398.          var2[var3] = Character.toUpperCase(var2[var3]);
  399.       }
  400.  
  401.       return new String(var2);
  402.    }
  403.  
  404.    private String findStringMatch(String[][] var1, String var2, String var3) {
  405.       for(int var4 = 0; var4 < var1.length; ++var4) {
  406.          if (var2.equals(var1[var4][0])) {
  407.             return var1[var4][1];
  408.          }
  409.       }
  410.  
  411.       if (!var3.equals(var2)) {
  412.          for(int var5 = 0; var5 < var1.length; ++var5) {
  413.             if (var3.equals(var1[var5][0])) {
  414.                return var1[var5][1];
  415.             }
  416.          }
  417.       }
  418.  
  419.       if (!"EN".equals(var2) && "EN".equals(var3)) {
  420.          for(int var6 = 0; var6 < var1.length; ++var6) {
  421.             if ("EN".equals(var1[var6][0])) {
  422.                return var1[var6][1];
  423.             }
  424.          }
  425.       }
  426.  
  427.       return "";
  428.    }
  429. }
  430.