protected void fillFields(RecordInputStream in) { fHighByte = BitFieldFactory.getInstance(0x01); // have to init here, since we are being called // from super, and class level init hasnt been done. field_1_xf_index = in.readShort(); if (getType() == STYLE_BUILT_IN) { field_2_builtin_style = in.readByte(); field_3_outline_style_level = in.readByte(); } else if (getType() == STYLE_USER_DEFINED) { field_2_name_length = in.readShort(); field_3_string_options = in.readByte(); byte[] string = in.readRemainder(); if (fHighByte.isSet(field_3_string_options)) { field_4_name = StringUtil.getFromUnicodeBE(string, 0, field_2_name_length); } else { field_4_name = StringUtil.getFromCompressedUnicode(string, 0, field_2_name_length); } } // todo sanity check exception to make sure we're one or the other }