arquivo.Arquivo.java Source code

Java tutorial

Introduction

Here is the source code for arquivo.Arquivo.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To changeand open the template in the editor.
 */
package arquivo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.XMLOutputter;

/**
 *
 * @author pedrojorge
 */
public class Arquivo {
    protected File arquivo;

    public Arquivo(File arquivo) {
        this.arquivo = arquivo;
    }

    public List busca(String nome, boolean completa, String nomeE) {
        SAXBuilder builder = new SAXBuilder();
        List<Element> retorna = new LinkedList<>();
        try {
            Document doc = builder.build(arquivo);
            Element root = (Element) doc.getRootElement();

            retorna = this.buscaInterna(root, completa, nome, nomeE);
        } catch (Exception e) {

        }
        return retorna;
    }

    protected List buscaInterna(Element root, boolean completa, String nome, String nomeE) {
        List<Element> retorna = new LinkedList<>();
        List<Element> empregados = root.getChildren(nomeE);
        for (Element empregado : empregados) {
            if (completa) {
                if (empregado.getAttributeValue("nome").equals(nome))
                    retorna.add(empregado);
            } else {
                if (empregado.getAttributeValue("nome").contains(nome))
                    retorna.add(empregado);
            }
        }
        return retorna;
    }

    public String remove(String nome, String nomeE) {
        SAXBuilder builder = new SAXBuilder();
        List<Element> retorna = new LinkedList<>();

        try {
            Document doc = builder.build(arquivo);
            Element root = (Element) doc.getRootElement();

            List<Element> removido = buscaInterna(root, true, nome, nomeE);
            root.removeContent(removido.get(0));

            XMLOutputter xout = new XMLOutputter();
            OutputStream out = new FileOutputStream(arquivo);
            xout.output(doc, out);
            return "Documento alterado com sucesso!";
        } catch (Exception e) {
            e.printStackTrace();
        }

        return "n foi possivel remover " + nome;
    }
}