| /*=============================================================================# |
| # Copyright (c) 2011, 2020 Stephan Wahlbrink and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.rj.graphic.core.util; |
| |
| |
| public final class Unicode2AdbSymbolMapping implements CharMapping { |
| |
| |
| private final static char[] ADBSYMBOL_U2C= new char[0xffff]; |
| |
| static { |
| for (int i= 0; i < ADBSYMBOL_U2C.length; i++) { |
| ADBSYMBOL_U2C[i]= (char) i; |
| } |
| // Generated by CodeGenAdbSymbol |
| ADBSYMBOL_U2C[0x0020]= 0x20; // SPACE |
| ADBSYMBOL_U2C[0x00A0]= 0x20; // NO-BREAK SPACE |
| ADBSYMBOL_U2C[0x0021]= 0x21; // EXCLAMATION MARK |
| ADBSYMBOL_U2C[0x2200]= 0x22; // FOR ALL |
| ADBSYMBOL_U2C[0x0023]= 0x23; // NUMBER SIGN |
| ADBSYMBOL_U2C[0x2203]= 0x24; // THERE EXISTS |
| ADBSYMBOL_U2C[0x0025]= 0x25; // PERCENT SIGN |
| ADBSYMBOL_U2C[0x0026]= 0x26; // AMPERSAND |
| ADBSYMBOL_U2C[0x220B]= 0x27; // CONTAINS AS MEMBER |
| ADBSYMBOL_U2C[0x0028]= 0x28; // LEFT PARENTHESIS |
| ADBSYMBOL_U2C[0x0029]= 0x29; // RIGHT PARENTHESIS |
| ADBSYMBOL_U2C[0x2217]= 0x2A; // ASTERISK OPERATOR |
| ADBSYMBOL_U2C[0x002B]= 0x2B; // PLUS SIGN |
| ADBSYMBOL_U2C[0x002C]= 0x2C; // COMMA |
| ADBSYMBOL_U2C[0x2212]= 0x2D; // MINUS SIGN |
| ADBSYMBOL_U2C[0x002E]= 0x2E; // FULL STOP |
| ADBSYMBOL_U2C[0x002F]= 0x2F; // SOLIDUS |
| ADBSYMBOL_U2C[0x0030]= 0x30; // DIGIT ZERO |
| ADBSYMBOL_U2C[0x0031]= 0x31; // DIGIT ONE |
| ADBSYMBOL_U2C[0x0032]= 0x32; // DIGIT TWO |
| ADBSYMBOL_U2C[0x0033]= 0x33; // DIGIT THREE |
| ADBSYMBOL_U2C[0x0034]= 0x34; // DIGIT FOUR |
| ADBSYMBOL_U2C[0x0035]= 0x35; // DIGIT FIVE |
| ADBSYMBOL_U2C[0x0036]= 0x36; // DIGIT SIX |
| ADBSYMBOL_U2C[0x0037]= 0x37; // DIGIT SEVEN |
| ADBSYMBOL_U2C[0x0038]= 0x38; // DIGIT EIGHT |
| ADBSYMBOL_U2C[0x0039]= 0x39; // DIGIT NINE |
| ADBSYMBOL_U2C[0x003A]= 0x3A; // COLON |
| ADBSYMBOL_U2C[0x003B]= 0x3B; // SEMICOLON |
| ADBSYMBOL_U2C[0x003C]= 0x3C; // LESS-THAN SIGN |
| ADBSYMBOL_U2C[0x003D]= 0x3D; // EQUALS SIGN |
| ADBSYMBOL_U2C[0x003E]= 0x3E; // GREATER-THAN SIGN |
| ADBSYMBOL_U2C[0x003F]= 0x3F; // QUESTION MARK |
| ADBSYMBOL_U2C[0x2245]= 0x40; // APPROXIMATELY EQUAL TO |
| ADBSYMBOL_U2C[0x0391]= 0x41; // GREEK CAPITAL LETTER ALPHA |
| ADBSYMBOL_U2C[0x0392]= 0x42; // GREEK CAPITAL LETTER BETA |
| ADBSYMBOL_U2C[0x03A7]= 0x43; // GREEK CAPITAL LETTER CHI |
| ADBSYMBOL_U2C[0x0394]= 0x44; // GREEK CAPITAL LETTER DELTA |
| ADBSYMBOL_U2C[0x2206]= 0x44; // INCREMENT |
| ADBSYMBOL_U2C[0x0395]= 0x45; // GREEK CAPITAL LETTER EPSILON |
| ADBSYMBOL_U2C[0x03A6]= 0x46; // GREEK CAPITAL LETTER PHI |
| ADBSYMBOL_U2C[0x0393]= 0x47; // GREEK CAPITAL LETTER GAMMA |
| ADBSYMBOL_U2C[0x0397]= 0x48; // GREEK CAPITAL LETTER ETA |
| ADBSYMBOL_U2C[0x0399]= 0x49; // GREEK CAPITAL LETTER IOTA |
| ADBSYMBOL_U2C[0x03D1]= 0x4A; // GREEK THETA SYMBOL |
| ADBSYMBOL_U2C[0x039A]= 0x4B; // GREEK CAPITAL LETTER KAPPA |
| ADBSYMBOL_U2C[0x039B]= 0x4C; // GREEK CAPITAL LETTER LAMDA |
| ADBSYMBOL_U2C[0x039C]= 0x4D; // GREEK CAPITAL LETTER MU |
| ADBSYMBOL_U2C[0x039D]= 0x4E; // GREEK CAPITAL LETTER NU |
| ADBSYMBOL_U2C[0x039F]= 0x4F; // GREEK CAPITAL LETTER OMICRON |
| ADBSYMBOL_U2C[0x03A0]= 0x50; // GREEK CAPITAL LETTER PI |
| ADBSYMBOL_U2C[0x0398]= 0x51; // GREEK CAPITAL LETTER THETA |
| ADBSYMBOL_U2C[0x03A1]= 0x52; // GREEK CAPITAL LETTER RHO |
| ADBSYMBOL_U2C[0x03A3]= 0x53; // GREEK CAPITAL LETTER SIGMA |
| ADBSYMBOL_U2C[0x03A4]= 0x54; // GREEK CAPITAL LETTER TAU |
| ADBSYMBOL_U2C[0x03A5]= 0x55; // GREEK CAPITAL LETTER UPSILON |
| ADBSYMBOL_U2C[0x03C2]= 0x56; // GREEK SMALL LETTER FINAL SIGMA |
| ADBSYMBOL_U2C[0x03A9]= 0x57; // GREEK CAPITAL LETTER OMEGA |
| ADBSYMBOL_U2C[0x2126]= 0x57; // OHM SIGN |
| ADBSYMBOL_U2C[0x039E]= 0x58; // GREEK CAPITAL LETTER XI |
| ADBSYMBOL_U2C[0x03A8]= 0x59; // GREEK CAPITAL LETTER PSI |
| ADBSYMBOL_U2C[0x0396]= 0x5A; // GREEK CAPITAL LETTER ZETA |
| ADBSYMBOL_U2C[0x005B]= 0x5B; // LEFT SQUARE BRACKET |
| ADBSYMBOL_U2C[0x2234]= 0x5C; // THEREFORE |
| ADBSYMBOL_U2C[0x005D]= 0x5D; // RIGHT SQUARE BRACKET |
| ADBSYMBOL_U2C[0x22A5]= 0x5E; // UP TACK |
| ADBSYMBOL_U2C[0x005F]= 0x5F; // LOW LINE |
| ADBSYMBOL_U2C[0xF8E5]= 0x60; // RADICAL EXTENDER |
| ADBSYMBOL_U2C[0x03B1]= 0x61; // GREEK SMALL LETTER ALPHA |
| ADBSYMBOL_U2C[0x03B2]= 0x62; // GREEK SMALL LETTER BETA |
| ADBSYMBOL_U2C[0x03C7]= 0x63; // GREEK SMALL LETTER CHI |
| ADBSYMBOL_U2C[0x03B4]= 0x64; // GREEK SMALL LETTER DELTA |
| ADBSYMBOL_U2C[0x03B5]= 0x65; // GREEK SMALL LETTER EPSILON |
| ADBSYMBOL_U2C[0x03C6]= 0x66; // GREEK SMALL LETTER PHI |
| ADBSYMBOL_U2C[0x03B3]= 0x67; // GREEK SMALL LETTER GAMMA |
| ADBSYMBOL_U2C[0x03B7]= 0x68; // GREEK SMALL LETTER ETA |
| ADBSYMBOL_U2C[0x03B9]= 0x69; // GREEK SMALL LETTER IOTA |
| ADBSYMBOL_U2C[0x03D5]= 0x6A; // GREEK PHI SYMBOL |
| ADBSYMBOL_U2C[0x03BA]= 0x6B; // GREEK SMALL LETTER KAPPA |
| ADBSYMBOL_U2C[0x03BB]= 0x6C; // GREEK SMALL LETTER LAMDA |
| ADBSYMBOL_U2C[0x00B5]= 0x6D; // MICRO SIGN |
| ADBSYMBOL_U2C[0x03BC]= 0x6D; // GREEK SMALL LETTER MU |
| ADBSYMBOL_U2C[0x03BD]= 0x6E; // GREEK SMALL LETTER NU |
| ADBSYMBOL_U2C[0x03BF]= 0x6F; // GREEK SMALL LETTER OMICRON |
| ADBSYMBOL_U2C[0x03C0]= 0x70; // GREEK SMALL LETTER PI |
| ADBSYMBOL_U2C[0x03B8]= 0x71; // GREEK SMALL LETTER THETA |
| ADBSYMBOL_U2C[0x03C1]= 0x72; // GREEK SMALL LETTER RHO |
| ADBSYMBOL_U2C[0x03C3]= 0x73; // GREEK SMALL LETTER SIGMA |
| ADBSYMBOL_U2C[0x03C4]= 0x74; // GREEK SMALL LETTER TAU |
| ADBSYMBOL_U2C[0x03C5]= 0x75; // GREEK SMALL LETTER UPSILON |
| ADBSYMBOL_U2C[0x03D6]= 0x76; // GREEK PI SYMBOL |
| ADBSYMBOL_U2C[0x03C9]= 0x77; // GREEK SMALL LETTER OMEGA |
| ADBSYMBOL_U2C[0x03BE]= 0x78; // GREEK SMALL LETTER XI |
| ADBSYMBOL_U2C[0x03C8]= 0x79; // GREEK SMALL LETTER PSI |
| ADBSYMBOL_U2C[0x03B6]= 0x7A; // GREEK SMALL LETTER ZETA |
| ADBSYMBOL_U2C[0x007B]= 0x7B; // LEFT CURLY BRACKET |
| ADBSYMBOL_U2C[0x007C]= 0x7C; // VERTICAL LINE |
| ADBSYMBOL_U2C[0x007D]= 0x7D; // RIGHT CURLY BRACKET |
| ADBSYMBOL_U2C[0x223C]= 0x7E; // TILDE OPERATOR |
| ADBSYMBOL_U2C[0x20AC]= 0xA0; // EURO SIGN |
| ADBSYMBOL_U2C[0x03D2]= 0xA1; // GREEK UPSILON WITH HOOK SYMBOL |
| ADBSYMBOL_U2C[0x2032]= 0xA2; // PRIME |
| ADBSYMBOL_U2C[0x2264]= 0xA3; // LESS-THAN OR EQUAL TO |
| ADBSYMBOL_U2C[0x2044]= 0xA4; // FRACTION SLASH |
| ADBSYMBOL_U2C[0x2215]= 0xA4; // DIVISION SLASH |
| ADBSYMBOL_U2C[0x221E]= 0xA5; // INFINITY |
| ADBSYMBOL_U2C[0x0192]= 0xA6; // LATIN SMALL LETTER F WITH HOOK |
| ADBSYMBOL_U2C[0x2663]= 0xA7; // BLACK CLUB SUIT |
| ADBSYMBOL_U2C[0x2666]= 0xA8; // BLACK DIAMOND SUIT |
| ADBSYMBOL_U2C[0x2665]= 0xA9; // BLACK HEART SUIT |
| ADBSYMBOL_U2C[0x2660]= 0xAA; // BLACK SPADE SUIT |
| ADBSYMBOL_U2C[0x2194]= 0xAB; // LEFT RIGHT ARROW |
| ADBSYMBOL_U2C[0x2190]= 0xAC; // LEFTWARDS ARROW |
| ADBSYMBOL_U2C[0x2191]= 0xAD; // UPWARDS ARROW |
| ADBSYMBOL_U2C[0x2192]= 0xAE; // RIGHTWARDS ARROW |
| ADBSYMBOL_U2C[0x2193]= 0xAF; // DOWNWARDS ARROW |
| ADBSYMBOL_U2C[0x00B0]= 0xB0; // DEGREE SIGN |
| ADBSYMBOL_U2C[0x00B1]= 0xB1; // PLUS-MINUS SIGN |
| ADBSYMBOL_U2C[0x2033]= 0xB2; // DOUBLE PRIME |
| ADBSYMBOL_U2C[0x2265]= 0xB3; // GREATER-THAN OR EQUAL TO |
| ADBSYMBOL_U2C[0x00D7]= 0xB4; // MULTIPLICATION SIGN |
| ADBSYMBOL_U2C[0x221D]= 0xB5; // PROPORTIONAL TO |
| ADBSYMBOL_U2C[0x2202]= 0xB6; // PARTIAL DIFFERENTIAL |
| ADBSYMBOL_U2C[0x2022]= 0xB7; // BULLET |
| ADBSYMBOL_U2C[0x00F7]= 0xB8; // DIVISION SIGN |
| ADBSYMBOL_U2C[0x2260]= 0xB9; // NOT EQUAL TO |
| ADBSYMBOL_U2C[0x2261]= 0xBA; // IDENTICAL TO |
| ADBSYMBOL_U2C[0x2248]= 0xBB; // ALMOST EQUAL TO |
| ADBSYMBOL_U2C[0x2026]= 0xBC; // HORIZONTAL ELLIPSIS |
| ADBSYMBOL_U2C[0xF8E6]= 0xBD; // VERTICAL ARROW EXTENDER |
| ADBSYMBOL_U2C[0xF8E7]= 0xBE; // HORIZONTAL ARROW EXTENDER |
| ADBSYMBOL_U2C[0x21B5]= 0xBF; // DOWNWARDS ARROW WITH CORNER LEFTWARDS |
| ADBSYMBOL_U2C[0x2135]= 0xC0; // ALEF SYMBOL |
| ADBSYMBOL_U2C[0x2111]= 0xC1; // BLACK-LETTER CAPITAL I |
| ADBSYMBOL_U2C[0x211C]= 0xC2; // BLACK-LETTER CAPITAL R |
| ADBSYMBOL_U2C[0x2118]= 0xC3; // SCRIPT CAPITAL P |
| ADBSYMBOL_U2C[0x2297]= 0xC4; // CIRCLED TIMES |
| ADBSYMBOL_U2C[0x2295]= 0xC5; // CIRCLED PLUS |
| ADBSYMBOL_U2C[0x2205]= 0xC6; // EMPTY SET |
| ADBSYMBOL_U2C[0x2229]= 0xC7; // INTERSECTION |
| ADBSYMBOL_U2C[0x222A]= 0xC8; // UNION |
| ADBSYMBOL_U2C[0x2283]= 0xC9; // SUPERSET OF |
| ADBSYMBOL_U2C[0x2287]= 0xCA; // SUPERSET OF OR EQUAL TO |
| ADBSYMBOL_U2C[0x2284]= 0xCB; // NOT A SUBSET OF |
| ADBSYMBOL_U2C[0x2282]= 0xCC; // SUBSET OF |
| ADBSYMBOL_U2C[0x2286]= 0xCD; // SUBSET OF OR EQUAL TO |
| ADBSYMBOL_U2C[0x2208]= 0xCE; // ELEMENT OF |
| ADBSYMBOL_U2C[0x2209]= 0xCF; // NOT AN ELEMENT OF |
| ADBSYMBOL_U2C[0x2220]= 0xD0; // ANGLE |
| ADBSYMBOL_U2C[0x2207]= 0xD1; // NABLA |
| ADBSYMBOL_U2C[0xF6DA]= 0xD2; // REGISTERED SIGN SERIF |
| ADBSYMBOL_U2C[0xF6D9]= 0xD3; // COPYRIGHT SIGN SERIF |
| ADBSYMBOL_U2C[0xF6DB]= 0xD4; // TRADE MARK SIGN SERIF |
| ADBSYMBOL_U2C[0x220F]= 0xD5; // N-ARY PRODUCT |
| ADBSYMBOL_U2C[0x221A]= 0xD6; // SQUARE ROOT |
| ADBSYMBOL_U2C[0x22C5]= 0xD7; // DOT OPERATOR |
| ADBSYMBOL_U2C[0x00AC]= 0xD8; // NOT SIGN |
| ADBSYMBOL_U2C[0x2227]= 0xD9; // LOGICAL AND |
| ADBSYMBOL_U2C[0x2228]= 0xDA; // LOGICAL OR |
| ADBSYMBOL_U2C[0x21D4]= 0xDB; // LEFT RIGHT DOUBLE ARROW |
| ADBSYMBOL_U2C[0x21D0]= 0xDC; // LEFTWARDS DOUBLE ARROW |
| ADBSYMBOL_U2C[0x21D1]= 0xDD; // UPWARDS DOUBLE ARROW |
| ADBSYMBOL_U2C[0x21D2]= 0xDE; // RIGHTWARDS DOUBLE ARROW |
| ADBSYMBOL_U2C[0x21D3]= 0xDF; // DOWNWARDS DOUBLE ARROW |
| ADBSYMBOL_U2C[0x25CA]= 0xE0; // LOZENGE |
| ADBSYMBOL_U2C[0x2329]= 0xE1; // LEFT-POINTING ANGLE BRACKET |
| ADBSYMBOL_U2C[0xF8E8]= 0xE2; // REGISTERED SIGN SANS SERIF |
| ADBSYMBOL_U2C[0xF8E9]= 0xE3; // COPYRIGHT SIGN SANS SERIF |
| ADBSYMBOL_U2C[0xF8EA]= 0xE4; // TRADE MARK SIGN SANS SERIF |
| ADBSYMBOL_U2C[0x2211]= 0xE5; // N-ARY SUMMATION |
| ADBSYMBOL_U2C[0xF8EB]= 0xE6; // LEFT PAREN TOP |
| ADBSYMBOL_U2C[0xF8EC]= 0xE7; // LEFT PAREN EXTENDER |
| ADBSYMBOL_U2C[0xF8ED]= 0xE8; // LEFT PAREN BOTTOM |
| ADBSYMBOL_U2C[0xF8EE]= 0xE9; // LEFT SQUARE BRACKET TOP |
| ADBSYMBOL_U2C[0xF8EF]= 0xEA; // LEFT SQUARE BRACKET EXTENDER |
| ADBSYMBOL_U2C[0xF8F0]= 0xEB; // LEFT SQUARE BRACKET BOTTOM |
| ADBSYMBOL_U2C[0xF8F1]= 0xEC; // LEFT CURLY BRACKET TOP |
| ADBSYMBOL_U2C[0xF8F2]= 0xED; // LEFT CURLY BRACKET MID |
| ADBSYMBOL_U2C[0xF8F3]= 0xEE; // LEFT CURLY BRACKET BOTTOM |
| ADBSYMBOL_U2C[0xF8F4]= 0xEF; // CURLY BRACKET EXTENDER |
| ADBSYMBOL_U2C[0x232A]= 0xF1; // RIGHT-POINTING ANGLE BRACKET |
| ADBSYMBOL_U2C[0x222B]= 0xF2; // INTEGRAL |
| ADBSYMBOL_U2C[0x2320]= 0xF3; // TOP HALF INTEGRAL |
| ADBSYMBOL_U2C[0xF8F5]= 0xF4; // INTEGRAL EXTENDER |
| ADBSYMBOL_U2C[0x2321]= 0xF5; // BOTTOM HALF INTEGRAL |
| ADBSYMBOL_U2C[0xF8F6]= 0xF6; // RIGHT PAREN TOP |
| ADBSYMBOL_U2C[0xF8F7]= 0xF7; // RIGHT PAREN EXTENDER |
| ADBSYMBOL_U2C[0xF8F8]= 0xF8; // RIGHT PAREN BOTTOM |
| ADBSYMBOL_U2C[0xF8F9]= 0xF9; // RIGHT SQUARE BRACKET TOP |
| ADBSYMBOL_U2C[0xF8FA]= 0xFA; // RIGHT SQUARE BRACKET EXTENDER |
| ADBSYMBOL_U2C[0xF8FB]= 0xFB; // RIGHT SQUARE BRACKET BOTTOM |
| ADBSYMBOL_U2C[0xF8FC]= 0xFC; // RIGHT CURLY BRACKET TOP |
| ADBSYMBOL_U2C[0xF8FD]= 0xFD; // RIGHT CURLY BRACKET MID |
| ADBSYMBOL_U2C[0xF8FE]= 0xFE; // RIGHT CURLY BRACKET BOTTOM |
| } |
| |
| |
| @Override |
| public int encode(final int codepoint) { |
| return (codepoint >= 0 && codepoint < 0xffff) ? ADBSYMBOL_U2C[codepoint] : codepoint; |
| } |
| |
| @Override |
| public String encode(final String s) { |
| final char[] encodedChars= new char[s.length()]; |
| for (int i= 0; i < s.length(); i++) { |
| final char c= s.charAt(i); |
| encodedChars[i]= (c >= 0 && c < 0xffff) ? ADBSYMBOL_U2C[c] : c; |
| } |
| return new String(encodedChars); |
| } |
| |
| } |