Quintiq file version 2.0
|
#parent: #root
|
Method RemoveDeclarative (const Type type, NamedValueTree nvt, NamedValue nv)
|
{
|
Description:
|
[*
|
Exporting a type to NamedValueTree also exports values that cannot be set: KPIs, Constraints and declarative attributes.
|
This method will remove these attributes.
|
*]
|
TextBody:
|
[*
|
traverse( nv.Children(), Elements, child )
|
{
|
// Find if it is a relation node
|
rel := constnull( MdlModeledRelSideElement );
|
if( child.GetValue().istype( Key ) )
|
{
|
rel := select( LibOpt_Utility::GetTypeAncestors( type ), Elements.MdlRelSideElements.astype( MdlModeledRelSideElement ), r, r.Name() = child.Name() );
|
}
|
|
if( isnull( rel ) )
|
{
|
// This needs to be an attribute
|
att := select( LibOpt_Utility::GetTypeAncestors( type ), Elements.MdlAttrElements.astype( MdlModeledAttrElement ), att, att.Name() = child.Name() );
|
|
if( isnull( att ) or att.IsDerived() )
|
{
|
child.Delete( true );
|
}
|
}
|
else
|
{
|
this.RemoveDeclarative( rel.OtherSide().Type(), nvt, child );
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|