chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Quintiq file version 2.0
#parent: #root
MethodOverride FindOrCreateSharedWithout (
  LibOpt_ScopeThin scope
) as LibOpt_ScopeShared
{
  TextBody:
  [*
    set := this.Set().BitAnd( scope.Mask().BitNot() );
    
    group_vector := this.GroupVectorRemove( scope );
    result := LibOpt_ScopeShared32::FindSet32( set, this.Type(), group_vector );
    
    if( isnull( result ) )
    {
      owner := select( this, ScopeSharedOnScope.ScopeThin, s, s <> scope );
      result := owner.ScopeSharedOwned( relnew,
                                        LibOpt_ScopeShared32,
                                        Set := set,
                                        Type := this.Type(),
                                        GroupVector := group_vector
                                        );
    
      traverse( this, ScopeSharedOnScope, ssos, ssos.ScopeThin() <> scope )
      {
        LibOpt_ScopeSharedOnScope::Create( ssos.ScopeThin(), ssos.Group(), result );
      }
    }
    
    return result;
  *]
}