org.eclipse.xtext.xtext.ecoreInference
Class ProjectAwareXtendXtext2EcorePostProcessor

java.lang.Object
  extended by org.eclipse.xtext.xtext.ecoreInference.XtendXtext2EcorePostProcessor
      extended by org.eclipse.xtext.xtext.ecoreInference.ProjectAwareXtendXtext2EcorePostProcessor
All Implemented Interfaces:
java.util.EventListener, org.eclipse.core.resources.IResourceChangeListener, IXtext2EcorePostProcessor

public class ProjectAwareXtendXtext2EcorePostProcessor
extends XtendXtext2EcorePostProcessor
implements org.eclipse.core.resources.IResourceChangeListener

XtendXtext2EcorePostProcessor specialization which enables the xtend post processing file to refer to classes and resources which are available from the classpath of the containing IJavaProject.

Author:
Michael Clay, Knut Wannheden

Constructor Summary
ProjectAwareXtendXtext2EcorePostProcessor()
           
 
Method Summary
protected  java.lang.ClassLoader createClassLoader(org.eclipse.jdt.core.IJavaProject javaProject)
           
protected  org.eclipse.emf.mwe.core.resources.ResourceLoader getResourceLoader(GeneratedMetamodel metamodel)
           
protected  org.eclipse.xtend.expression.Resource loadXtendFile(GeneratedMetamodel metamodel)
          Expects an Xtend file named MyDslPostProcessor.ext with an extension with signature process(xtext::GeneratedMetamodel) in the same folder as the grammar file.
 void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
          Notifies this listener that some resource changes are happening, or have already happened.
 
Methods inherited from class org.eclipse.xtext.xtext.ecoreInference.XtendXtext2EcorePostProcessor
getExecutionContext, getExtensionName, getXtendFileLocation, process
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProjectAwareXtendXtext2EcorePostProcessor

public ProjectAwareXtendXtext2EcorePostProcessor()
Method Detail

loadXtendFile

protected org.eclipse.xtend.expression.Resource loadXtendFile(GeneratedMetamodel metamodel)
Description copied from class: XtendXtext2EcorePostProcessor
Expects an Xtend file named MyDslPostProcessor.ext with an extension with signature process(xtext::GeneratedMetamodel) in the same folder as the grammar file.

Overrides:
loadXtendFile in class XtendXtext2EcorePostProcessor
Parameters:
metamodel - the metamodel to augment
Returns:
the xtendFile to execute

getResourceLoader

protected org.eclipse.emf.mwe.core.resources.ResourceLoader getResourceLoader(GeneratedMetamodel metamodel)
Overrides:
getResourceLoader in class XtendXtext2EcorePostProcessor
Parameters:
metamodel - the metamodel to augment
Returns:
the resource loader used to load resources during the xtend processing

createClassLoader

protected java.lang.ClassLoader createClassLoader(org.eclipse.jdt.core.IJavaProject javaProject)
                                           throws org.eclipse.core.runtime.CoreException
Throws:
org.eclipse.core.runtime.CoreException

resourceChanged

public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
Description copied from interface: org.eclipse.core.resources.IResourceChangeListener
Notifies this listener that some resource changes are happening, or have already happened.

The supplied event gives details. This event object (and the resource delta within it) is valid only for the duration of the invocation of this method.

Note: This method is called by the platform; it is not intended to be called directly by clients.

Note that during resource change event notification, further changes to resources may be disallowed.

Specified by:
resourceChanged in interface org.eclipse.core.resources.IResourceChangeListener
Parameters:
event - the resource change event
See Also:
IResourceDelta