Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ve-dev] childFeature API Change


Hi,

Just to let everyone know there is an API change in the override/ecore files. When you pick up today's integration build (built later today) you will need to make a change in your override or ecore (that are used with the overrides) files. It is a simple search and replace:

childFeature="true"

replace with:

linktype="CHILD"


The reason this was changed was because we need to add another type of link (feature) so we turned it into an enumeration. The values of the enumeration are:

NORMAL: This is the default if not set. This is a normal link. This means that if the source of the link is deleted, then the target of the link will be deleted if the target has no other links pointing to it, and the target is not on the free-form.

CHILD: This is a child link. This means that if the source is deleted, the target will be deleted if the target has no other CHILD links pointing to it, and the target is not on the free-form. This is slightly different than normal in that implies a stronger link. Normal would not go away if there were any links, while child will go away unless it is a child of something else. Codegen/parsing has a use for this kind of link too. It is the same as before when we had childFeature="true".

DEPENDENCY: This is strange one in that it is processed from target to source instead of source to target. It means that the source has a dependency on the target. So if the target is deleted, the source will be deleted except if the source has any child links to it or it is on the free-form. This was added for what we call intermediate objects. For example:  

   Object1-->Intermediate--d->Object2

The link from object1 is normal, and the link from intermediate is dependency. Now if Object1 is deleted, Intermediate will be deleted because there are no other references to it. Now if Object2 is deleted Intermediate will be deleted because there is a dependency link from Intermediate to Object2 and there are no child references to Intermediate.

The advantage of this is that we don't have something dangling that normally would act as a bridge between two objects.

Thanks,
Rich

Back to the top