Skip to main content



      Home
Home » Modeling » TMF (Xtext) » What'S EStructucalFeature and how to convert enum grammar defintions to it?
What'S EStructucalFeature and how to convert enum grammar defintions to it? [message #1836067] Sat, 19 December 2020 10:41 Go to next message
Eclipse UserFriend
Hi there,

today, I have the issue that some existing code accepts grammar definitions that belong to type EStructuralFeature only (see filter below).

Can someone please explain me what that actually is and how to define a grammar type to fit that definition?

For instance, I created an enum property consisting of the three values and would like to include it in the generated code later:

enum mode:
off |
on |
paused
;

In some other files/classes it appears that all grammar definitions get filtered before the actual code generation (xtend to java)

... source.eClass.getEAllContainments.filter(EStructuralFeature f | ... ) ...

and it appears that my mode definition is not of type EStructuralFeature. Also, please notice that I'm not allowed to change that function here that much. The only idea I could think of is adding that enum type as another parameter..... what Etype is enum?

Or, convert enum to an EStructuralFeature. How can I achieve that?

Re: What'S EStructucalFeature and how to convert enum grammar defintions to it? [message #1836074 is a reply to message #1836067] Sat, 19 December 2020 13:19 Go to previous message
Eclipse UserFriend
Hi

Your code most certainly is of type EStructuralFeature. In the jargon you have confused metalevels. Your grammar uses an EClassifier(EClass/EDatasType/...) for each of your types, and an EStructiralFeature(EAttribute/EReferemce) for each of the properties/features of those types. Thus in Java your code is (meta-)modelled by Java's Class and Java's Field classes. Your filter is iterating all the contrainment features, which are necessarily EStructuralFeature.

You might want to study a UML or Ecore (meta)modeling tutorial. In UML there are Class and Property whereas in Ecore there are EClass and EStructuralFeature. The names differ but the principles are very similar.

An EEnum is an EClassifier; a type. It cannot be converted to an EStructuralFeature; a relationship.

Regards

Ed Willink
Previous Topic:grammar to permit zipfiles in a string
Next Topic:ID and Fully Qualified name problem
Goto Forum:
  


Current Time: Mon Jul 07 22:48:11 EDT 2025

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

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

Back to the top