private void tagEnd(String tag) throws XMLStreamException { if (!check(reader.isEndElement(), "Expected end element, got %s for %s (%s)", reader.getEventType(), tag, reader.getLocalName())) { logger.debug("oops, invalid end {}", tag); } next(); }
private void tagEnd(String tag) throws XMLStreamException { if (!check(reader.isEndElement(), "Expected end element, got %s for %s (%s)", reader.getEventType(), tag, reader.getLocalName())) { logger.debug("oops, invalid end {}", tag); } next(); }
private void parseDirective(CapReqBuilder capReqBuilder) throws XMLStreamException { String attributeName = reader.getAttributeValue(null, ATTR_NAME); String attributeValue = reader.getAttributeValue(null, ATTR_VALUE); String attributeType = reader.getAttributeValue(null, ATTR_TYPE); check(attributeType == null, "Expected a directive to have no type: %s:%s=%s", attributeName, attributeType, attributeValue); capReqBuilder.addDirective(attributeName, attributeValue); } }
private void parseDirective(CapReqBuilder capReqBuilder) throws XMLStreamException { String attributeName = reader.getAttributeValue(null, ATTR_NAME); String attributeValue = reader.getAttributeValue(null, ATTR_VALUE); String attributeType = reader.getAttributeValue(null, ATTR_TYPE); check(attributeType == null, "Expected a directive to have no type: %s:%s=%s", attributeName, attributeType, attributeValue); capReqBuilder.addDirective(attributeName, attributeValue); } }
public List<Resource> parse() throws Exception { if (!check(reader.hasNext(), "No content found")) return null; if (!check(reader.isStartElement(), "Expected a start element at the root, is %s", reader.getEventType())) return null; if (!check(TAG_REPOSITORY.equals(localName), "Invalid tag name of top element, expected %s, got %s", TAG_REPOSITORY, localName)) return null; check(NS_URI.equals(nsUri), "Incorrect namespace. Expected %s, got %s", NS_URI, nsUri); parseResource(resources); else { check(false, "Unexpected element %s", localName); next(); check(reader.isEndElement() && reader.getLocalName() .equals(TAG_REPOSITORY), "Expected to be at the end but are on %s", reader.getLocalName()); return getResources();
public List<Resource> parse() throws Exception { if (!check(reader.hasNext(), "No content found")) return null; if (!check(reader.isStartElement(), "Expected a start element at the root, is %s", reader.getEventType())) return null; if (!check(TAG_REPOSITORY.equals(localName), "Invalid tag name of top element, expected %s, got %s", TAG_REPOSITORY, localName)) return null; check(NS_URI.equals(nsUri), "Incorrect namespace. Expected %s, got %s", NS_URI, nsUri); parseResource(resources); else { check(false, "Unexpected element %s", localName); next(); check(reader.isEndElement() && reader.getLocalName() .equals(TAG_REPOSITORY), "Expected to be at the end but are on %s", reader.getLocalName()); return getResources();
private void parseReferral() throws Exception { if (--depth < 0) error("Too deep, traversed %s", traversed); else { String depthString = reader.getAttributeValue(null, ATTR_REFERRAL_DEPTH); String urlString = reader.getAttributeValue(null, ATTR_REFERRAL_URL); if (check(urlString != null, "Expected URL in referral")) { // TODO resolve url URI url = this.url.resolve(urlString); traversed.add(url); int depth = 100; if (depthString != null) { depth = Integer.parseInt(depthString); } InputStream in = url.toURL() .openStream(); try (XMLResourceParser referralParser = new XMLResourceParser(in, urlString, depth, traversed, url)) { referralParser.parse(); resources.addAll(referralParser.resources); } } } next(); tagEnd(TAG_REFERRAL); }
private void parseCapabilityOrRequirement(ResourceBuilder resourceBuilder) throws Exception { String name = reader.getLocalName(); check(TAG_REQUIREMENT.equals(name) || TAG_CAPABILITY.equals(name), "Expected <%s> or <%s> tag, got <%s>", TAG_REQUIREMENT, TAG_CAPABILITY, name); String namespace = reader.getAttributeValue(null, ATTR_NAMESPACE); CapReqBuilder capReqBuilder = new CapReqBuilder(namespace); next(); while (reader.isStartElement()) { parseAttributesOrDirectives(capReqBuilder); } if (TAG_REQUIREMENT.equals(name)) { resourceBuilder.addRequirement(capReqBuilder); } else { resourceBuilder.addCapability(capReqBuilder); } tagEnd(name); }
private void parseReferral() throws Exception { if (--depth < 0) error("Too deep, traversed %s", traversed); else { String depthString = reader.getAttributeValue(null, ATTR_REFERRAL_DEPTH); String urlString = reader.getAttributeValue(null, ATTR_REFERRAL_URL); if (check(urlString != null, "Expected URL in referral")) { // TODO resolve url URI url = this.url.resolve(urlString); traversed.add(url); int depth = 100; if (depthString != null) { depth = Integer.parseInt(depthString); } InputStream in = url.toURL() .openStream(); try (XMLResourceParser referralParser = new XMLResourceParser(in, urlString, depth, traversed, url)) { referralParser.parse(); resources.addAll(referralParser.resources); } } } next(); tagEnd(TAG_REFERRAL); }
private void parseCapabilityOrRequirement(ResourceBuilder resourceBuilder) throws Exception { String name = reader.getLocalName(); check(TAG_REQUIREMENT.equals(name) || TAG_CAPABILITY.equals(name), "Expected <%s> or <%s> tag, got <%s>", TAG_REQUIREMENT, TAG_CAPABILITY, name); String namespace = reader.getAttributeValue(null, ATTR_NAMESPACE); CapReqBuilder capReqBuilder = new CapReqBuilder(namespace); next(); while (reader.isStartElement()) { parseAttributesOrDirectives(capReqBuilder); } if (TAG_REQUIREMENT.equals(name)) { resourceBuilder.addRequirement(capReqBuilder); } else { resourceBuilder.addCapability(capReqBuilder); } tagEnd(name); }
private void parseAttributesOrDirectives(CapReqBuilder capReqBuilder) throws Exception { String name = reader.getLocalName(); switch (name) { case TAG_ATTRIBUTE : parseAttribute(capReqBuilder); break; case TAG_DIRECTIVE : parseDirective(capReqBuilder); break; default : check(false, "Invalid tag, expected either <%s> or <%s>, got <%s>", TAG_ATTRIBUTE, TAG_DIRECTIVE); } next(); tagEnd(name); }
private void parseAttributesOrDirectives(CapReqBuilder capReqBuilder) throws Exception { String name = reader.getLocalName(); switch (name) { case TAG_ATTRIBUTE : parseAttribute(capReqBuilder); break; case TAG_DIRECTIVE : parseDirective(capReqBuilder); break; default : check(false, "Invalid tag, expected either <%s> or <%s>, got <%s>", TAG_ATTRIBUTE, TAG_DIRECTIVE); } next(); tagEnd(name); }