blob: e6e2d8036a9dd9cd575312d80347407bd128b0f5 [file] [log] [blame]
/*=============================================================================#
# 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);
}
}