001package com.hfg.xml.parser;
002
003import com.hfg.util.collection.BiHashMap;
004import com.hfg.util.collection.BiMap;
005
006//------------------------------------------------------------------------------
007/**
008 Lookup class for the character entities defined in XHTML1-symbol.ent
009
010 @author J. Alex Taylor, hairyfatguy.com
011 */
012//------------------------------------------------------------------------------
013// com.hfg XML/HTML Coding Library
014//
015// This library is free software; you can redistribute it and/or
016// modify it under the terms of the GNU Lesser General Public
017// License as published by the Free Software Foundation; either
018// version 2.1 of the License, or (at your option) any later version.
019//
020// This library is distributed in the hope that it will be useful,
021// but WITHOUT ANY WARRANTY; without even the implied warranty of
022// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
023// Lesser General Public License for more details.
024//
025// You should have received a copy of the GNU Lesser General Public
026// License along with this library; if not, write to the Free Software
027// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
028//
029// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
030// jataylor@hairyfatguy.com
031//------------------------------------------------------------------------------
032
033public class SymbolEntities extends AbstractEntities
034{
035   private static SymbolEntities sInstance;
036
037   private static BiMap<String, Integer> sEntityMap = new BiHashMap<>();
038
039   static
040   {
041      // Latin Extended-B
042      sEntityMap.put("fnof", 402);
043
044      // Greek
045      sEntityMap.put("Alpha", 913);
046      sEntityMap.put("Beta", 914);
047      sEntityMap.put("Gamma", 915);
048      sEntityMap.put("Delta", 916);
049      sEntityMap.put("Epsilon", 917);
050      sEntityMap.put("Zeta", 918);
051      sEntityMap.put("Eta", 919);
052      sEntityMap.put("Theta", 920);
053      sEntityMap.put("Iota", 921);
054      sEntityMap.put("Kappa", 922);
055      sEntityMap.put("Lambda", 923);
056      sEntityMap.put("Mu", 924);
057      sEntityMap.put("Nu", 925);
058      sEntityMap.put("Xi", 926);
059      sEntityMap.put("Omicron", 927);
060      sEntityMap.put("Pi", 928);
061      sEntityMap.put("Rho", 929);
062      sEntityMap.put("Sigma", 931);
063      sEntityMap.put("Tau", 932);
064      sEntityMap.put("Upsilon", 933);
065      sEntityMap.put("Phi", 934);
066      sEntityMap.put("Chi", 935);
067      sEntityMap.put("Psi", 936);
068      sEntityMap.put("Omega", 937);
069
070      sEntityMap.put("alpha", 945);
071      sEntityMap.put("beta", 946);
072      sEntityMap.put("gamma", 947);
073      sEntityMap.put("delta", 948);
074      sEntityMap.put("epsilon", 949);
075      sEntityMap.put("zeta", 950);
076      sEntityMap.put("eta", 951);
077      sEntityMap.put("theta", 952);
078      sEntityMap.put("iota", 953);
079      sEntityMap.put("kappa", 954);
080      sEntityMap.put("lambda", 955);
081      sEntityMap.put("mu", 956);
082      sEntityMap.put("nu", 957);
083      sEntityMap.put("xi", 958);
084      sEntityMap.put("omicron", 959);
085      sEntityMap.put("pi", 960);
086      sEntityMap.put("rho", 961);
087      sEntityMap.put("sigmaf", 962);
088      sEntityMap.put("sigma", 963);
089      sEntityMap.put("tau", 964);
090      sEntityMap.put("upsilon", 965);
091      sEntityMap.put("phi", 966);
092      sEntityMap.put("chi", 967);
093      sEntityMap.put("psi", 968);
094      sEntityMap.put("omega", 969);
095      sEntityMap.put("thetasym", 977);
096      sEntityMap.put("upsih", 978);
097      sEntityMap.put("piv", 982);
098
099      // General Punctuation
100      sEntityMap.put("bull", 8226);
101      sEntityMap.put("hellip", 8230);
102      sEntityMap.put("prime", 8242);
103      sEntityMap.put("Prime", 8243);
104      sEntityMap.put("oline", 8254);
105      sEntityMap.put("frasl", 8260);
106
107      // Letterlike Symbols
108      sEntityMap.put("weierp", 8472);
109      sEntityMap.put("image", 8465);
110      sEntityMap.put("real", 8476);
111      sEntityMap.put("trade", 8482);
112      sEntityMap.put("alefsym", 8501);
113
114      // Arrows
115      sEntityMap.put("larr", 8592);
116      sEntityMap.put("uarr", 8593);
117      sEntityMap.put("rarr", 8594);
118      sEntityMap.put("darr", 8595);
119      sEntityMap.put("harr", 8596);
120      sEntityMap.put("crarr", 8629);
121      sEntityMap.put("lArr", 8656);
122      sEntityMap.put("uArr", 8657);
123      sEntityMap.put("rArr", 8658);
124      sEntityMap.put("dArr", 8659);
125      sEntityMap.put("hArr", 8660);
126
127      // Mathematical Operators
128      sEntityMap.put("forall", 8704);
129      sEntityMap.put("part", 8706);
130      sEntityMap.put("exist", 8707);
131      sEntityMap.put("empty", 8709);
132      sEntityMap.put("nabla", 8711);
133      sEntityMap.put("isin", 8712);
134      sEntityMap.put("notin", 8713);
135      sEntityMap.put("ni", 8715);
136      sEntityMap.put("prod", 8719);
137      sEntityMap.put("sum", 8721);
138      sEntityMap.put("minus", 8722);
139      sEntityMap.put("lowast", 8727);
140      sEntityMap.put("radic", 8730);
141      sEntityMap.put("prop", 8733);
142      sEntityMap.put("infin", 8734);
143      sEntityMap.put("ang", 8736);
144      sEntityMap.put("and", 8743);
145      sEntityMap.put("or", 8744);
146      sEntityMap.put("cap", 8745);
147      sEntityMap.put("cup", 8746);
148      sEntityMap.put("int", 8747);
149      sEntityMap.put("there4", 8756);
150      sEntityMap.put("sim", 8764);
151      sEntityMap.put("cong", 8773);
152      sEntityMap.put("asymp", 8776);
153      sEntityMap.put("ne", 8800);
154      sEntityMap.put("equiv", 8801);
155      sEntityMap.put("le", 8804);
156      sEntityMap.put("ge", 8805);
157      sEntityMap.put("sub", 8834);
158      sEntityMap.put("sup", 8835);
159      sEntityMap.put("nsub", 8836);
160      sEntityMap.put("sube", 8838);
161      sEntityMap.put("supe", 8839);
162      sEntityMap.put("oplus", 8853);
163      sEntityMap.put("otimes", 8855);
164      sEntityMap.put("perp", 8869);
165      sEntityMap.put("sdot", 8901);
166
167      // Miscellaneous Technical
168      sEntityMap.put("lceil", 8968);
169      sEntityMap.put("rceil", 8969);
170      sEntityMap.put("lfloor", 8970);
171      sEntityMap.put("rfloor", 8971);
172      sEntityMap.put("lang", 9001);
173      sEntityMap.put("rang", 9002);
174
175      // Geometric Shapes
176      sEntityMap.put("loz", 9674);
177
178      // Miscellaneous Symbols
179      sEntityMap.put("spades", 9824);
180      sEntityMap.put("clubs", 9827);
181      sEntityMap.put("hearts", 9829);
182      sEntityMap.put("diams", 9830);
183   }
184
185   //---------------------------------------------------------------------------
186   private SymbolEntities()
187   {
188
189   }
190
191   //---------------------------------------------------------------------------
192   public static SymbolEntities getInstance()
193   {
194      if (null == sInstance)
195      {
196         sInstance = new SymbolEntities();
197      }
198
199      return sInstance;
200   }
201
202   //---------------------------------------------------------------------------
203   protected BiMap<String, Integer> getEntityMap()
204   {
205      return sEntityMap;
206   }
207
208}