@Override public void startElement(final StartElementEvent event) { final TreeElement treeElement = new TreeElement(event, this.stack.peek()); this.stack.push(treeElement); this.getDelegate().startElement(treeElement); }
@Override public void characters(final String characters) { if (this.stack.isEmpty()) { throw new IllegalStateException("Got characters " + characters + " but stack is empty"); } this.stack.peek().addCharacterData(characters); }
public CallbackContentHandler addCharacterDataListener(final String elementName, final Consumer<String> listener) { addElementListener(elementName, startElement -> {}, endElement -> listener.accept(endElement.getCharacterData())); return this; } }
public TreeContentHandler build() if (startElement.isRootElement()) if (!elem.isRootElement()) final Attribute doctypeAttribute = elem.getAttributeValueByName(DOCTYPE_ATTRIBUTE_NAME); if (doctypeAttribute == null) + DOCTYPE_ATTRIBUTE_NAME + "' at " + elem.getLocation());
public CallbackContentHandler addElementListener(final String elementName, final Consumer<TreeElement> startElementConsumer, final Consumer<TreeElement> endElementConsumer) { if (this.startElementListeners.containsKey(elementName)) { throw new IllegalArgumentException( "Listener already registered for start element " + elementName); } this.startElementListeners.put(elementName, startElement -> { if (endElementConsumer != null) { startElement.setEndElementListener(endElementConsumer); } startElementConsumer.accept(startElement); }); return this; }
@Override public void endElement(final EndElementEvent event) { if (this.stack.isEmpty()) { throw new IllegalStateException("Got closing event " + event + " but stack is empty"); } final TreeElement topElement = this.stack.peek(); if (!topElement.getElement().getName().equals(event.getName())) { throw new IllegalStateException("Top stack element is " + topElement.getElement() + " but got end event for " + event); } final TreeElement closedElement = this.stack.pop(); this.getDelegate().endElement(closedElement); }
private void handleStartElement(final TreeElement elem) { this.listener.beginSpecificationItem(); this.locationBuilder = Location.builder() // .path(this.file.getPath()) // .line(elem.getLocation().getLine()); this.idBuilder = new SpecificationItemId.Builder() // .artifactType(this.defaultDoctype); this.handler.pushDelegate(new SingleSpecObjectsHandlerBuilder(this.listener, this.idBuilder, this.locationBuilder).build()); }
@Override public void endElement(final TreeElement closedElement) { closedElement.invokeEndElementListeners(); }
public TreeContentHandler build() if (startElement.isRootElement()) if (!elem.isRootElement()) final Attribute doctypeAttribute = elem.getAttributeValueByName(DOCTYPE_ATTRIBUTE_NAME); if (doctypeAttribute == null) + DOCTYPE_ATTRIBUTE_NAME + "' at " + elem.getLocation());
public CallbackContentHandler addElementListener(final String elementName, final Consumer<TreeElement> startElementConsumer, final Consumer<TreeElement> endElementConsumer) { if (this.startElementListeners.containsKey(elementName)) { throw new IllegalArgumentException( "Listener already registered for start element " + elementName); } this.startElementListeners.put(elementName, startElement -> { if (endElementConsumer != null) { startElement.setEndElementListener(endElementConsumer); } startElementConsumer.accept(startElement); }); return this; }
@Override public void endElement(final EndElementEvent event) { if (this.stack.isEmpty()) { throw new IllegalStateException("Got closing event " + event + " but stack is empty"); } final TreeElement topElement = this.stack.peek(); if (!topElement.getElement().getName().equals(event.getName())) { throw new IllegalStateException("Top stack element is " + topElement.getElement() + " but got end event for " + event); } final TreeElement closedElement = this.stack.pop(); this.getDelegate().endElement(closedElement); }
private void handleStartElement(final TreeElement elem) { this.listener.beginSpecificationItem(); this.locationBuilder = Location.builder() // .path(this.file.getPath()) // .line(elem.getLocation().getLine()); this.idBuilder = new SpecificationItemId.Builder() // .artifactType(this.defaultDoctype); this.handler.pushDelegate(new SingleSpecObjectsHandlerBuilder(this.listener, this.idBuilder, this.locationBuilder).build()); }
@Override public void endElement(final TreeElement closedElement) { closedElement.invokeEndElementListeners(); }
public void pushDelegate(final TreeContentHandler delegate) { this.treeParsingController.setDelegate(delegate); this.treeParsingController.getCurrentElement() .setEndElementListener(endElement -> this.treeParsingController.setDelegate(this)); }
@Override public void startElement(final TreeElement treeElement) { LOG.finest(() -> "Start element: " + treeElement); final Consumer<TreeElement> consumer = this.startElementListeners.getOrDefault( treeElement.getElement().getName().getLocalPart(), this.defaultStartElementListener); if (consumer == null) { LOG.warning(() -> "No consumer for event " + treeElement); return; } try { consumer.accept(treeElement); } catch (final Exception e) { throw new ImporterException("Error handling " + treeElement + " with consumer " + consumer + ": " + e.getMessage(), e); } }
@Override public void startElement(final StartElementEvent event) { final TreeElement treeElement = new TreeElement(event, this.stack.peek()); this.stack.push(treeElement); this.getDelegate().startElement(treeElement); }
@Override public void characters(final String characters) { if (this.stack.isEmpty()) { throw new IllegalStateException("Got characters " + characters + " but stack is empty"); } this.stack.peek().addCharacterData(characters); }
public CallbackContentHandler addCharacterDataListener(final String elementName, final Consumer<String> listener) { addElementListener(elementName, startElement -> {}, endElement -> listener.accept(endElement.getCharacterData())); return this; } }
public void pushDelegate(final TreeContentHandler delegate) { this.treeParsingController.setDelegate(delegate); this.treeParsingController.getCurrentElement() .setEndElementListener(endElement -> this.treeParsingController.setDelegate(this)); }
@Override public void startElement(final TreeElement treeElement) { LOG.finest(() -> "Start element: " + treeElement); final Consumer<TreeElement> consumer = this.startElementListeners.getOrDefault( treeElement.getElement().getName().getLocalPart(), this.defaultStartElementListener); if (consumer == null) { LOG.warning(() -> "No consumer for event " + treeElement); return; } try { consumer.accept(treeElement); } catch (final Exception e) { throw new ImporterException("Error handling " + treeElement + " with consumer " + consumer + ": " + e.getMessage(), e); } }