Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » XText 2.4.1 DomainmodelJvmModelInferrer
XText 2.4.1 DomainmodelJvmModelInferrer [message #1049231] Thu, 25 April 2013 14:39 Go to next message
michael m is currently offline michael m
Messages: 17
Registered: March 2013
Junior Member
Hi,

i have two questions. One is about XConstructorCall and the other one about Associations/Linking.

If i change the Operation method in the DomainmodelJvmModelInferrer to this:
Operation : {
  members += f.toMethod(f.name, f.type ?: inferredType) [
    documentation = f.documentation
    for (p : f.params) {
      parameters += p.toParameter(p.name, p.parameterType)
    }
    body = [
      if (f.body instanceof XBlockExpression) {
        val block = f.body as XBlockExpression
        for (exp : block.expressions) {
          if (exp instanceof XAssignment) {
            val assign = exp as XAssignment
	    it.append(assign.concreteSyntaxFeatureName)
	    it.append(" = ")
	    if (assign.value instanceof XConstructorCall) {
              val xCon = assign.value as XConstructorCall
              // xCon.constructor
            }
	    it.append(";")
          }
        }
      }
    ]
  ]
}


And given this model:
package com.domain.model {
  entity Test {
    id: String
    op setAutoId(): void {
      id = new String("Name");
    }
  }
}


Then how can i generate/append the content of "xCon.constructor"?
It basically contains just a URI Fragment (something like: JvmConstructor: (eProxyURI: platform:/resource/DomainModel/src/com/domain/model/test.dmodel#xtextLink_::0.1.0.1.0.2.1.3.0.0.7::0::/3)).
Which means that i have to resolve it somehow to get the JvmType?

The next point is that if i try to ctrl+click on id (where the new string is assigned) i don't jump to the definition. Which means i have to associate the id in XAssignment manually in the inferrer?

Thanks,
Michael
Re: XText 2.4.1 DomainmodelJvmModelInferrer [message #1049699 is a reply to message #1049231] Fri, 26 April 2013 07:05 Go to previous message
michael m is currently offline michael m
Messages: 17
Registered: March 2013
Junior Member
To answer my own question about association.
I had to inject the IJvmModelAssociator
@Inject	private IJvmModelAssociator associator;

and call it right before the body part is created
associator.associateLogicalContainer(f.body, it);


I still have no clue how to append a XConstructorCall Sad

*edit*
Just realized that it actually solved all problems Smile

[Updated on: Fri, 26 April 2013 07:18]

Report message to a moderator

Previous Topic:Backslashes as line ending characters
Next Topic:Help needed in Xtext
Goto Forum:
  


Current Time: Sun Oct 26 07:08:23 GMT 2014

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

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