org.nuiton.topia.generator
Class TapestryWebGenerator

java.lang.Object
  extended by org.nuiton.eugene.Generator
      extended by org.nuiton.eugene.ChildGenerator
          extended by org.nuiton.eugene.StateModelGenerator
              extended by org.nuiton.topia.generator.TapestryWebGenerator

public class TapestryWebGenerator
extends org.nuiton.eugene.StateModelGenerator

Genere la navigation basee sur le framework Tapestry 5 a partir de la representation StateModel

Version:
$Revision: 1558 $ Last update : $Date: 2009-06-11 06:53:44 +0200 (jeu., 11 juin 2009) $ By : $Author: tchemit $
Author:
chatellier
See Also:
StateModelGenerator

Field Summary
protected  java.util.List<java.lang.String> assignedUseCaseStateNames
          Already asssigned use case states names
protected  org.nuiton.eugene.models.state.StateModel model
           
 
Fields inherited from class org.nuiton.eugene.ChildGenerator
parent
 
Fields inherited from class org.nuiton.eugene.Generator
encoding, excludeTemplates, generatedPackages, lastModifiedSource, overwrite, properties
 
Constructor Summary
TapestryWebGenerator()
          Default Constructeur
 
Method Summary
 void generate(org.nuiton.eugene.models.state.StateModel stateModel, java.io.File destDir)
          Redefintion pour une generation specifique tapestry
protected  void generate(org.nuiton.eugene.models.state.StateModelStateChart chart, java.util.Collection<org.nuiton.eugene.models.state.StateModelState> states, java.io.File destDir)
          Generate a collection of states
protected  void generateFromSimpleState(java.io.Writer output, org.nuiton.eugene.models.state.StateModelStateChart chart, org.nuiton.eugene.models.state.StateModelState state)
          Called for each simple state
protected  void generateFromState(org.nuiton.eugene.models.state.StateModelStateChart chart, org.nuiton.eugene.models.state.StateModelState state, java.io.File destDir)
          Generate a state.
protected  void generateInjectionAndEventsFromState(java.io.Writer output, org.nuiton.eugene.models.state.StateModelStateChart chart, org.nuiton.eugene.models.state.StateModelState state)
          Generate state injections
protected  java.lang.String generateStateUseCaseName(java.lang.String name)
          Genere un nom unique d'etat pour le model courant.
protected  void generateUseCaseEngineFromModel(org.nuiton.eugene.models.state.StateModel model, org.nuiton.eugene.models.state.StateModelStateChart chart, java.io.File destDir)
          Generate the engine use case class.
protected  void generateUseCaseNameFromState(java.io.Writer output, org.nuiton.eugene.models.state.StateModelStateChart chart, org.nuiton.eugene.models.state.StateModelState state)
          Generate use case name
protected  java.lang.String getFilenameFromState(org.nuiton.eugene.models.state.StateModelStateChart chart, org.nuiton.eugene.models.state.StateModelState state)
          Appele par lutin generator pour tous les etats du model
protected  java.lang.String getHashStateName(java.lang.String name)
          Hash a state name.
protected  java.lang.String getNameFromState(org.nuiton.eugene.models.state.StateModelState state)
          Get generated class name from state Prefix it with "Abstract"
protected  java.lang.String getPackageFromComponents(org.nuiton.eugene.models.state.StateModelStateChart chart)
          Return specifique tapestry package name (base) Detect "web.*" patern and replace it with "web.base" Component are placed into "base" directory
protected  java.lang.String getPackageFromState(org.nuiton.eugene.models.state.StateModelStateChart chart)
          Return specifique tapestry package name.
 
Methods inherited from class org.nuiton.eugene.StateModelGenerator
canGenerateElement, generate, generateFromModel, generateFromState, getFilenameFromModel, getFilenameFromState, getModel, loadPropertyFile
 
Methods inherited from class org.nuiton.eugene.ChildGenerator
canGeneratePackage, getLastModifiedSource, getOverwrite, getProperty, setParent
 
Methods inherited from class org.nuiton.eugene.Generator
generate, generate, getDestinationFile, getEncoding, getExcludeTemplates, isNewerThanSource, setEncoding, setExcludeTemplates, setGeneratedPackages, setLastModifiedSource, setOverwrite, setProperties, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

assignedUseCaseStateNames

protected java.util.List<java.lang.String> assignedUseCaseStateNames
Already asssigned use case states names


model

protected org.nuiton.eugene.models.state.StateModel model
Constructor Detail

