Advertisement
SnowyCoder

DefaultFontInfo - HashMap Optimization

Jul 2nd, 2016
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.16 KB | None | 0 0
  1. public enum DefaultFontInfo {
  2.         A('A', 5),
  3.         a('a', 5),
  4.         B('B', 5),
  5.         b('b', 5),
  6.         C('C', 5),
  7.         c('c', 5),
  8.         D('D', 5),
  9.         d('d', 5),
  10.         E('E', 5),
  11.         e('e', 5),
  12.         F('F', 5),
  13.         f('f', 4),
  14.         G('G', 5),
  15.         g('g', 5),
  16.         H('H', 5),
  17.         h('h', 5),
  18.         I('I', 3),
  19.         i('i', 1),
  20.         J('J', 5),
  21.         j('j', 5),
  22.         K('K', 5),
  23.         k('k', 4),
  24.         L('L', 5),
  25.         l('l', 1),
  26.         M('M', 5),
  27.         m('m', 5),
  28.         N('N', 5),
  29.         n('n', 5),
  30.         O('O', 5),
  31.         o('o', 5),
  32.         P('P', 5),
  33.         p('p', 5),
  34.         Q('Q', 5),
  35.         q('q', 5),
  36.         R('R', 5),
  37.         r('r', 5),
  38.         S('S', 5),
  39.         s('s', 5),
  40.         T('T', 5),
  41.         t('t', 4),
  42.         U('U', 5),
  43.         u('u', 5),
  44.         V('V', 5),
  45.         v('v', 5),
  46.         W('W', 5),
  47.         w('w', 5),
  48.         X('X', 5),
  49.         x('x', 5),
  50.         Y('Y', 5),
  51.         y('y', 5),
  52.         Z('Z', 5),
  53.         z('z', 5),
  54.         NUM_1('1', 5),
  55.         NUM_2('2', 5),
  56.         NUM_3('3', 5),
  57.         NUM_4('4', 5),
  58.         NUM_5('5', 5),
  59.         NUM_6('6', 5),
  60.         NUM_7('7', 5),
  61.         NUM_8('8', 5),
  62.         NUM_9('9', 5),
  63.         NUM_0('0', 5),
  64.         EXCLAMATION_POINT('!', 1),
  65.         AT_SYMBOL('@', 6),
  66.         NUM_SIGN('#', 5),
  67.         DOLLAR_SIGN('$', 5),
  68.         PERCENT('%', 5),
  69.         UP_ARROW('^', 5),
  70.         AMPERSAND('&', 5),
  71.         ASTERISK('*', 5),
  72.         LEFT_PARENTHESIS('(', 4),
  73.         RIGHT_PARENTHESIS(')', 4),
  74.         MINUS('-', 5),
  75.         UNDERSCORE('_', 5),
  76.         PLUS_SIGN('+', 5),
  77.         EQUALS_SIGN('=', 5),
  78.         LEFT_CURL_BRACE('{', 4),
  79.         RIGHT_CURL_BRACE('}', 4),
  80.         LEFT_BRACKET('[', 3),
  81.         RIGHT_BRACKET(']', 3),
  82.         COLON(':', 1),
  83.         SEMI_COLON(';', 1),
  84.         DOUBLE_QUOTE('"', 3),
  85.         SINGLE_QUOTE('\'', 1),
  86.         LEFT_ARROW('<', 4),
  87.         RIGHT_ARROW('>', 4),
  88.         QUESTION_MARK('?', 5),
  89.         SLASH('/', 5),
  90.         BACK_SLASH('\\', 5),
  91.         LINE('|', 1),
  92.         TILDE('~', 5),
  93.         TICK('`', 2),
  94.         PERIOD('.', 1),
  95.         COMMA(',', 1),
  96.         SPACE(' ', 3),
  97.         DEFAULT('\0', 4);
  98.  
  99.         private static final Map<Character, DefaultFontInfo> CHAR_MAP = new HashMap<Character, DefaultFontInfo>(values().length, 1.1f);
  100.  
  101.         private char character;
  102.         private int length;
  103.  
  104.  
  105.         static {
  106.             for(DefaultFontInfo info : values())
  107.                 CHAR_MAP.put(info.character, info);
  108.         }
  109.  
  110.         DefaultFontInfo(char character, int length) {
  111.             this.character = character;
  112.             this.length = length;
  113.         }
  114.  
  115.         public char getCharacter() {
  116.             return this.character;
  117.         }
  118.  
  119.         public int getLength() {
  120.             return this.length;
  121.         }
  122.  
  123.         public int getBoldLength() {
  124.             if (this == DefaultFontInfo.SPACE) return this.getLength();
  125.             return this.length + 1;
  126.         }
  127.  
  128.         public static DefaultFontInfo getDefaultFontInfo(char c) {
  129.             return CHAR_MAP.getOrDefault(c, DEFAULT);
  130.         }
  131.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement