You do not need m_numericTypes. You only use it here to inefficiently initialize m_typesFixedLengthInBytes. Replace these "add" statements with lines like:

     m_typesFixedLengthInBytes.put(TINYINT.toString(), TINYINT.getLengthInBytesForFixedTypes());

instead of the loop below.