TapestryWebGenerator

public TapestryWebGenerator()
Default Constructeur

Method Detail

generate

public void generate(org.nuiton.eugene.models.state.StateModel stateModel,
                     java.io.File destDir)
              throws java.io.IOException
Redefintion pour une generation specifique tapestry

Overrides:
generate in class org.nuiton.eugene.StateModelGenerator
Parameters:
stateModel - Le modele d'état
destDir - le dossier de destination
Throws:
java.io.IOException

getFilenameFromState

protected java.lang.String getFilenameFromState(org.nuiton.eugene.models.state.StateModelStateChart chart,
                                                org.nuiton.eugene.models.state.StateModelState state)
Appele par lutin generator pour tous les etats du model

Parameters:
chart -
Returns:
filename

getNameFromState

protected java.lang.String getNameFromState(org.nuiton.eugene.models.state.StateModelState state)
Get generated class name from state Prefix it with "Abstract"

Parameters:
state - state
Returns:
name

getPackageFromState

protected java.lang.String getPackageFromState(org.nuiton.eugene.models.state.StateModelStateChart chart)
Return specifique tapestry package name. Detect "web" patern and replace it with "web.pages".

Parameters:
chart - the chart
Returns:
a tapestry package name

getPackageFromComponents

protected java.lang.String getPackageFromComponents(org.nuiton.eugene.models.state.StateModelStateChart chart)
Return specifique tapestry package name (base) Detect "web.*" patern and replace it with "web.base" Component are placed into "base" directory

Parameters:
chart - the chart
Returns:
a tapestry package name

generate

protected void generate(org.nuiton.eugene.models.state.StateModelStateChart chart,
                        java.util.Collection<org.nuiton.eugene.models.state.StateModelState> states,
                        java.io.File destDir)
                 throws java.io.IOException
Generate a collection of states

Parameters:
chart - the chart
states - states collection
Throws:
java.io.IOException

generateFromState

protected void generateFromState(org.nuiton.eugene.models.state.StateModelStateChart chart,
                                 org.nuiton.eugene.models.state.StateModelState state,
                                 java.io.File destDir)
                          throws java.io.IOException
Generate a state. This state can be complexe, so the method is recusively called.

Parameters:
chart - the parent chart
state - the current state
Throws:
java.io.IOException

generateFromSimpleState

protected void generateFromSimpleState(java.io.Writer output,
                                       org.nuiton.eugene.models.state.StateModelStateChart chart,
                                       org.nuiton.eugene.models.state.StateModelState state)
                                throws java.io.IOException
Called for each simple state

Parameters:
output - writer out
chart - chart
state - simple state
Throws:
java.io.IOException

generateInjectionAndEventsFromState

protected void generateInjectionAndEventsFromState(java.io.Writer output,
                                                   org.nuiton.eugene.models.state.StateModelStateChart chart,
                                                   org.nuiton.eugene.models.state.StateModelState state)
                                            throws java.io.IOException
Generate state injections

Parameters:
output -
chart -
state -
Throws:
java.io.IOException

generateUseCaseNameFromState

protected void generateUseCaseNameFromState(java.io.Writer output,
                                            org.nuiton.eugene.models.state.StateModelStateChart chart,
                                            org.nuiton.eugene.models.state.StateModelState state)
                                     throws java.io.IOException
Generate use case name

Parameters:
output -
chart -
state -
Throws:
java.io.IOException

generateStateUseCaseName

protected java.lang.String generateStateUseCaseName(java.lang.String name)
Genere un nom unique d'etat pour le model courant. Pour des raisons de debugage, on utilise des lettres particuliere du nom de l'etat, suivit d'un numero, s'il y a collision.

Returns:
a unique name

getHashStateName

protected java.lang.String getHashStateName(java.lang.String name)
Hash a state name. On prend la premiere lettre de chaque mot. ContactList -> cl contactList -> cl ContactListPage -> clp

Parameters:
name -
Returns:
hashed state name

generateUseCaseEngineFromModel

protected void generateUseCaseEngineFromModel(org.nuiton.eugene.models.state.StateModel model,
                                              org.nuiton.eugene.models.state.StateModelStateChart chart,
                                              java.io.File destDir)
                                       throws java.io.IOException
Generate the engine use case class. Need to be generated inside client webapp directory to be analysed by tapestry (annotations)

Parameters:
model - model
chart - chart
Throws:
java.io.IOException


Copyright © 2004-2009 CodeLutin. All Rights Reserved.