XmlReader.java 3.88 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gerador;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

/**
 *
 * @author felipel
 */
public class XmlReader {

    String portIn = null, portOut = null, pid = null, resolution = null,
            dph = null, dpv = null, dfw = null, dfh = null, version = null,
            pidcc = null, ip = null, tipo = null, input = null;
    int flag = 0;

    public XmlReader(String nomeXml) throws JDOMException, IOException {
        // cria uma nova instância
        SAXBuilder saxBuilder = new SAXBuilder();
        Document document = null;
        // o saxBuilder constroe um documento em árvore usando o SAX
        try {
            document = (Document) saxBuilder.build(nomeXml);

        } catch (Exception e) {

            e.printStackTrace();
        }

        // obtem o elemento raiz da árvore.
        Element root = document.getRootElement();

        this.percorrerArvore(root);
    }

    private void percorrerArvore(Element element) {
        String nome;
        Element child;
        Iterator iterator;
        List children;


        nome = element.getName();

        //System.out.println("Nome: " + nome);

        if (nome.equals("pid")) {
            pid = element.getTextNormalize();
        }

        if (nome.equals("resolucao")) {
            resolution = element.getTextNormalize();
        }

        if (nome.equals("DPH")) {
            dph = element.getTextNormalize();
        }

        if (nome.equals("DPV")) {
            dpv = element.getTextNormalize();
        }

        if (nome.equals("DFW")) {
            dfw = element.getTextNormalize();
        }

        if (nome.equals("DFH")) {
            dfh = element.getTextNormalize();
        }

        if (nome.equals("versao")) {
            version = element.getTextNormalize();
        }

        if (nome.equals("pidCC")) {
            pidcc = element.getTextNormalize();
        }

        if (nome.equals("entrada")) {

            tipo = element.getAttributeValue("tipo");
            if (tipo.equals("MPEG-2 TS") || tipo.equals("RAW")) {
                flag = 1;
            }

            if(tipo.equals("Texto")) {
                input = element.getTextNormalize();
            }
        }

        if (nome.equals("porta") && flag == 1) {
            input = element.getAttributeValue("input");
            portIn = element.getTextNormalize();
        }

        if (nome.equals("saida")) {
            flag = 2;

        }

        if (nome.equals("ip")) {
            ip = element.getTextNormalize();

        }

        if (nome.equals("porta") && flag == 2) {
            portOut = element.getTextNormalize();
        }

        children = element.getChildren();

        // Percorre os filhos deste elemento
        iterator = children.iterator();
        while (iterator.hasNext()) {
            child = (Element) iterator.next();
            // busca os filhos deste elemento

            percorrerArvore(child);

        }
    }

    public String getTipo() {
        return tipo;
    }

    public String getInput() {
        return input;
    }

    public String getPid() {
        return pid;
    }

    public String getresolucao() {
        return resolution;
    }

    public String getDph() {
        return dph;
    }

    public String getDpv() {
        return dpv;
    }

    public String getDfw() {
        return dfw;
    }

    public String getDfh() {
        return dfh;
    }

    public String getVersao() {
        return version;
    }

    public String getPidCC() {
        return pidcc;
    }

    public String getPortaIn() {
        return portIn;
    }

    public String getPortaOut() {
        return portOut;
    }

    public String getIp() {
        return ip;
    }
}