// Copyright FreeHEP, 2005.
package org.freehep.graphics2d.font.encoding;
import java.util.ArrayList;
import java.util.List;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
/**
* @goal generate
* @description Generates lookup tables from 16 bit Unicode text files.
* @phase generate-sources
* @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark Donszelmann</a>
* @version $Id: CharTableConverterMojo.java 8584 2006-08-10 23:06:37Z duns $
*/
public class CharTableConverterMojo extends AbstractMojo {
/**
* The target directory into which to generate the output
*
* @parameter expression="${project.build.directory}/generated-sources/encoding"
* @required
*/
private String targetDirectory;
/**
* The name of the package to be used in the generated lookup classes.
*
* @parameter expression=""
* @required
*/
private String packageName;
/**
* The configuration file directory.
*
* @parameter expression="${basedir}/src/main/encoding"
* @required
*/
private String sourceDirectory;
/**
* The 16 bit Unicode text file.
*
* @parameter expression=""
* @required
*/
private String source;
/**
* The 16 bit Unicode text file.
*
* @parameter expression=""
*/
private String encodingType = null;
/**
* @parameter expression="${project}"
* @required
*/
private MavenProject project;
public void execute() throws MojoExecutionException {
if (!FileUtils.fileExists(targetDirectory)) {
FileUtils.mkdir( targetDirectory );
}
try {
org.freehep.graphics2d.font.encoding.CharTableConverter.main(generateArgumentList());
} catch (Exception e) {
throw new MojoExecutionException( "CHarTableConverter execution failed", e );
}
if (project != null) {
project.addCompileSourceRoot(targetDirectory);
}
}
private String[] generateArgumentList() throws MojoExecutionException {
List argList = new ArrayList();
argList.add(targetDirectory);
argList.add(packageName);
// FIXME, check for source out-of-date
if (!sourceDirectory.endsWith("/")) {
sourceDirectory = sourceDirectory+"/";
}
argList.add(sourceDirectory+source);
if (encodingType != null) argList.add(encodingType);
getLog().debug("CharTableConverter " + argList.toString());
return (String[])argList.toArray(new String[argList.size()]);
}
}