001 /**
002 * ===========================================
003 * LibFonts : a free Java font reading library
004 * ===========================================
005 *
006 * Project Info: http://reporting.pentaho.org/libfonts/
007 *
008 * (C) Copyright 2006-2007, by Pentaho Corporation and Contributors.
009 *
010 * This library is free software; you can redistribute it and/or modify it under the terms
011 * of the GNU Lesser General Public License as published by the Free Software Foundation;
012 * either version 2.1 of the License, or (at your option) any later version.
013 *
014 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
015 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016 * See the GNU Lesser General Public License for more details.
017 *
018 * You should have received a copy of the GNU Lesser General Public License along with this
019 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
020 * Boston, MA 02111-1307, USA.
021 *
022 * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
023 * in the United States and other countries.]
024 *
025 * ------------
026 * $Id: LanguageCode.java 3523 2007-10-16 11:03:09Z tmorgner $
027 * ------------
028 * (C) Copyright 2006-2007, by Pentaho Corporation.
029 */
030 package org.jfree.fonts;
031
032 /**
033 * Different language codes are defined for the mac and windows platform.
034 * The numbering schema is disjunct, so there are no conflicts between the codes
035 * assigned on the Windows platform and the codes assigned on the Macintosh
036 * platform.
037 *
038 * @author Thomas Morgner
039 */
040 public class LanguageCode
041 {
042 public static class MacLanguageCode extends LanguageCode
043 {
044 public static final LanguageCode ENGLISH = new LanguageCode("english", 0);
045
046 public MacLanguageCode(final String name, final int code)
047 {
048 super(name, code);
049 }
050 }
051
052 public static class MicrosoftLanguageCode extends LanguageCode
053 {
054 public static final LanguageCode ENGLISH_US = new LanguageCode("en_US", 0x0409);
055
056 public MicrosoftLanguageCode(final String name, final int code)
057 {
058 super(name, code);
059 }
060 }
061
062 private int code;
063 private String name;
064
065 public LanguageCode(final String name, final int code)
066 {
067 if (name == null)
068 {
069 throw new NullPointerException("Name must not be null.");
070 }
071 this.name = name;
072 this.code = code;
073 }
074
075 public int getCode()
076 {
077 return code;
078 }
079
080 public String getName()
081 {
082 return name;
083 }
084
085 public boolean equals(final Object o)
086 {
087 if (this == o)
088 {
089 return true;
090 }
091 if (o == null || getClass() != o.getClass())
092 {
093 return false;
094 }
095
096 final LanguageCode language = (LanguageCode) o;
097 return code == language.code;
098 }
099
100 public int hashCode()
101 {
102 return code;
103 }
104 }