org.olanto.myterm.export.JdomUtilities.java Source code

Java tutorial

Introduction

Here is the source code for org.olanto.myterm.export.JdomUtilities.java

Source

/**
 * ********
 * Copyright  2013-2014 Olanto Foundation Geneva
 *
 * This file is part of myTERM.
 *
 * myCAT is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, either version 3 of the License, or (at your option) any
 * later version.
 *
 * myCAT is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with myCAT. If not, see <http://www.gnu.org/licenses/>.
 *
 *********
 */
package org.olanto.myterm.export;

import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.Namespace;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/**
 * Utilitaires autour de JDom
 *
 * @author jg
 */
public class JdomUtilities {

    /**
     * sparation dans les fichiers en sortie de la BD
     */
    public static final String SEPARATOR = "[|]";
    private static Element racine;
    private static Pattern p = Pattern.compile(SEPARATOR);

    /**
     * initialise la racine du XML
     *
     * @param element de la racine
     * @param nameSpace de la racine
     * @param url du nameSpace
     */
    public static void initRoot(String element) {

        Element elementAjoute = new Element(element);
        racine = elementAjoute;

        // dtd dependent

        racine.setAttribute("type", "TBX-Basic");
        racine.setAttribute("lang", "en-US", Namespace.XML_NAMESPACE);
    }

    /**
     * cre un lment 
     *
     * @param name nom de l'lment
     * @return lment
     */
    public static Element makeElem(String name) {
        return new Element(name);
    }

    /**
    * cre un lment prfix par le name space
    *
    * @param name nom de l'lment
    * @return lment
    */
    public static Element makeElem(String name, Namespace nameSpace) {
        return new Element(name, nameSpace);
    }

    /**
     * cre un lment prfix par le name space avec un texte
     *
     * @param name nom de l'lment
     * @param text texte de l'lment
     * @return lment
     */
    public static Element makeElem(String name, String text, Namespace nameSpace) {
        return new Element(name, nameSpace).setText(text);
    }

    /**
    * cre un lment avec un texte
    *
    * @param name nom de l'lment
    * @param text texte de l'lment
    * @return lment
    */
    public static Element makeElem(String name, String text) {
        return new Element(name).setText(text);
    }

    /**
     * @return the racine
     */
    public static Element getRacine() {
        return racine;
    }

    /**
     * affiche le texte du xml dans la console
     *
     * @param document xml
     */
    static void showXML(Document document) {
        try {
            //On utilise ici un affichage classique avec getPrettyFormat()
            XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
            sortie.output(document, System.out);
        } catch (java.io.IOException e) {
        }
    }

    /**
     * copie le texte du xml dans un fichier
     *
     * @param document xml
     * @param namefile nom du fichier
     */
    static void saveXML(Document document, String namefile) {
        try {
            msg("export file in: " + namefile);
            XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
            sortie.output(document, new FileOutputStream(namefile));
        } catch (java.io.IOException e) {
        }
    }

    /**
     * coupe une ligne avec le sparateur
     *
     * @param line  couper
     * @return les champs de la ligne
     */
    public static String[] cutLine(String line) {
        return p.split(line);
    }

    /**
     * affiche le message dans la console
     *
     * @param line  afficher
     */
    public static void msg(String line) {

        if (ExportTBXFromDB.logArea != null) {
            ExportTBXFromDB.logArea.append(line + "\n");
        } else {
            System.out.println(line);
        }
    }

    public static String getCurrentDate() {
        DateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        Date dateobj = new Date();
        return df.format(dateobj);
    }

    public static String getFormattedDate(Date d) {
        DateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        return df.format(d).replace(" ", "T");
    }

}