Skip to main content



      Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » codegen - merging problem
codegen - merging problem [message #60468] Thu, 09 November 2006 15:43 Go to next message
Eclipse UserFriend
Originally posted by: zazo7.wp.pl

Hi,

I would like to merge two files using EMF's JMerge. What is the right
way to initialize JControlModel object? When trying to run code below I
get NullPointerException due to fact that 'facadeHelper' is empty.

//...
JControlModel jControlModel = new JControlModel();
//FIXME: facadeHelper is null
jControlModel.initialize(null, config.getMergeXmlFullUri());
JMerger jMerger = new JMerger(jControlModel);
jMerger.setSourceCompilationUnit(jMerger
.createCompilationUnitForContents(emitterResult));
jMerger.setTargetCompilationUnit(jMerger
.createCompilationUnitForInputStream(targetFile
.getContents(true)));
String oldContents = jMerger.getTargetCompilationUnit().getContents();

jMerger.merge();
//....



I've been looking for some examples how to solve this. The only one I've
found looks like this:

//...
String uri =
Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL( ).toString();
uri += "templates/merge.xml";

JMerger jmerger = new JMerger();
JControlModel controlModel = new JControlModel( uri );
jmerger.setControlModel( controlModel );
//...

However, I belive, this one refers to the older version of EMF :/

Thanks for any help.

Regards

Tomasz
Re: codegen - merging problem [message #60488 is a reply to message #60468] Thu, 09 November 2006 16:03 Go to previous message
Eclipse UserFriend
Originally posted by: merks.ca.ibm.com

This is a multi-part message in MIME format.
--------------070903060701090901010501
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Tomasz,

In org.eclipse.emf.codegen.merge.java.JMerger there's code like this:

/**
* Utilitiy for headless operations.
*
* @param mergeXML
* @param sourceURI
* @param targetURI
* @return the merged content
*/
public String execute(Monitor monitor, String[] arguments)
{
String mergeXML = arguments[0];
String sourceURI = arguments[1];
String targetURI = arguments[2];
String facadeHelperClass = arguments.length > 3 ? arguments[3] :
DEFAULT_FACADE_HELPER_CLASS;

// Create the options model.
//
controlModel = new JControlModel();

controlModel.initialize(CodeGenUtil.instantiateFacadeHelper( facadeHelperClass),
mergeXML);

We're just fine tuning the AST-based merger
" org.eclipse.emf.codegen.merge.java.facade.ast.ASTFacadeHelpe r " which
will support merging Java 5.0 syntax, so you could try that as an
argument for the facade helper as well (if you are using 2.3M3 which
will be available later today and you want to be a guinea pig).


Tomasz Zarna wrote:
> Hi,
>
> I would like to merge two files using EMF's JMerge. What is the right
> way to initialize JControlModel object? When trying to run code below I
> get NullPointerException due to fact that 'facadeHelper' is empty.
>
> //...
> JControlModel jControlModel = new JControlModel();
> //FIXME: facadeHelper is null
> jControlModel.initialize(null, config.getMergeXmlFullUri());
> JMerger jMerger = new JMerger(jControlModel);
> jMerger.setSourceCompilationUnit(jMerger
> .createCompilationUnitForContents(emitterResult));
> jMerger.setTargetCompilationUnit(jMerger
> .createCompilationUnitForInputStream(targetFile
> .getContents(true)));
> String oldContents = jMerger.getTargetCompilationUnit().getContents();
>
> jMerger.merge();
> //....
>
>
>
> I've been looking for some examples how to solve this. The only one I've
> found looks like this:
>
> //...
> String uri =
> Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL( ).toString();
> uri += "templates/merge.xml";
>
> JMerger jmerger = new JMerger();
> JControlModel controlModel = new JControlModel( uri );
> jmerger.setControlModel( controlModel );
> //...
>
> However, I belive, this one refers to the older version of EMF :/
>
> Thanks for any help.
>
> Regards
>
> Tomasz


--------------070903060701090901010501
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Tomasz,<br>
<br>
In org.eclipse.emf.codegen.merge.java.JMerger there's code like this:<br>
<blockquote><small>  /**</small><br>
<small>   * Utilitiy for headless operations.</small><br>
<small>   * </small><br>
<small>   * @param mergeXML</small><br>
<small>   * @param sourceURI</small><br>
<small>   * @param targetURI</small><br>
<small>   * @return the merged content</small><br>
<small>   */</small><br>
<small>  public String execute(Monitor monitor, String[] arguments)</small><br>
<small>  {</small><br>
<small>    String mergeXML = arguments[0];</small><br>
<small>    String sourceURI = arguments[1];</small><br>
<small>    String targetURI = arguments[2];</small><br>
<small>    String facadeHelperClass = arguments.length &gt; 3 ?
arguments[3] : DEFAULT_FACADE_HELPER_CLASS;</small><br>
<small>    </small><br>
<small>    // Create the options model.</small><br>
<small>    //</small><br>
<small>    controlModel =  new JControlModel();</small><br>
<small>   
controlModel.initialize(CodeGenUtil.instantiateFacadeHelper( facadeHelperClass),
mergeXML);</small><br>
</blockquote>
We're just fine tuning the AST-based merger
" org.eclipse.emf.codegen.merge.java.facade.ast.ASTFacadeHelpe r " which
will support merging Java 5.0 syntax, so you could try that as an
argument for the facade helper as well (if you are using 2.3M3 which
will be available later today and you want to be a guinea pig).<br>
<br>
<br>
Tomasz Zarna wrote:
<blockquote cite="midej03sl$v41$1@utils.eclipse.org" type="cite">Hi,
<br>
<br>
I would like to merge two files using EMF's JMerge. What is the right
<br>
way to initialize JControlModel object? When trying to run code below I
<br>
get NullPointerException due to fact that 'facadeHelper' is empty.
<br>
<br>
//...
<br>
JControlModel jControlModel = new JControlModel();
<br>
//FIXME: facadeHelper is null
<br>
jControlModel.initialize(null, config.getMergeXmlFullUri());
<br>
JMerger jMerger = new JMerger(jControlModel);
<br>
jMerger.setSourceCompilationUnit(jMerger
<br>
                .createCompilationUnitForContents(emitterResult));
<br>
jMerger.setTargetCompilationUnit(jMerger
<br>
                .createCompilationUnitForInputStream(targetFile
<br>
                        .getContents(true)));
<br>
String oldContents = jMerger.getTargetCompilationUnit().getContents();
<br>
<br>
jMerger.merge();
<br>
//....
<br>
<br>
<br>
<br>
I've been looking for some examples how to solve this. The only one
I've
<br>
found looks like this:
<br>
<br>
//...
<br>
 String uri =
<br>
Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL( ).toString();
<br>
  uri += "templates/merge.xml";
<br>
<br>
  JMerger jmerger = new JMerger();
<br>
  JControlModel controlModel = new JControlModel( uri );
<br>
  jmerger.setControlModel( controlModel );
<br>
//...
<br>
<br>
However, I belive, this one refers to the older version of EMF :/
<br>
<br>
Thanks for any help.
<br>
<br>
Regards
<br>
<br>
Tomasz
<br>
</blockquote>
<br>
</body>
</html>

--------------070903060701090901010501--
Re: codegen - merging problem [message #595356 is a reply to message #60468] Thu, 09 November 2006 16:03 Go to previous message
Eclipse UserFriend
This is a multi-part message in MIME format.
--------------070903060701090901010501
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Tomasz,

In org.eclipse.emf.codegen.merge.java.JMerger there's code like this:

/**
* Utilitiy for headless operations.
*
* @param mergeXML
* @param sourceURI
* @param targetURI
* @return the merged content
*/
public String execute(Monitor monitor, String[] arguments)
{
String mergeXML = arguments[0];
String sourceURI = arguments[1];
String targetURI = arguments[2];
String facadeHelperClass = arguments.length > 3 ? arguments[3] :
DEFAULT_FACADE_HELPER_CLASS;

// Create the options model.
//
controlModel = new JControlModel();

controlModel.initialize(CodeGenUtil.instantiateFacadeHelper( facadeHelperClass),
mergeXML);

We're just fine tuning the AST-based merger
" org.eclipse.emf.codegen.merge.java.facade.ast.ASTFacadeHelpe r " which
will support merging Java 5.0 syntax, so you could try that as an
argument for the facade helper as well (if you are using 2.3M3 which
will be available later today and you want to be a guinea pig).


Tomasz Zarna wrote:
> Hi,
>
> I would like to merge two files using EMF's JMerge. What is the right
> way to initialize JControlModel object? When trying to run code below I
> get NullPointerException due to fact that 'facadeHelper' is empty.
>
> //...
> JControlModel jControlModel = new JControlModel();
> //FIXME: facadeHelper is null
> jControlModel.initialize(null, config.getMergeXmlFullUri());
> JMerger jMerger = new JMerger(jControlModel);
> jMerger.setSourceCompilationUnit(jMerger
> .createCompilationUnitForContents(emitterResult));
> jMerger.setTargetCompilationUnit(jMerger
> .createCompilationUnitForInputStream(targetFile
> .getContents(true)));
> String oldContents = jMerger.getTargetCompilationUnit().getContents();
>
> jMerger.merge();
> //....
>
>
>
> I've been looking for some examples how to solve this. The only one I've
> found looks like this:
>
> //...
> String uri =
> Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL( ).toString();
> uri += "templates/merge.xml";
>
> JMerger jmerger = new JMerger();
> JControlModel controlModel = new JControlModel( uri );
> jmerger.setControlModel( controlModel );
> //...
>
> However, I belive, this one refers to the older version of EMF :/
>
> Thanks for any help.
>
> Regards
>
> Tomasz


--------------070903060701090901010501
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Tomasz,<br>
<br>
In org.eclipse.emf.codegen.merge.java.JMerger there's code like this:<br>
<blockquote><small>  /**</small><br>
<small>   * Utilitiy for headless operations.</small><br>
<small>   * </small><br>
<small>   * @param mergeXML</small><br>
<small>   * @param sourceURI</small><br>
<small>   * @param targetURI</small><br>
<small>   * @return the merged content</small><br>
<small>   */</small><br>
<small>  public String execute(Monitor monitor, String[] arguments)</small><br>
<small>  {</small><br>
<small>    String mergeXML = arguments[0];</small><br>
<small>    String sourceURI = arguments[1];</small><br>
<small>    String targetURI = arguments[2];</small><br>
<small>    String facadeHelperClass = arguments.length &gt; 3 ?
arguments[3] : DEFAULT_FACADE_HELPER_CLASS;</small><br>
<small>    </small><br>
<small>    // Create the options model.</small><br>
<small>    //</small><br>
<small>    controlModel =  new JControlModel();</small><br>
<small>   
controlModel.initialize(CodeGenUtil.instantiateFacadeHelper( facadeHelperClass),
mergeXML);</small><br>
</blockquote>
We're just fine tuning the AST-based merger
" org.eclipse.emf.codegen.merge.java.facade.ast.ASTFacadeHelpe r " which
will support merging Java 5.0 syntax, so you could try that as an
argument for the facade helper as well (if you are using 2.3M3 which
will be available later today and you want to be a guinea pig).<br>
<br>
<br>
Tomasz Zarna wrote:
<blockquote cite="midej03sl$v41$1@utils.eclipse.org" type="cite">Hi,
<br>
<br>
I would like to merge two files using EMF's JMerge. What is the right
<br>
way to initialize JControlModel object? When trying to run code below I
<br>
get NullPointerException due to fact that 'facadeHelper' is empty.
<br>
<br>
//...
<br>
JControlModel jControlModel = new JControlModel();
<br>
//FIXME: facadeHelper is null
<br>
jControlModel.initialize(null, config.getMergeXmlFullUri());
<br>
JMerger jMerger = new JMerger(jControlModel);
<br>
jMerger.setSourceCompilationUnit(jMerger
<br>
                .createCompilationUnitForContents(emitterResult));
<br>
jMerger.setTargetCompilationUnit(jMerger
<br>
                .createCompilationUnitForInputStream(targetFile
<br>
                        .getContents(true)));
<br>
String oldContents = jMerger.getTargetCompilationUnit().getContents();
<br>
<br>
jMerger.merge();
<br>
//....
<br>
<br>
<br>
<br>
I've been looking for some examples how to solve this. The only one
I've
<br>
found looks like this:
<br>
<br>
//...
<br>
 String uri =
<br>
Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL( ).toString();
<br>
  uri += "templates/merge.xml";
<br>
<br>
  JMerger jmerger = new JMerger();
<br>
  JControlModel controlModel = new JControlModel( uri );
<br>
  jmerger.setControlModel( controlModel );
<br>
//...
<br>
<br>
However, I belive, this one refers to the older version of EMF :/
<br>
<br>
Thanks for any help.
<br>
<br>
Regards
<br>
<br>
Tomasz
<br>
</blockquote>
<br>
</body>
</html>

--------------070903060701090901010501--
Previous Topic:codegen - merging problem
Next Topic:teneo - why tables for interfaces?
Goto Forum:
  


Current Time: Fri Jul 04 03:05:46 EDT 2025

Powered by FUDForum. Page generated in 0.05854 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top