Added tagged values to attributes based on the class' tagged values
No edit summary
No edit summary
Line 18: Line 18:
  )
  )
  [[Category:Tagged Values]]
  [[Category:Tagged Values]]
  [[Category:Advanced]]
  [[Category:Advanced]]

Revision as of 06:19, 7 September 2023

This EAL code will add the tagged value "PrimaryKey" to the attribute on the class that matches the class' primary key (which itself is stored as a tagged value).

TaggedValue.allInstances->
 select(tv|tv.Tag='Eco.PrimaryKey')->
   collect(tv | tv.ModelElement->safeCast(Class).Feature->filterOnType(Attribute)->select(a|a.TaggedValue->select(atv|(atv.Tag='Eco.ColumnName') and (atv.Value=tv.Value) )->notEmpty)->
     collect(pka | 
       if pka.TaggedValue->select(atv| atv.Tag='Eco.ColumnName')->isEmpty then
         let pktv = TaggedValue.Create in
         (
           pktv.Tag := 'PrimaryKey';
           pktv.Value := 'true';
           pka.TaggedValue.add(pktv)
         );
         true
       else
         false
       endif
     )
)
This page was edited 132 days ago on 01/09/2024. What links here