EGF Engine
Release 0.1.0

org.eclipse.egf.pattern.production
Class PatternProducer

java.lang.Object
  extended by org.eclipse.egf.pattern.production.PatternProducer

public class PatternProducer
extends Object

Pattern producer.
Can either produce a library of patterns, or a single pattern.


Field Summary
protected static String JAVA_BUILDER_FACTORY_COMPONENT_CONTRACT_FACTORY_COMPONENT_PROJECT_NAME
          Java builder project name contract element id.
protected static String JAVA_BUILDER_FACTORY_COMPONENT_ID
          Java builder factory component id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_BASE_PACKAGE
          Java code generator base package contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_FACTORY_COMPONENT_PROJECT_NAME
          Java code generator project name contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_GEN_MODEL_GENERATOR
          Java code generator genModel generator contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_INPUT_PATH
          Java code generator input path contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_JDK_COMPLIANCE_LEVEL
          Java code generator jdk compliance level contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_MODEL_DIRECTORY
          Java code generator model directory contract element id.
protected static String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_ID
          Java code generator factory component id.
 
Constructor Summary
PatternProducer()
          Constructor.
 
Method Summary
protected  boolean buildPatternProject(PatternHandler.PatternData patternData_p)
          Build the java project holding the currently produced pattern.
static void cleanGeneratedStructures(IJavaProject javaProject_p, IDescriptor descriptor_p)
          Clean pattern template structure.
protected static Couple<FactoryComponent,Context> createFactoryComponentSkeleton(String fcName_p, String referencedFcId_p)
          Create a factory component with given name.
protected static void ensurePatternsJavaFiles(Set<String> fullIds_p)
          Ensure all identified patterns are indeed usable as java classes.
protected static boolean generateFactoryComponent(FactoryComponent fc_p)
          Generate given factory component in current thread.
protected static boolean generatePatternClasses(PatternHandler.PatternData patternData_p)
          Generate pattern classes.
 String generatePatterns(String fullId_p, Object classLoader_p)
          Generate identified pattern.
protected static PatternSeeker getPatternSeeker()
          Get pattern seeker.
protected static boolean handlePatternsProduction(List<PatternHandler.PatternData> data_p, SubMonitor monitor_p, int ticksCount_p)
          Take care of the whole production chain for given patterns data.
static boolean producePatterns(String fullId_p, IProgressMonitor progressMonitor_p)
          Produce identified pattern.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JAVA_BUILDER_FACTORY_COMPONENT_ID

protected static final String JAVA_BUILDER_FACTORY_COMPONENT_ID
Java builder factory component id.

See Also:
Constant Field Values

JAVA_BUILDER_FACTORY_COMPONENT_CONTRACT_FACTORY_COMPONENT_PROJECT_NAME

protected static final String JAVA_BUILDER_FACTORY_COMPONENT_CONTRACT_FACTORY_COMPONENT_PROJECT_NAME
Java builder project name contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_JDK_COMPLIANCE_LEVEL

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_JDK_COMPLIANCE_LEVEL
Java code generator jdk compliance level contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_GEN_MODEL_GENERATOR

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_GEN_MODEL_GENERATOR
Java code generator genModel generator contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_BASE_PACKAGE

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_BASE_PACKAGE
Java code generator base package contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_FACTORY_COMPONENT_PROJECT_NAME

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_FACTORY_COMPONENT_PROJECT_NAME
Java code generator project name contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_INPUT_PATH

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_INPUT_PATH
Java code generator input path contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_MODEL_DIRECTORY

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_CONTRACT_ELEMENT_MODEL_DIRECTORY
Java code generator model directory contract element id.

See Also:
Constant Field Values

JAVA_CODE_GENERATOR_FACTORY_COMPONENT_ID

protected static final String JAVA_CODE_GENERATOR_FACTORY_COMPONENT_ID
Java code generator factory component id.

See Also:
Constant Field Values
Constructor Detail

PatternProducer

public PatternProducer()
Constructor.

Method Detail

getPatternSeeker

protected static PatternSeeker getPatternSeeker()
Get pattern seeker.

Returns:

buildPatternProject

protected boolean buildPatternProject(PatternHandler.PatternData patternData_p)
Build the java project holding the currently produced pattern.

Parameters:
patternData_p -
Returns:

createFactoryComponentSkeleton

protected static Couple<FactoryComponent,Context> createFactoryComponentSkeleton(String fcName_p,
                                                                                 String referencedFcId_p)
Create a factory component with given name.
By default, a factory with a unique production plan is added to the newly created factory component.
This production plan contains a factory component invocation containing a default context.
This context should be filled up.

Parameters:
fcName_p -
Returns:

generateFactoryComponent

protected static boolean generateFactoryComponent(FactoryComponent fc_p)
Generate given factory component in current thread.

Parameters:
fc_p -
Returns:

generatePatternClasses

protected static boolean generatePatternClasses(PatternHandler.PatternData patternData_p)
Generate pattern classes.
That is generate classes that are describing the pattern structure as an object one.
Such classes are composed of a String generate() method, and several internal pattern methods.
Calling generate() method results in getting the content of a new template file that is indeed acting as the whole pattern, when applied.
When all classes are generated, also force project build so that they may subsequently be used.

Parameters:
patternData_p -
Returns:

ensurePatternsJavaFiles

protected static void ensurePatternsJavaFiles(Set<String> fullIds_p)
Ensure all identified patterns are indeed usable as java classes.
That is, if one of these patterns is being developed and has never been generated, do use its ecore file to generate its java classes form, and compile them.

Parameters:
fullIds_p -

handlePatternsProduction

protected static boolean handlePatternsProduction(List<PatternHandler.PatternData> data_p,
                                                  SubMonitor monitor_p,
                                                  int ticksCount_p)
Take care of the whole production chain for given patterns data.

Parameters:
data_p -
monitor_p -
ticksCount_p -
Returns:

producePatterns

public static boolean producePatterns(String fullId_p,
                                      IProgressMonitor progressMonitor_p)
Produce identified pattern.

Parameters:
fullId_p - The absolute id of either a library or a pattern.
Returns:

generatePatterns

public String generatePatterns(String fullId_p,
                               Object classLoader_p)
Generate identified pattern.
That is, generate resulting template and return it as a string.
The resulting template does include neither the header, nor the footer.
This method should only be called in the case of an inclusion of the identified pattern in another one.

Parameters:
fullId_p -
classLoader_p -
Returns:

cleanGeneratedStructures

public static void cleanGeneratedStructures(IJavaProject javaProject_p,
                                            IDescriptor descriptor_p)
Clean pattern template structure.

Parameters:
javaProject_p -
descriptor_p -

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.