EGF Engine
Release 0.1.0

org.eclipse.egf.pattern.ecore
Class PatternHandler

java.lang.Object
  extended by org.eclipse.egf.pattern.ecore.PatternHandler
Direct Known Subclasses:
RefactoringPatternHandler

public class PatternHandler
extends Object

Load a pattern from its ecore relative path.
Also creates a new one from its name.
After a pattern has been loaded or created, the instance of PatternHandler used is bound to this pattern.
Should another pattern be loaded/created, a new instance of PatternHandler would be used.


Nested Class Summary
 class PatternHandler.PatternData
          Pattern data.
 class PatternHandler.ProductionOptionsHandler
          Production options handler.
 
Constructor Summary
PatternHandler()
          Constructor.
PatternHandler(boolean editable_p)
          Constructor.
 
Method Summary
 void cleanGeneratedStructures()
          Clean pattern generated structures.
 PatternHandler.PatternData createPattern(String fcId_p, PatternModel patternModel_p)
          Create a new pattern out of given pattern model.
 void delete()
          Delete the handled pattern.
protected  void ensurePluginDependencies()
          Ensure plug-in dependencies.
protected  List<ParameterRelation> getAllParameters(Pattern pattern_p)
          Get all pattern matching parameters for given pattern.
protected  List<CallParameter> getCallParameters(Pattern pattern_p)
          Get all public method parameters for given pattern.
protected  EOperation getGenerateOperation(Pattern pattern_p)
          Get user modifiable generate operation.
 PatternHandler.PatternData getPatternData()
          Get pattern data.
protected  void handleSaveProductionOptions(Pattern pattern_p, AnnotationHandler handler_p)
          Handle the production options saving behavior.
 boolean isEditable()
          Is pattern handler enabling modifications or not ?
 PatternHandler.PatternData load(String fileRelativePath_p)
          Load pattern structure using previously set ecore path.
protected  void postSave()
          Post save processing.
protected  boolean readProductionContext(Pattern pattern_p, PatternHandler.PatternData patternData_p)
          Read production context, looking for both given pattern and its parents (patterns).
 List<ParameterRelation> recomputeAllParameters()
          Recompute all pattern matching parameters.
 List<CallParameter> recomputeCallParameters()
          Recompute all public method parameters.
 void recomputeConditionStructures()
          Recompute condition structures, if needed.
protected  PatternHandler.PatternData reloadPatternAndUpdateModel(PatternModel patternModel_p, String fileRelativePath_p)
          Reload pattern data and update pattern model accordingly.
 PatternHandler.PatternData save(PatternModel patternModel_p)
          Save current pattern data to pattern model file.
 PatternHandler.PatternData save(PatternModel patternModel_p, String physicalFileRelativePath_p, String logicalFileRelativePath_p)
          Save current pattern data to pattern model file.
 void setFileRelativePath(String fileRelativePath_p)
          Set ecore file relative path.
protected  void updatePatternModel(PatternModel patternModel_p, PatternHandler.PatternData patternData_p)
          Update pattern model with new pattern name, path and id.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PatternHandler

public PatternHandler()
Constructor. Pattern is in edition mode, if required.


PatternHandler

public PatternHandler(boolean editable_p)
Constructor.

Parameters:
editable_p -
Method Detail

getPatternData

public PatternHandler.PatternData getPatternData()
Get pattern data.

Returns:

isEditable

public boolean isEditable()
Is pattern handler enabling modifications or not ?

Returns:

setFileRelativePath

public void setFileRelativePath(String fileRelativePath_p)
                         throws Exception
Set ecore file relative path.

Parameters:
fileRelativePath_p - Ecore relative path, must be composed of the plug-in id (preceded by a '/') followed by the path in this plug-in.
For instance /org.eclipse.egf.pattern.g2/model/pattern.g2.ecore is a correct entry.
Setting a new value does require that #load() be called to get the content of PatternHandler.PatternData updated.
Throws:
IllegalArgumentException - if given relative path is null.
Exception

load

public PatternHandler.PatternData load(String fileRelativePath_p)
                                throws Exception
Load pattern structure using previously set ecore path.

