[xtend] renameOperation [message #531103] |
Mon, 03 May 2010 17:38 |
|
Hi,
In my previous thread rename class works fine, Now I started with rename Operation transformation on UML model. Which looks more complicated then rename class,
Following is my m2m code in xtend, The problem is commented in the source code.
import uml;
extension templates::helper;
uml::Model root(uml::Model model):
let classlist = model.eAllContents.typeSelect(Class).collect(e|e) :
let operationlist = newList() :
classlist.first().ownedOperation.forAll(o|collectOperations(o, classlist, operationlist)) ->
operationlist.forAll(o|renameOperation((String)o, classlist)) ->
model;
Boolean collectOperations(Operation o, List classlist, List operationlist) :
classlist.forAll(c|((Class)c).ownedOperation.exists(op|op.name == "op1"))
? (// operation found in all classes
// put method in list
operationlist.add(o.name) ->
dump("Added operation '"+o.name+"' to list")
)
: (
dump("Operation '"+o.name+"' exists not in all classes of list")
) ->
true;
// The problem with this renameOperation that xtend does not allow me use classList for owned Operation, How can I handle this
Boolean renameOperation(String o, List classlist) :
classList.ownedOperation.setName("myNewOperation")->
true;
Thanks in advance
|
|
|
|
Re: [xtend] renameOperation [message #531238 is a reply to message #531215] |
Tue, 04 May 2010 09:47 |
|
Thanks Christian, but now I am getting following errors:
When I used like this
Boolean renameOperation(String o, List[uml::Class] classlist) :
classList.ownedOperation.setName("myNewOperation")->
true;
xtend mark as an error : unknown vairable or enumeration litteral 'classlist'
and when I used like this error mark disappered
Boolean renameOperation(String o, List[uml::Class] classlist) :
List[uml::Class]classList.ownedOperation.setName("myNewOperation ")->
true;
but workflow is interupted with following error
0 INFO WorkflowRunner - ------------------------------------------------------------ --------------------------
15 INFO WorkflowRunner - EMF Modeling Workflow Engine 1.0.0, Build v201003150825
15 INFO WorkflowRunner - (c) 2005-2009 openarchitectureware.org and contributors
15 INFO WorkflowRunner - ------------------------------------------------------------ --------------------------
15 INFO WorkflowRunner - running workflow: C:/Workspace/m2m.renameOperation.transformation/src/renameOp eration_workflow.mwe
15 INFO WorkflowRunner -
1409 INFO CompositeComponent - XmiReader: file 'model/test.uml' => slot 'modelSlot'
1626 INFO CompositeComponent - DirectoryCleaner(dirCleaner): cleaning directory 'src-gen'
1626 INFO DirectoryCleaner - Cleaning C:\Workspace\m2m.renameOperation.transformation\src-gen
1626 INFO CompositeComponent - XtendComponent: executing 'm2m::renameOperation'
1843 ERROR AbstractExpressionsUsingWorkflowComponent - mismatched input 'classList' expecting ';' on line 29
org.eclipse.internal.xtend.xtend.parser.ParseException: mismatched input 'classList' expecting ';' on line 29
at org.eclipse.internal.xtend.xtend.parser.ParseFacade$3.handle Error(ParseFacade.java:104)
at org.eclipse.internal.xtend.xtend.parser.ParseFacade$2.report Error(ParseFacade.java:92)
at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedElemen t(BaseRecognizer.java:556)
at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken( BaseRecognizer.java:513)
at org.antlr.runtime.BaseRecognizer.mismatch(BaseRecognizer.jav a:119)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:9 9)
at org.eclipse.internal.xtend.xtend.parser.XtendParser.extensio n(XtendParser.java:1017)
at org.eclipse.internal.xtend.xtend.parser.XtendLocationAddingP arser.extension(XtendLocationAddingParser.java:46)
at org.eclipse.internal.xtend.xtend.parser.XtendParser.file(Xte ndParser.java:200)
at org.eclipse.internal.xtend.xtend.parser.XtendLocationAddingP arser.file(XtendLocationAddingParser.java:211)
at org.eclipse.internal.xtend.xtend.parser.ParseFacade.file(Par seFacade.java:70)
at org.eclipse.internal.xtend.xtend.parser.ParseFacade.file(Par seFacade.java:55)
at org.eclipse.internal.xtend.xtend.parser.ParseFacade.file(Par seFacade.java:50)
at org.eclipse.internal.xtend.xtend.XtendResourceParser.parse(X tendResourceParser.java:25)
at org.eclipse.xtend.expression.ResourceManagerDefaultImpl.load Resource(ResourceManagerDefaultImpl.java:70)
at org.eclipse.xtend.expression.ExecutionContextImpl.internalAl lExtensions(ExecutionContextImpl.java:320)
at org.eclipse.xtend.expression.ExecutionContextImpl.access$0(E xecutionContextImpl.java:304)
at org.eclipse.xtend.expression.ExecutionContextImpl$1.createNe w(ExecutionContextImpl.java:341)
at org.eclipse.xtend.expression.ExecutionContextImpl$1.createNe w(ExecutionContextImpl.java:1)
at org.eclipse.internal.xtend.util.Cache.get(Cache.java:26)
at org.eclipse.xtend.expression.ExecutionContextImpl.getExtensi onForTypes(ExecutionContextImpl.java:346)
at org.eclipse.xtend.expression.ExecutionContextImpl.getExtensi on(ExecutionContextImpl.java:355)
at org.eclipse.internal.xtend.expression.ast.OperationCall.eval uateInternal(OperationCall.java:72)
at org.eclipse.internal.xtend.expression.ast.Expression.evaluat e(Expression.java:50)
at org.eclipse.xtend.expression.ExpressionFacade.evaluate(Expre ssionFacade.java:56)
at org.eclipse.xtend.expression.ExpressionFacade.evaluate(Expre ssionFacade.java:45)
at org.eclipse.xtend.XtendComponent.invokeInternal2(XtendCompon ent.java:190)
at org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflo wComponent.invokeInternal(AbstractExpressionsUsingWorkflowCo mponent.java:238)
at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invok e(AbstractWorkflowComponent.java:129)
at org.eclipse.emf.mwe.core.container.CompositeComponent.intern alInvoke(CompositeComponent.java:101)
at org.eclipse.emf.mwe.core.container.CompositeComponent.invoke (CompositeComponent.java:86)
at org.eclipse.emf.mwe.core.WorkflowRunner.executeWorkflow(Work flowRunner.java:408)
at org.eclipse.emf.mwe.core.WorkflowRunner.run(WorkflowRunner.j ava:293)
at org.eclipse.emf.mwe.core.WorkflowRunner.main(WorkflowRunner. java:241)
1843 ERROR AbstractExpressionsUsingWorkflowComponent - Error in Component of type org.eclipse.xtend.XtendComponent:
EvaluationException : mismatched input 'classList' expecting ';' on line 29
nofile[0,20] on line 1 'root(modelSlot)'
1858 ERROR WorkflowRunner - Workflow interrupted. Reason: mismatched input 'classList' expecting ';' on line 29
1858 ERROR WorkflowRunner - [ERROR]: mismatched input 'classList' expecting ';' on line 29(Element: root(modelSlot); Reported by: XtendComponent: executing 'm2m::renameOperation')
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04860 seconds