Model Entityrelationshipmetamodel

This model description is not a real EMF artifact. It was generated by the
org.eclipse.emf.examples.generator.validator plug-in to illustrate how EMF's
code generator can be extended.
This can be disabled with -vmargs -Dorg.eclipse.emf.examples.generator.validator=false.

Package entityrelationshipmetamodel <http://www.example.org/entityrelationshipmetamodel>

  Class Schema
    Attribute isMinMax : EBoolean
    Reference node_schema : Node<<0..*>>
    Reference link_schema : Link<<0..*>>
    Attribute isChen : EBoolean

  Class Node
    Reference schema : Schema<<1..1>>

  Class Element -> Node
    Attribute name : EString
    Reference subattributelinks : AttributeLink<<0..*>>

  Class Inheritance -> Node
    Attribute disjointness : DisjointnessType
    Reference superclassglink : InheritanceGL<<1..1>>
    Reference subclassslinks : InheritanceSL<<2..*>>

  Class Category -> Node
    Reference supercategoryglinks : CategoryGL<<2..*>>
    Reference subcategoryslink : CategorySL<<1..1>>

  Class Entity -> Element
    Attribute isWeak : EBoolean
    Reference subclassglinks : InheritanceGL<<0..*>>
    Reference superclassslinks : InheritanceSL<<0..*>>
    Reference subcategoryglinks : CategoryGL<<0..*>>
    Reference supercategoryslinks : CategorySL<<0..*>>
    Reference directsubclasslinks : DirectInheritanceLink<<0..*>>
    Reference directsuperclasslinks : DirectInheritanceLink<<0..*>>
    Reference relationshiplinks : RelationshipLink<<0..*>>

  Class Relationship -> Element
    Attribute isIdentifier : EBoolean
    Reference relationshiplinks : RelationshipLink<<2..*>>

  Class Attribute -> Element
    Attribute type : AttributeType
    Attribute dataType : DataType
    Attribute size : EFloat
    Attribute isNull : EBoolean
    Attribute isUnique : EBoolean
    Attribute check : EString
    Attribute comment : EString
    Attribute cardinality : EInt
    Reference sourcelink : AttributeLink<<1..1>>

  Class Link
    Reference schema : Schema<<1..1>>

  Class GeneralizationLink -> Link
    Attribute role : EString

  Class InheritanceGL -> GeneralizationLink
    Attribute completeness : CompletenessType
    Reference target : Inheritance<<1..1>>
    Reference source : Entity<<1..1>>

  Class SpecializationLink -> Link
    Attribute role : EString

  Class InheritanceSL -> SpecializationLink
    Reference target : Inheritance<<1..1>>
    Reference source : Entity<<1..1>>

  Class CategoryGL -> GeneralizationLink
    Reference target : Category<<1..1>>
    Reference source : Entity<<1..1>>

  Class CategorySL -> SpecializationLink
    Attribute completeness : CompletenessType
    Reference target : Category<<1..1>>
    Reference source : Entity<<1..1>>

  Class DirectInheritanceLink -> Link
    Attribute role : EString
    Reference source : Entity<<1..1>>
    Reference target : Entity<<1..1>>

  Class RelationshipLink -> Link
    Attribute role : EString
    Attribute isIdentifier : EBoolean
    Reference target : Relationship<<1..1>>
    Reference source : Entity<<1..1>>
    Reference notations : Notation<<1..*>>

  Class ChenLink -> Notation
    Attribute participation : CompletenessType
    Attribute cardinality : CardinalityType

  Class MinMaxLink -> Notation
    Attribute lowerBound : EInt
    Attribute upperBound : EInt

  Class AttributeLink -> Link
    Reference target : Attribute<<1..1>>
    Reference source : Element<<1..1>>

  Class Notation
    Reference relationshiplink : RelationshipLink<<1..1>>

  Enum DisjointnessType
    Literal OVERLAP = 0
    Literal DISJOINT = 1

  Enum CardinalityType
    Literal ONE = 0
    Literal MANY = 1

  Enum AttributeType
    Literal COMMON = 0
    Literal DERIVED = 1
    Literal IDENTIFIER = 2
    Literal MULTIVALUED = 3
    Literal DISCRIMINATOR = 4

  Enum CompletenessType
    Literal PARTIAL = 0
    Literal TOTAL = 1

  Enum DataType
    Literal STRING = 0
    Literal BOOLEAN = 1
    Literal TIMESTAMP = 2
    Literal FLOAT = 3
    Literal INTEGER = 4
    Literal CLOB = 5
    Literal BLOB = 6
