Quintiq file version 2.0
|
#parent: #root
|
StaticMethod HasEmptySet (LibDMF_SetTypes setTypes_i, output Strings feedbacks_o) remote as Boolean
|
{
|
Description: 'Checks if the input set types have empty set relations'
|
TextBody:
|
[*
|
// Timothy Guan Jul-7-2015 (created)
|
// Assumption: Only a single channel is selected at any time
|
|
value := true;
|
|
// We need to store this to calculate some stuff
|
size := counter( setTypes_i, Elements.Set, set, true );
|
isSetOwner := size > 0;
|
|
if( isSetOwner )
|
{
|
// Translation variables - We need only care about the first element
|
setTypeFirst := setTypes_i.Element( 0 );
|
setTypeName := setTypeFirst.Name();
|
channelName := setTypeFirst.SystemOnChannel().ChannelName();
|
|
// Retrieve system on channel instance - GetTranslation
|
ccr := setTypeFirst.GetCommunicationChannelRoot();
|
|
// 4 possible cases (11, 1N, N1, NN)
|
if( setTypes_i.Size() = 1 )
|
{
|
if( size = 1 )
|
{
|
// Need to set here, will return null if there is a set type that has no sets
|
setName := select( setTypeFirst, Set, set, true ).Name();
|
|
value := LibDMF_Util::CollectFeedback( ccr.GetTranslation( "DM_SetType_CanDelete_ViolateHasEmptySet_11", setTypeName, setName, channelName ),
|
feedbacks_o );
|
}
|
else
|
{
|
value := LibDMF_Util::CollectFeedback( ccr.GetTranslation( "DM_SetType_CanDelete_ViolateHasEmptySet_1N", setTypeName, channelName ),
|
feedbacks_o );
|
}
|
}
|
else
|
{
|
// N1 and NN cases share the same feedback message
|
value := LibDMF_Util::CollectFeedback( ccr.GetTranslation( "DM_SetType_CanDelete_ViolateHasEmptySet_NX", channelName ),
|
feedbacks_o );
|
}
|
}
|
|
return value;
|
*]
|
}
|