Subversion Repositories bacoAlunos

Rev

Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain.utils;

import java.io.*;
import java.text.MessageFormat;
import java.util.List;
import java.util.ArrayList;

/**
 * User: Jorge Machado machadofisher@gmail.com
 * Date: 24/Mai/2007
 * Time: 21:46:31
 * To change this template use File | Settings | File Templates.
 */

public class BuildMappings
{

    public static void writeFileFromString(1.5.0/docs/api/java/lang/String.html">String str, 1.5.0/docs/api/java/lang/String.html">String location) throws 1.5.0/docs/api/java/io/IOException.html">IOException {
        try{
            1.5.0/docs/api/java/io/FileWriter.html">FileWriter fw = new 1.5.0/docs/api/java/io/FileWriter.html">FileWriter(location);
            fw.write(str);
            fw.close();
        }catch(1.5.0/docs/api/java/io/IOException.html">IOException e)
        {
            throw e;
        }
    }
    public static 1.5.0/docs/api/java/lang/String.html">String getNoComentData(1.5.0/docs/api/java/lang/String.html">String fileName, 1.5.0/docs/api/java/lang/String.html">String encoding) throws 1.5.0/docs/api/java/lang/Exception.html">Exception
    {
        1.5.0/docs/api/java/lang/StringBuffer.html">StringBuffer contentBuffer = new 1.5.0/docs/api/java/lang/StringBuffer.html">StringBuffer();
        try{
            // Read in template
            1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader reader = new 1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader(new 1.5.0/docs/api/java/io/InputStreamReader.html">InputStreamReader(new 1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream(fileName),encoding));
            //BufferedReader reader = new BufferedReader(new FileReader(fileName));
            boolean more = true;

            while (more)
            {
                1.5.0/docs/api/java/lang/String.html">String line = reader.readLine();

                if (line==null)
                {
                    more = false;
                }
                else if(!line.startsWith("#"))
                {
                    // Add non-comment lines to the content
                    contentBuffer.append(line);
                    contentBuffer.append("\n");
                }
            }
        }
        catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
        {
            throw new 1.5.0/docs/api/java/lang/Exception.html">Exception("getNoCommentData",e);
        }
        return contentBuffer.toString();
    }

    /**
     *
     * @param args [src.dir; hibernateCfgXml; build.dir]
     * @throws Exception
     */

    public static void main(1.5.0/docs/api/java/lang/String.html">String[]args) throws 1.5.0/docs/api/java/lang/Exception.html">Exception
    {

        1.5.0/docs/api/java/lang/String.html">String mappingXml = "";

        1.5.0/docs/api/java/lang/String.html">String buildDir = args[0].replace('/',1.5.0/docs/api/java/io/File.html">File.separatorChar);
        1.5.0/docs/api/java/lang/String.html">String hibernateCfgXml = args[1].replace('/',1.5.0/docs/api/java/io/File.html">File.separatorChar);
        1.5.0/docs/api/java/lang/String.html">String packageDir = args[2];

        1.5.0/docs/api/java/lang/String.html">String encoding = "ISO-8859-1";

        if(args.length > 3)
            encoding = args[3];

        mappingXml = buildDir(buildDir,packageDir);

        5+0%2Fdocs%2Fapi+List">List text = new 1.5.0/docs/api/java/util/ArrayList.html">ArrayList();
        text.add(mappingXml);

        1.5.0/docs/api/java/lang/String.html">String fileStr = 1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(getNoComentData(hibernateCfgXml,encoding),text.toArray());
        writeFileFromString(fileStr,buildDir + "/" + new 1.5.0/docs/api/java/io/File.html">File(hibernateCfgXml).getName());
    }

    public static 1.5.0/docs/api/java/lang/String.html">String buildDir(1.5.0/docs/api/java/lang/String.html">String path, 1.5.0/docs/api/java/lang/String.html">String packageDirDest)
    {
        1.5.0/docs/api/java/lang/String.html">String mappingXml = "";
        1.5.0/docs/api/java/io/File.html">File dir = new 1.5.0/docs/api/java/io/File.html">File(path);
        1.5.0/docs/api/java/io/File.html">File[] files = dir.listFiles();
        for(int i = 0; i< files.length; i++)
        {
            1.5.0/docs/api/java/io/File.html">File file = files[i];
            if(file.isDirectory())
                mappingXml += buildDir(path + "/" + file.getName(), packageDirDest  + "/" + file.getName() + "/");
            else
            {
                if(file.getName().endsWith("hbm.xml"))
                {
                    mappingXml = mappingXml.concat("\t\t<mapping resource=\"" + packageDirDest + files[i].getName() + "\"/>\n");
                }
            }
        }
        return mappingXml;
    }
}