Exeed Reference

Exeed (standing for Extended EMF Editor) is an extended version of the built-in tree-based reflective editor provided by EMF. The aim of Exeed is to enable developers to customize the appearance of the editor (labels and icons) by annotating Ecore metamodels. As a result, developers can enjoy the benefits of a customized editor for their models without needing to generate one and then customize it using Java.

The following example presents an annotated OO metamodel (in Emfatic):

package PersonHouseRelationship;

import "Houses";
import "Persons";

class PersonHouseRelationshipGroup {
  val PersonHouseRelationship[*] personHouseRelationships;
}

@exeed(label="return self.person.name + ' ' + self.type + ' ' + self.house.address;")
class PersonHouseRelationship {
  ref Persons.Person person;
  ref Houses.House house;
  attr PersonHouseRelationshipType type;
}

enum PersonHouseRelationshipType {
  Owns;
  Lets;
}


Exeed recognizes the following annotation details for different Ecore constructs:

EClass

  • label: EOL expression that returns the label of the instance.
  • referenceLabel: EOL expression that returns the label for a reference to an objec tof this EClass.
  • classIcon: the name of the icon of the instances that conform to the EClass.
  • icon: EOL expression that returns the icon of the instance. If specified, it overrides the classIcon annotation.
  • EEnumLiteral

  • label: EOL expression that returns the label of the enumeration literal.
  • EEnumLiteral

  • featureLabel: EOL expression that returns the label for the structural feature.