All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hps.integrator.infrastructure.Element Maven / Gradle / Ivy

package com.hps.integrator.infrastructure;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Element {
    private Document doc;
    private org.w3c.dom.Element element;

    public Element(Document doc, org.w3c.dom.Element element) {
        this.doc = doc;
        this.element = element;
    }

    public Element firstChild() {
        return Element.fromNode(doc, this.element.getFirstChild());
    }

    public Element set(String name, String value){
        this.element.setAttribute(name, value);
        return this;
    }

    public Element text(String text){
        this.element.appendChild(doc.createTextNode(text));
        return this;
    }

    public Element append(Element child) {
        this.doc.adoptNode(child.getElement());
        this.element.appendChild(child.getElement());
        return this;/**/
    }

    public String tag() {
        return this.element.getTagName();
    }

    public org.w3c.dom.Element getElement() { return this.element; }

    public static Element fromNode(Document doc, Node node) {
        return new Element(doc, (org.w3c.dom.Element)node);
    }

    public boolean has(String tagName) {
        return this.element.getElementsByTagName(tagName).getLength() > 0;
    }

    public Element get(String tagName) {
        return Element.fromNode(doc, this.element.getElementsByTagName(tagName).item(0));
    }

    public Element[] getAll() {
        NodeList nodes = this.element.getChildNodes();

        Element[] elements = new Element[nodes.getLength()];
        for(int i = 0; i < nodes.getLength(); i++)
            elements[i] = Element.fromNode(this.doc, nodes.item(i));

        return elements;
    }
    public Element[] getAll(String tagName) {
        NodeList nodes = this.element.getElementsByTagName(tagName);

        Element[] elements = new Element[nodes.getLength()];
        for(int i = 0; i < nodes.getLength(); i++)
            elements[i] = Element.fromNode(this.doc, nodes.item(i));

        return elements;
    }

    public String getString(String tagName) {
        org.w3c.dom.Element element = (org.w3c.dom.Element)this.element.getElementsByTagName(tagName).item(0);
        if(element != null) {
            return element.getTextContent();
        } return null;
    }

    public Integer getInt(String tagName) {
        org.w3c.dom.Element element = (org.w3c.dom.Element)this.element.getElementsByTagName(tagName).item(0);
        if(element != null) {
            return Integer.parseInt(element.getTextContent());
        } return null;
    }

    public Date getDate(String tagName) {
        org.w3c.dom.Element element = (org.w3c.dom.Element)this.element.getElementsByTagName(tagName).item(0);
        if(element != null) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS");
                return sdf.parse(element.getTextContent());
            } catch (ParseException e) {
                return null;
            }
        } return null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy