final String readString() throws IOException { return backend.readString(pointer); }
final String readString() throws IOException { return backend.readString(pointer); }
protected final <E extends Enum<E>> E readEnum(Class<E> clazz) throws IOException { String value = backend.readString(pointer); if (value == null || value.isEmpty()) { return null; } else { try { return Enum.valueOf(clazz, value); } catch (IllegalArgumentException e) { throw new InvalidRrdException("Invalid value for " + clazz.getSimpleName(), e); } } }