Parameters:
fileRelativePath_p - Ecore relative path, must be composed of the factory component id (preceded by a '/') followed by the path in this factory component.
For instance /factoryComponent.121212423141443.54/model/pattern.g2.ecore is a correct entry.
Returns:
A PatternHandler.PatternData pointing to loaded pattern structure.
Throws:
Exception

save

public PatternHandler.PatternData save(PatternModel patternModel_p,
                                       String physicalFileRelativePath_p,
                                       String logicalFileRelativePath_p)
                                throws Exception
Save current pattern data to pattern model file.
Also update given pattern model with new data.

Parameters:
patternModel_p -
physicalFileRelativePath_p -
Returns:
Throws:
Exception

handleSaveProductionOptions

protected void handleSaveProductionOptions(Pattern pattern_p,
                                           AnnotationHandler handler_p)
Handle the production options saving behavior.
Default implementation figures out if an annotation should be saved for current pattern or not.

Parameters:
pattern_p -
handler_p -

save

public PatternHandler.PatternData save(PatternModel patternModel_p)
                                throws Exception
Save current pattern data to pattern model file.
Also update given pattern model with new data.

Parameters:
patternModel_p -
Returns:
Throws:
Exception

postSave

protected void postSave()
Post save processing.


recomputeConditionStructures

public void recomputeConditionStructures()
Recompute condition structures, if needed.


ensurePluginDependencies

protected void ensurePluginDependencies()
Ensure plug-in dependencies.
This is required at save time since the pattern might be produced.
This takes into account the inheritance dependency and the references ones (against called patterns).


reloadPatternAndUpdateModel

protected PatternHandler.PatternData reloadPatternAndUpdateModel(PatternModel patternModel_p,
                                                                 String fileRelativePath_p)
                                                          throws Exception
Reload pattern data and update pattern model accordingly.

Parameters:
patternModel_p -
fileRelativePath_p -
Returns:
Throws:
Exception - if pattern data could not be reloaded.

updatePatternModel

protected void updatePatternModel(PatternModel patternModel_p,
                                  PatternHandler.PatternData patternData_p)
Update pattern model with new pattern name, path and id.

Parameters:
patternModel_p -

createPattern

public PatternHandler.PatternData createPattern(String fcId_p,
                                                PatternModel patternModel_p)
                                         throws Exception
Create a new pattern out of given pattern model.

Parameters:
fcId_p -
patternModel_p -
Returns:
A PatternHandler.PatternData pointing to created pattern structure.
Throws:
Exception.
Exception

delete

public void delete()
Delete the handled pattern.
User is advised to release held pattern data reference, since it is no longer synchronized with the persisted data.


cleanGeneratedStructures

public void cleanGeneratedStructures()
Clean pattern generated structures.
List of deleted items :


readProductionContext

protected boolean readProductionContext(Pattern pattern_p,
                                        PatternHandler.PatternData patternData_p)
Read production context, looking for both given pattern and its parents (patterns).

Parameters:
pattern_p -
patternData_p -
Returns:

getAllParameters

protected List<ParameterRelation> getAllParameters(Pattern pattern_p)
Get all pattern matching parameters for given pattern.
Includes all first-level and inherited parameters.
Parent parameters are presented first, from the farthest to the nearest.
Thus given pattern parameters appear at the end of resulting list.

Parameters:
pattern_p -
Returns:
A not null list of ParameterRelation. Can still be empty.

getCallParameters

protected List<CallParameter> getCallParameters(Pattern pattern_p)
Get all public method parameters for given pattern.
Includes at least all first-level parameters.

Parameters:
pattern_p -
Returns:
A not null list of CallParameter. Can nevertheless be empty.

recomputeAllParameters

public List<ParameterRelation> recomputeAllParameters()
Recompute all pattern matching parameters.
As a result, contained pattern data is modified.

Returns:

recomputeCallParameters

public List<CallParameter> recomputeCallParameters()
Recompute all public method parameters.
As a result, contained pattern data is modified.

Returns:

getGenerateOperation

protected EOperation getGenerateOperation(Pattern pattern_p)
Get user modifiable generate operation.

Parameters:
pattern_p -
Returns:

EGF Engine
Release 0.1.0

Copyright (c) Thales Corporate Services S.A.S, 2009.

This page is made available under license. For full details see the LEGAL in the documentation book that contains this page.