/*
* file: MpxjConvert.java
* author: Jon Iles
* copyright: (c) Packwood Software 2002-2005
* date: 07/12/2005
*/
/*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This library 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/
package net.sf.mpxj.sample;
import net.sf.mpxj.ProjectFile;
import net.sf.mpxj.reader.ProjectReader;
import net.sf.mpxj.reader.ProjectReaderUtility;
import net.sf.mpxj.writer.ProjectWriter;
import net.sf.mpxj.writer.ProjectWriterUtility;
/**
* This is a general utility designed to convert from one project file format
* to another. It will typically be used as a command line utility. The
* user passes in two arguments, the input file name and the output file name.
* The type of each file is determined by its extension.
*/
public final class MpxjConvert
{
/**
* Main method.
*
* @param args array of command line arguments
*/
public static void main(String[] args)
{
try
{
if (args.length != 2)
{
System.out.println("Usage: MpxjConvert <input file name> <output file name>");
}
else
{
MpxjConvert convert = new MpxjConvert();
convert.process(args[0], args[1]);
}
System.exit(0);
}
catch (Exception ex)
{
ex.printStackTrace(System.out);
System.exit(1);
}
}
/**
* Convert one project file format to another.
*
* @param inputFile input file
* @param outputFile output file
* @throws Exception
*/
public void process(String inputFile, String outputFile) throws Exception
{
System.out.println("Reading input file started.");
long start = System.currentTimeMillis();
ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile);
ProjectFile projectFile = reader.read(inputFile);
long elapsed = System.currentTimeMillis() - start;
System.out.println("Reading input file completed in " + elapsed + "ms.");
System.out.println("Writing output file started.");
start = System.currentTimeMillis();
ProjectWriter writer = ProjectWriterUtility.getProjectWriter(outputFile);
writer.write(projectFile, outputFile);
elapsed = System.currentTimeMillis() - start;
System.out.println("Writing output completed in " + elapsed + "ms.");
}
}