org.nuiton.eugene
Class GeneratorTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.MatchingTask
              extended by org.nuiton.eugene.GeneratorTask
All Implemented Interfaces:
Cloneable, org.apache.tools.ant.types.selectors.SelectorContainer

public class GeneratorTask
extends org.apache.tools.ant.taskdefs.MatchingTask

Ant generator Task. Exemple d'utilisation dans ant :

 < -- Define eugene task (classpath must contains templates) -->
 <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
      classpath="${compile.classpath}" />
      
 <target name="generate" description="generate">
      <generator srcdir="${modelDir}" destdir="${targetgen}"
          resolver="org.nuiton.exemple.ResourceResolver"
          templates="org.nuiton.example.JavaBeanGenerator"
          properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" />
 </target>
 
Created: 14 janv. 2004

Version:
$Revision: 906 $ Mise a jour: $Date: 2010-05-16 14:19:55 +0200 (dim., 16 mai 2010) $ par :
Author:
Benjamin Poussin Copyright Code Lutin

Nested Class Summary
protected  class GeneratorTask.XmiVersionHandler
          Sax handler to find xmi version into xmi document.
 
Field Summary
protected  String buildDirectory
          Generation directory (default to 'build')
protected  File destDir
          Destination directory.
protected  String encoding
          Encoding.
protected  boolean overwrite
          Overwrite already existing generated files.
protected  Properties properties
          Additional generator properties.
protected  String resolver
          URI Resolver.
protected  File srcDir
          Model directory.
protected  File srcFile
          Single model file.
protected  String templates
          Template used in generation (comma separated).
protected  String transformations
          Transformation to do on model (comma separated).
 
Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask
fileset
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
GeneratorTask()
           
 
Method Summary
protected  List<File> doConvertFiles(List<File> srcFiles, File destDir)
          Convert srcFiles and return only eugene models files.
protected  void doExecute(File srcFile, File destDir, Template<Model>[] generators)
          Equivalent to doExecute(new File[] { srcFile }, destDir, generators).
protected  void doExecute(List<File> srcFiles, File destDir, Template<Model>[] generators)
          Execute generation on specified files.
 void execute()
           
protected  void executeXSLT(File xmiFile, File modelFile, String stylesheet)
          Do XSLT transformation on given file using specific stylesheet.
protected  String getXmiVersion(File xmiFile)
          Try to find xmi version on a file.
protected  boolean isArchiveFile(File file)
          Test if file is an archive.
protected  boolean isModelFile(File file)
          Test if file is a model
protected  boolean isXmiFile(File file)
          Test if file is a xmi.
 void setBuilddirectory(String buildDirectory)
          Set build directory.
 void setDestdir(File destDir)
          Set destination directory
 void setEncoding(String encoding)
          Set encoding.
 void setOverwrite(boolean overwrite)
          Set overwrite value.
 void setProperties(String properties)
          Permet d'ajouter des properties. exemple: toto=1,package=org.nuiton
 void setResolver(String resolver)
          Set URI resolver (FQN).
 void setSrcdir(File srcDir)
          Set source directory.
 void setSrcfile(File srcFile)
          Set source file.
 void setTemplates(String templates)
          Set templates (fully-qualified-name) to use (comma-separated).
 void setTransformations(String transformations)
          Transformation to do.
 
Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems
 
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

templates

protected String templates
Template used in generation (comma separated).


srcDir

protected File srcDir
Model directory.


srcFile

protected File srcFile
Single model file.


destDir

protected File destDir
Destination directory.


transformations

protected String transformations
Transformation to do on model (comma separated). Values are :


resolver

protected String resolver
URI Resolver.


properties

protected Properties properties
Additional generator properties. Values are :


overwrite

protected boolean overwrite
Overwrite already existing generated files.


encoding

protected String encoding
Encoding. Default to UTF-8.


buildDirectory

protected String buildDirectory
Generation directory (default to 'build')

Constructor Detail

GeneratorTask

public GeneratorTask()
Method Detail

setTemplates

public void setTemplates(String templates)
Set templates (fully-qualified-name) to use (comma-separated).

Parameters:
templates - template to use.

setTransformations

public void setTransformations(String transformations)
Transformation to do. Values are :

Parameters:
transformations - transformations

setProperties

public void setProperties(String properties)
Permet d'ajouter des properties. exemple: toto=1,package=org.nuiton

Parameters:
properties - properties

setOverwrite

public void setOverwrite(boolean overwrite)
Set overwrite value.

Parameters:
overwrite - overwrite value

setEncoding

public void setEncoding(String encoding)
Set encoding.

Parameters:
encoding - encoding

setSrcdir

public void setSrcdir(File srcDir)
Set source directory.

Parameters:
srcDir - source directory

setSrcfile

public void setSrcfile(File srcFile)
Set source file.

Parameters:
srcFile - source file

setDestdir

public void setDestdir(File destDir)
Set destination directory

Parameters:
destDir - destination directory

setBuilddirectory

public void setBuilddirectory(String buildDirectory)
Set build directory.

Parameters:
buildDirectory - build directory

setResolver

public void setResolver(String resolver)
Set URI resolver (FQN).

Parameters:
resolver - uri resolver

execute

public void execute()
             throws org.apache.tools.ant.BuildException
Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException

doExecute

protected void doExecute(File srcFile,
                         File destDir,
                         Template<Model>[] generators)
                  throws org.apache.tools.ant.BuildException
Equivalent to doExecute(new File[] { srcFile }, destDir, generators).

Parameters:
srcFile - file to apply generator to
destDir - destination directory
generators - generators to apply
Throws:
org.apache.tools.ant.BuildException - if can't generate

doExecute

protected void doExecute(List<File> srcFiles,
                         File destDir,
                         Template<Model>[] generators)
                  throws org.apache.tools.ant.BuildException
Execute generation on specified files.

Parameters:
srcFiles - files to apply generator to
destDir - destination directory
generators - generators to apply
Throws:
org.apache.tools.ant.BuildException - if can't generate
org.apache.tools.ant.BuildException - if io errors while generation

doConvertFiles

protected List<File> doConvertFiles(List<File> srcFiles,
                                    File destDir)
Convert srcFiles and return only eugene models files. Do following convertions : - unzip archive (zipped files) - xslt transformation (xmi files) - do nothing on model files

Parameters:
srcFiles -
destDir -
Returns:
model file list

isArchiveFile

protected boolean isArchiveFile(File file)
Test if file is an archive.

Parameters:
file - file to test
Returns:
test result

isXmiFile

protected boolean isXmiFile(File file)
Test if file is a xmi.

Parameters:
file - file to test
Returns:
test result

isModelFile

protected boolean isModelFile(File file)
Test if file is a model

Parameters:
file - file to test
Returns:
test result

getXmiVersion

protected String getXmiVersion(File xmiFile)
Try to find xmi version on a file.

Parameters:
xmiFile - file to inspect
Returns:
version or null if version can't have been found

executeXSLT

protected void executeXSLT(File xmiFile,
                           File modelFile,
                           String stylesheet)
Do XSLT transformation on given file using specific stylesheet.

Parameters:
xmiFile - xmi file to transform
modelFile - result of transformation
stylesheet - stylesheet to use


Copyright © 2006-2010 CodeLutin. All Rights Reserved.