/** * {@inheritDoc} */ public CalendarParser createParser() { return new HCalendarParser(); }
private void buildEvent(Element element, ContentHandler handler) throws ParserException { if (LOG.isDebugEnabled()) LOG.debug("Building event"); handler.startComponent(Component.VEVENT); buildProperty(findElement(XPATH_DTSTART, element), Property.DTSTART, handler); buildProperty(findElement(XPATH_DTEND, element), Property.DTEND, handler); buildProperty(findElement(XPATH_DURATION, element), Property.DURATION, handler); buildProperty(findElement(XPATH_SUMMARY, element), Property.SUMMARY, handler); buildProperty(findElement(XPATH_UID, element), Property.UID, handler); buildProperty(findElement(XPATH_DTSTAMP, element), Property.DTSTAMP, handler); List<Element> categories = findElements(XPATH_CATEGORY, element); for (Element category : categories) { buildProperty(category, Property.CATEGORIES, handler); } buildProperty(findElement(XPATH_LOCATION, element), Property.LOCATION, handler); buildProperty(findElement(XPATH_URL, element), Property.URL, handler); buildProperty(findElement(XPATH_DESCRIPTION, element), Property.DESCRIPTION, handler); buildProperty(findElement(XPATH_LAST_MODIFIED, element), Property.LAST_MODIFIED, handler); buildProperty(findElement(XPATH_STATUS, element), Property.STATUS, handler); buildProperty(findElement(XPATH_CLASS, element), Property.CLASS, handler); List<Element> attendees = findElements(XPATH_ATTENDEE, element); for (Element attendee : attendees) { buildProperty(attendee, Property.ATTENDEE, handler); } buildProperty(findElement(XPATH_CONTACT, element), Property.CONTACT, handler); buildProperty(findElement(XPATH_ORGANIZER, element), Property.ORGANIZER, handler); buildProperty(findElement(XPATH_SEQUENCE, element), Property.SEQUENCE, handler); buildProperty(findElement(XPATH_ATTACH, element), Property.ATTACH, handler); handler.endComponent(Component.VEVENT); }
private static Element findElement(XPathExpression expr, Object context) throws ParserException { Node n = findNode(expr, context); if ((!(n instanceof Element))) return null; return (Element) n; }
String className = className(propName); String elementName = element.getLocalName().toLowerCase(); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from title attribute"); } else if (isHeaderElement(elementName)) { LOG.debug("Setting value '" + value + "' from title attribute"); } else { value = getTextContent(element); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from text content"); } else if (elementName.equals("a") && isUrlProperty(propName)) { value = element.getAttribute("href"); if (StringUtils.isBlank(value)) LOG.debug("Setting value '" + value + "' from href attribute"); } else if (elementName.equals("img")) { if (isUrlProperty(propName)) { value = element.getAttribute("src"); if (StringUtils.isBlank(value)) value = getTextContent(element); if (!StringUtils.isBlank(value)) { if (LOG.isDebugEnabled()) if (isDateProperty(propName)) { try {
Element method = findElement(XPATH_METHOD, d); if (method != null) { buildProperty(method, Property.METHOD, handler); List<Element> vevents = findElements(XPATH_VEVENTS, d); for (Element vevent : vevents) { buildEvent(vevent, handler);
private static List<Element> findElements(XPathExpression expr, Object context) throws ParserException { NodeList nodes = findNodes(expr, context); List<Element> elements = new ArrayList<Element>(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (n instanceof Element) elements.add((Element) n); } return elements; }
private void parse(InputSource in, ContentHandler handler) throws IOException, ParserException { try { Document d = BUILDER_FACTORY.newDocumentBuilder().parse(in); buildCalendar(d, handler); } catch (ParserConfigurationException e) { throw new CalendarException(e); } catch (SAXException e) { if (e instanceof SAXParseException) { SAXParseException pe = (SAXParseException) e; throw new ParserException("Could not parse XML", pe.getLineNumber(), e); } throw new ParserException(e.getMessage(), -1, e); } }
String className = className(propName); String elementName = element.getLocalName().toLowerCase(); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from title attribute"); } else if (isHeaderElement(elementName)) { LOG.debug("Setting value '" + value + "' from title attribute"); } else { value = getTextContent(element); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from text content"); } else if (elementName.equals("a") && isUrlProperty(propName)) { value = element.getAttribute("href"); if (StringUtils.isBlank(value)) LOG.debug("Setting value '" + value + "' from href attribute"); } else if (elementName.equals("img")) { if (isUrlProperty(propName)) { value = element.getAttribute("src"); if (StringUtils.isBlank(value)) value = getTextContent(element); if (!StringUtils.isBlank(value)) { if (LOG.isDebugEnabled()) if (isDateProperty(propName)) { try {
Element method = findElement(XPATH_METHOD, d); if (method != null) { buildProperty(method, Property.METHOD, handler); List vevents = findElements(XPATH_VEVENTS, d); for (Iterator i = vevents.iterator(); i.hasNext();) { Element vevent = (Element) i.next(); buildEvent(vevent, handler);
private static List<Element> findElements(XPathExpression expr, Object context) throws ParserException { NodeList nodes = findNodes(expr, context); List<Element> elements = new ArrayList<Element>(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (n instanceof Element) elements.add((Element) n); } return elements; }
private void parse(InputSource in, ContentHandler handler) throws IOException, ParserException { try { Document d = BUILDER_FACTORY.newDocumentBuilder().parse(in); buildCalendar(d, handler); } catch (ParserConfigurationException e) { throw new CalendarException(e); } catch (SAXException e) { if (e instanceof SAXParseException) { SAXParseException pe = (SAXParseException) e; throw new ParserException("Could not parse XML", pe.getLineNumber(), e); } throw new ParserException(e.getMessage(), -1, e); } }
String className = className(propName); String elementName = element.getLocalName().toLowerCase(); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from title attribute"); } else if (isHeaderElement(elementName)) { LOG.debug("Setting value '" + value + "' from title attribute"); } else { value = getTextContent(element); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from text content"); } else if (elementName.equals("a") && isUrlProperty(propName)) { value = element.getAttribute("href"); if (StringUtils.isBlank(value)) LOG.debug("Setting value '" + value + "' from href attribute"); } else if (elementName.equals("img")) { if (isUrlProperty(propName)) { value = element.getAttribute("src"); if (StringUtils.isBlank(value)) value = getTextContent(element); if (!StringUtils.isBlank(value)) { if (LOG.isDebugEnabled()) if (isDateProperty(propName)) { try {
Element method = findElement(XPATH_METHOD, d); if (method != null) { buildProperty(method, Property.METHOD, handler); List<Element> vevents = findElements(XPATH_VEVENTS, d); for (Element vevent : vevents) { buildEvent(vevent, handler);
private void buildEvent(Element element, ContentHandler handler) throws ParserException { if (LOG.isDebugEnabled()) LOG.debug("Building event"); handler.startComponent(Component.VEVENT); buildProperty(findElement(XPATH_DTSTART, element), Property.DTSTART, handler); buildProperty(findElement(XPATH_DTEND, element), Property.DTEND, handler); buildProperty(findElement(XPATH_DURATION, element), Property.DURATION, handler); buildProperty(findElement(XPATH_SUMMARY, element), Property.SUMMARY, handler); buildProperty(findElement(XPATH_UID, element), Property.UID, handler); buildProperty(findElement(XPATH_DTSTAMP, element), Property.DTSTAMP, handler); List<Element> categories = findElements(XPATH_CATEGORY, element); for (Element category : categories) { buildProperty(category, Property.CATEGORIES, handler); } buildProperty(findElement(XPATH_LOCATION, element), Property.LOCATION, handler); buildProperty(findElement(XPATH_URL, element), Property.URL, handler); buildProperty(findElement(XPATH_DESCRIPTION, element), Property.DESCRIPTION, handler); buildProperty(findElement(XPATH_LAST_MODIFIED, element), Property.LAST_MODIFIED, handler); buildProperty(findElement(XPATH_STATUS, element), Property.STATUS, handler); buildProperty(findElement(XPATH_CLASS, element), Property.CLASS, handler); List<Element> attendees = findElements(XPATH_ATTENDEE, element); for (Element attendee : attendees) { buildProperty(attendee, Property.ATTENDEE, handler); } buildProperty(findElement(XPATH_CONTACT, element), Property.CONTACT, handler); buildProperty(findElement(XPATH_ORGANIZER, element), Property.ORGANIZER, handler); buildProperty(findElement(XPATH_SEQUENCE, element), Property.SEQUENCE, handler); buildProperty(findElement(XPATH_ATTACH, element), Property.ATTACH, handler); handler.endComponent(Component.VEVENT); }
/** * {@inheritDoc} */ public CalendarParser get() { return new HCalendarParser(); }
private static List<Element> findElements(XPathExpression expr, Object context) throws ParserException { NodeList nodes = findNodes(expr, context); List<Element> elements = new ArrayList<Element>(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (n instanceof Element) elements.add((Element) n); } return elements; }
private static Element findElement(XPathExpression expr, Object context) throws ParserException { Node n = findNode(expr, context); if (n == null || (!(n instanceof Element))) return null; return (Element) n; }
private void parse(InputSource in, ContentHandler handler) throws IOException, ParserException { try { Document d = BUILDER_FACTORY.newDocumentBuilder().parse(in); buildCalendar(d, handler); } catch (ParserConfigurationException e) { throw new CalendarException(e); } catch (SAXException e) { if (e instanceof SAXParseException) { SAXParseException pe = (SAXParseException) e; throw new ParserException("Could not parse XML", pe.getLineNumber(), e); } throw new ParserException(e.getMessage(), -1, e); } }
String className = className(propName); String elementName = element.getLocalName().toLowerCase(); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from title attribute"); } else if (isHeaderElement(elementName)) { LOG.debug("Setting value '" + value + "' from title attribute"); } else { value = getTextContent(element); if (LOG.isDebugEnabled()) LOG.debug("Setting value '" + value + "' from text content"); } else if (elementName.equals("a") && isUrlProperty(propName)) { value = element.getAttribute("href"); if (StringUtils.isBlank(value)) LOG.debug("Setting value '" + value + "' from href attribute"); } else if (elementName.equals("img")) { if (isUrlProperty(propName)) { value = element.getAttribute("src"); if (StringUtils.isBlank(value)) value = getTextContent(element); if (!StringUtils.isBlank(value)) { if (LOG.isDebugEnabled()) if (isDateProperty(propName)) { try {
Element method = findElement(XPATH_METHOD, d); if (method != null) { buildProperty(method, Property.METHOD, handler); List<Element> vevents = findElements(XPATH_VEVENTS, d); for (Element vevent : vevents) { buildEvent(vevent, handler);