<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for Epsilon Weblog</title>
	<atom:link href="http://epsilonblog.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://epsilonblog.wordpress.com</link>
	<description>... discussion on the Epsilon Eclipse GMT component</description>
	<pubDate>Wed, 23 Jul 2008 12:26:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
		<item>
		<title>Comment on Using HUTN for T2M transformation by Pau Giner</title>
		<link>http://epsilonblog.wordpress.com/2008/01/16/using-hutn-for-t2m-transformation/#comment-87</link>
		<dc:creator>Pau Giner</dc:creator>
		<pubDate>Mon, 30 Jun 2008 10:50:57 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/16/using-hutn-for-t2m-transformation/#comment-87</guid>
		<description>The UML example does not work.

UML metamodel uses its own dataTypes. So HUTN cannot convert strings to the UML-defined String datatype.

This is the error I got:

[Line: 9, Column: 5, Reason: Expected String for: name, Line: 10, Column: 35, Reason: Expected String for: name, Line: 11, Column: 28, Reason: Expected String for: name]</description>
		<content:encoded><![CDATA[<p>The UML example does not work.</p>
<p>UML metamodel uses its own dataTypes. So HUTN cannot convert strings to the UML-defined String datatype.</p>
<p>This is the error I got:</p>
<p>[Line: 9, Column: 5, Reason: Expected String for: name, Line: 10, Column: 35, Reason: Expected String for: name, Line: 11, Column: 28, Reason: Expected String for: name]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in EMF editors by Dimitrios Kolovos</title>
		<link>http://epsilonblog.wordpress.com/2008/03/16/model-refactoring-in-emf-editors/#comment-24</link>
		<dc:creator>Dimitrios Kolovos</dc:creator>
		<pubDate>Tue, 18 Mar 2008 16:43:56 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/?p=27#comment-24</guid>
		<description>Thanks. A glitch I've found is that (unlike GMF) the EMF editors do not maintain the order of selection. For example, in the GMF editor when I select B and then A, the wizard title reads "Create association BALink" while in the EMF editor regardless of the user selection order, the selection returned by the tree viewer is always {A, B} and thus the title always reads "Create association ABLink".</description>
		<content:encoded><![CDATA[<p>Thanks. A glitch I&#8217;ve found is that (unlike GMF) the EMF editors do not maintain the order of selection. For example, in the GMF editor when I select B and then A, the wizard title reads &#8220;Create association BALink&#8221; while in the EMF editor regardless of the user selection order, the selection returned by the tree viewer is always {A, B} and thus the title always reads &#8220;Create association ABLink&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in EMF editors by Ed Merks</title>
		<link>http://epsilonblog.wordpress.com/2008/03/16/model-refactoring-in-emf-editors/#comment-23</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Mon, 17 Mar 2008 01:41:38 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/?p=27#comment-23</guid>
		<description>Cool!</description>
		<content:encoded><![CDATA[<p>Cool!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in GMF editors by Model Refactoring in EMF editors &#171; Epsilon Weblog</title>
		<link>http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-22</link>
		<dc:creator>Model Refactoring in EMF editors &#171; Epsilon Weblog</dc:creator>
		<pubDate>Sun, 16 Mar 2008 22:06:52 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-22</guid>
		<description>[...] Refactoring in EMF&#160;editors  In this post we demonstrated how EWL from the Epsilon GMT component can be used to automate model refactoring [...]</description>
		<content:encoded><![CDATA[<p>[...] Refactoring in EMF&nbsp;editors  In this post we demonstrated how EWL from the Epsilon GMT component can be used to automate model refactoring [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Extended properties in EOL by Ed Merks</title>
		<link>http://epsilonblog.wordpress.com/2008/01/30/extended-properties-in-eol/#comment-13</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Thu, 31 Jan 2008 17:31:47 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/?p=20#comment-13</guid>
		<description>That's cool.</description>
		<content:encoded><![CDATA[<p>That&#8217;s cool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in GMF editors by Dimitrios Kolovos</title>
		<link>http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-12</link>
		<dc:creator>Dimitrios Kolovos</dc:creator>
		<pubDate>Mon, 21 Jan 2008 20:32:23 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-12</guid>
		<description>Thanks Ed. I'll do that asap.</description>
		<content:encoded><![CDATA[<p>Thanks Ed. I&#8217;ll do that asap.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in GMF editors by Ed Merks</title>
		<link>http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-10</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Sat, 19 Jan 2008 14:09:41 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-10</guid>
		<description>That's very succinct!  Cool.  

BTW, why doesn't http://www.eclipse.org/modeling/project-info/team.php have a nice photo of you and a biography?  Please reopen https://bugs.eclipse.org/bugs/show_bug.cgi?id=182613 and provide some details about yourself.</description>
		<content:encoded><![CDATA[<p>That&#8217;s very succinct!  Cool.  </p>
<p>BTW, why doesn&#8217;t <a href="http://www.eclipse.org/modeling/project-info/team.php" rel="nofollow">http://www.eclipse.org/modeling/project-info/team.php</a> have a nice photo of you and a biography?  Please reopen <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=182613" rel="nofollow">https://bugs.eclipse.org/bugs/show_bug.cgi?id=182613</a> and provide some details about yourself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in GMF editors by Dimitrios Kolovos</title>
		<link>http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-9</link>
		<dc:creator>Dimitrios Kolovos</dc:creator>
		<pubDate>Fri, 18 Jan 2008 21:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-9</guid>
		<description>Thanks. I actually tried it with the built-in GMF ECore visual editor. The EWL wizard that creates the first type of association class looks like this:

wizard CreateAssociationClassCase1 {
  
  guard : self.isKindOf(Collection) and 
    self.size() = 2 and self.forAll(s&#124;s.isTypeOf(ecore::EClass))
    
  title : 'Create association ' + self.at(0).name + self.at(1).name + 'Link'
  
  do {
    
    var classA := self.at(0);
    var classB := self.at(1);
    var classABLink := new ecore::EClass;
    
    classABLink.name := classA.name + classB.name + 'Link';
    classA.ePackage.eClassifiers.add(classABLink);
    
    var classARefB := classA.createRef(classB, true);
    var classBRefA := classB.createRef(classA, true);
    
    var classABLinkRefA := classABLink.createRef(classA, false);
    var classABLinkRefB := classABLink.createRef(classB, false);
    
    var classARefABLinks := classA.createRef(classABLink, true);
    var classBRefABLinks := classB.createRef(classABLink, true);
    
    classARefABLinks.eOpposite := classABLinkRefA;
    classBRefABLinks.eOpposite := classABLinkRefB;
    classABLinkRefA.eOpposite := classARefABLinks;
    classABLinkRefB.eOpposite := classBRefABLinks;
    
    classARefABLinks.containment := true;
    
  }
  
}

operation ecore::EClass createRef(type : ecore::EClass, many : Boolean) : ecore::EReference {
  
  var ref := new ecore::EReference;
  ref.name := type.name.firstToLowerCase();
  if (many) {ref.name := ref.name + 's';}
  self.eStructuralFeatures.add(ref);
  ref.eType := type;
  if (many) {ref.upperBound := -1;}
  return ref;
}
</description>
		<content:encoded><![CDATA[<p>Thanks. I actually tried it with the built-in GMF ECore visual editor. The EWL wizard that creates the first type of association class looks like this:</p>
<p>wizard CreateAssociationClassCase1 {</p>
<p>  guard : self.isKindOf(Collection) and<br />
    self.size() = 2 and self.forAll(s|s.isTypeOf(ecore::EClass))</p>
<p>  title : &#8216;Create association &#8216; + self.at(0).name + self.at(1).name + &#8216;Link&#8217;</p>
<p>  do {</p>
<p>    var classA := self.at(0);<br />
    var classB := self.at(1);<br />
    var classABLink := new ecore::EClass;</p>
<p>    classABLink.name := classA.name + classB.name + &#8216;Link&#8217;;<br />
    classA.ePackage.eClassifiers.add(classABLink);</p>
<p>    var classARefB := classA.createRef(classB, true);<br />
    var classBRefA := classB.createRef(classA, true);</p>
<p>    var classABLinkRefA := classABLink.createRef(classA, false);<br />
    var classABLinkRefB := classABLink.createRef(classB, false);</p>
<p>    var classARefABLinks := classA.createRef(classABLink, true);<br />
    var classBRefABLinks := classB.createRef(classABLink, true);</p>
<p>    classARefABLinks.eOpposite := classABLinkRefA;<br />
    classBRefABLinks.eOpposite := classABLinkRefB;<br />
    classABLinkRefA.eOpposite := classARefABLinks;<br />
    classABLinkRefB.eOpposite := classBRefABLinks;</p>
<p>    classARefABLinks.containment := true;</p>
<p>  }</p>
<p>}</p>
<p>operation ecore::EClass createRef(type : ecore::EClass, many : Boolean) : ecore::EReference {</p>
<p>  var ref := new ecore::EReference;<br />
  ref.name := type.name.firstToLowerCase();<br />
  if (many) {ref.name := ref.name + &#8217;s&#8217;;}<br />
  self.eStructuralFeatures.add(ref);<br />
  ref.eType := type;<br />
  if (many) {ref.upperBound := -1;}<br />
  return ref;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model Refactoring in GMF editors by Ed Merks</title>
		<link>http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-8</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Fri, 18 Jan 2008 19:52:35 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/18/model-refactoring-in-gmf-based-editors-with-ewl/#comment-8</guid>
		<description>Cool! I could imagine it being used to create an "association" based on a pattern like the one I described in http://ed-merks.blogspot.com/2008/01/modeling-associations-with-ecore.html .I guess it could work in either the Ecore Tools graphical editor or even in the sample one...</description>
		<content:encoded><![CDATA[<p>Cool! I could imagine it being used to create an &#8220;association&#8221; based on a pattern like the one I described in <a href="http://ed-merks.blogspot.com/2008/01/modeling-associations-with-ecore.html" rel="nofollow">http://ed-merks.blogspot.com/2008/01/modeling-associations-with-ecore.html</a> .I guess it could work in either the Ecore Tools graphical editor or even in the sample one&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Using HUTN for T2M transformation by Louis Rose</title>
		<link>http://epsilonblog.wordpress.com/2008/01/16/using-hutn-for-t2m-transformation/#comment-7</link>
		<dc:creator>Louis Rose</dc:creator>
		<pubDate>Fri, 18 Jan 2008 10:09:35 +0000</pubDate>
		<guid isPermaLink="false">http://epsilonblog.wordpress.com/2008/01/16/using-hutn-for-t2m-transformation/#comment-7</guid>
		<description>In my reply above, I think I misunderstood your question. My apologies!

I was under the impression that the UML2 tooling was an orthogonal modelling technology.

In fact, it is possible to use our HUTN tooling with the UML2 metamodel. Some example HUTN source:

&lt;code&gt;@Spec {
&#160;&#160;MetaModel "uml" {
&#160;&#160;&#160;&#160;nsUri = "http://www.eclipse.org/uml2/2.1.0/UML"
&#160;&#160;}
}

Packages {
&#160;&#160;Package "Pk" {
&#160;&#160;&#160;&#160;name: "package"
&#160;&#160;&#160;&#160;nestedPackage: Profile "Pr" { name: "profile" }
&#160;&#160;&#160;&#160;ownedType: Class "C" { name: "class" }	
&#160;&#160;}
}&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>In my reply above, I think I misunderstood your question. My apologies!</p>
<p>I was under the impression that the UML2 tooling was an orthogonal modelling technology.</p>
<p>In fact, it is possible to use our HUTN tooling with the UML2 metamodel. Some example HUTN source:</p>
<p><code>@Spec {<br />
&nbsp;&nbsp;MetaModel "uml" {<br />
&nbsp;&nbsp;&nbsp;&nbsp;nsUri = "http://www.eclipse.org/uml2/2.1.0/UML"<br />
&nbsp;&nbsp;}<br />
}</p>
<p>Packages {<br />
&nbsp;&nbsp;Package "Pk" {<br />
&nbsp;&nbsp;&nbsp;&nbsp;name: "package"<br />
&nbsp;&nbsp;&nbsp;&nbsp;nestedPackage: Profile "Pr" { name: "profile" }<br />
&nbsp;&nbsp;&nbsp;&nbsp;ownedType: Class "C" { name: "class" }<br />
&nbsp;&nbsp;}<br />
}</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
