public static Reader eventsToReader(List<XMLEvent> events) { String string = eventsToString(events); if (string == null) { return null; } return new StringReader(string); } public static String eventsToString(List<XMLEvent> events) {
public static Reader eventsToReader(List<XMLEvent> events) { String string = eventsToString(events); if (string == null) { return null; } return new StringReader(string); } public static String eventsToString(List<XMLEvent> events) {
private List<String> populateExtractedItems(List<XMLEvent> events) { List<String> items = new ArrayList<>(); List<XMLEvent> itemEvents = new ArrayList<>(); List<QName> startNames = new ArrayList<>(); for ( XMLEvent event : events ) { itemEvents.add(event); switch (event.getEventType()) { case XMLStreamConstants.START_ELEMENT: { startNames.add(event.asStartElement().getName()); break; } case XMLStreamConstants.END_ELEMENT: { QName startName = startNames.remove(startNames.size() - 1); if (startNames.size() == 0 ) { if ( startName.equals(event.asEndElement().getName())) { items.add(Utilities.eventsToString(itemEvents)); itemEvents = new ArrayList<>(); } else { throw new IllegalStateException("Error parsing xml \"" + Utilities.eventsToString(itemEvents) + "\", element " + startName + " doesn't end as expected"); } } break; } } } return items; }
public static Object eventsToObject(List<XMLEvent> events, Class<?> as) { if (events == null || events.size() == 0) { return null; } if (byte[].class.isAssignableFrom(as)) { return eventsToBytes(events); } else if (File.class.isAssignableFrom(as)) { return eventsToFile(events, ".xml"); } else if (InputStream.class.isAssignableFrom(as)) { return eventsToInputStream(events); } else if (Reader.class.isAssignableFrom(as)) { return eventsToReader(events); } else if (String.class.isAssignableFrom(as)) { return eventsToString(events); } else { throw new IllegalArgumentException( "Unrecognized class for export: "+as.getName() ); } } public static byte[] eventsToBytes(List<XMLEvent> events) {
public static Object eventsToObject(List<XMLEvent> events, Class<?> as) { if (events == null || events.size() == 0) { return null; } if (byte[].class.isAssignableFrom(as)) { return eventsToBytes(events); } else if (File.class.isAssignableFrom(as)) { return eventsToFile(events, ".xml"); } else if (InputStream.class.isAssignableFrom(as)) { return eventsToInputStream(events); } else if (Reader.class.isAssignableFrom(as)) { return eventsToReader(events); } else if (String.class.isAssignableFrom(as)) { return eventsToString(events); } else { throw new IllegalArgumentException( "Unrecognized class for export: "+as.getName() ); } } public static byte[] eventsToBytes(List<XMLEvent> events) {