private String valueString() { next(); expect(JsonParser.Event.VALUE_STRING); return getString(); }
private List<Object> readDataFragments() { ArrayList<Object> list = new ArrayList<>(); next(); expect(Event.START_ARRAY); while (next() != Event.END_ARRAY) { switch (event) { case START_OBJECT: list.add(readDataFragment()); break; case VALUE_NULL: list.add(null); break; default: throw new JsonParsingException("Unexpected " + event, parser.getLocation()); } } return list; }
private Object readItemOrPersonName() { if (next() != JsonParser.Event.KEY_NAME) return null; return (getString().length() == 8) ? doReadDataset(new Attributes()) : readPersonName(); }
private Attributes doReadDataset(Attributes attrs) { while (event == JsonParser.Event.KEY_NAME) { readAttribute(attrs); next(); } expect(JsonParser.Event.END_OBJECT); attrs.trimToSize(); return attrs; }
private List<Object> readValues() { ArrayList<Object> list = new ArrayList<>(); next(); expect(Event.START_ARRAY); while (next() != Event.END_ARRAY) { switch (event) { case START_OBJECT: list.add(readItemOrPersonName()); break; case VALUE_STRING: list.add(parser.getString()); break; case VALUE_NUMBER: list.add(parser.getBigDecimal()); break; case VALUE_NULL: list.add(null); break; default: throw new JsonParsingException("Unexpected " + event, parser.getLocation()); } } return list; }
private Object readDataFragment() { byte[] bytes = null; String bulkDataURI = null; while (next() == Event.KEY_NAME) { switch (getString()) { case "BulkDataURI": bulkDataURI = valueString(); break; case "InlineBinary": bytes = readInlineBinary(); break; default: throw new JsonParsingException("Unexpected \"" + getString() + "\", expected \"InlineBinary\"" + " or \"BulkDataURI\"", parser.getLocation()); } } expect(Event.END_OBJECT); return bulkDataURI != null && !skipBulkDataURI ? new BulkData(null, bulkDataURI, false) : bytes; }