Ejemplo n.º 1
0
        static private RuleFlags GetRuleFlags(RSResolvableValueData inValueData, RSLibrary inLibrary)
        {
            RuleFlags flags = 0;

            switch (inValueData.Mode)
            {
            case ResolvableValueMode.Query:
            {
                flags |= GetRuleFlags(inValueData.Query.Scope, inLibrary);
                flags |= GetRuleFlags(inLibrary.GetQuery(inValueData.Query.Id));
                if (inValueData.QueryArguments != null)
                {
                    foreach (var arg in inValueData.QueryArguments)
                    {
                        flags |= GetRuleFlags(arg, inLibrary);
                    }
                }
                break;
            }

            case ResolvableValueMode.Register:
            {
                flags |= RuleFlags.UsesRegisters;
                break;
            }
            }

            return(flags);
        }
Ejemplo n.º 2
0
        public virtual bool Visit(RSResolvableValueData ioResolvableValueData)
        {
            bool bChanged = false;

            switch (ioResolvableValueData.Mode)
            {
            case ResolvableValueMode.Value:
            {
                bChanged |= Visit(ref ioResolvableValueData.Value);
                break;
            }

            case ResolvableValueMode.Query:
            {
                bChanged |= Visit(ref ioResolvableValueData.Query, EntityScopedIdentifier.Type.Query);
                if (ioResolvableValueData.QueryArguments != null)
                {
                    for (int i = 0; i < ioResolvableValueData.QueryArguments.Length; ++i)
                    {
                        bChanged |= Visit(ref ioResolvableValueData.QueryArguments[i]);
                    }
                }
                break;
            }
            }

            return(bChanged);
        }
Ejemplo n.º 3
0
 public void DefaultInitialize()
 {
     Enabled = true;
     RSResolvableValueData.SetAsQuery(ref Query, new EntityScopedIdentifier(EntityScopeData.Self(), 0));
     Operator = CompareOperator.True;
     RSResolvableValueData.SetAsValue(ref Target, RSValue.Null);
     MultiQuerySubset = Subset.All;
 }
Ejemplo n.º 4
0
 public void CopyFrom(RSConditionData inCondition)
 {
     Enabled          = inCondition.Enabled;
     Query            = inCondition.Query?.Clone();
     Operator         = inCondition.Operator;
     Target           = inCondition.Target?.Clone();
     MultiQuerySubset = inCondition.MultiQuerySubset;
 }
Ejemplo n.º 5
0
        public virtual void Visit(RSResolvableValueData inResolvableValueData, TableLineRef inSourceRef)
        {
            switch (inResolvableValueData.Mode)
            {
            case ResolvableValueMode.Value:
            {
                Visit(inResolvableValueData.Value, inSourceRef);
                break;
            }

            case ResolvableValueMode.Query:
            {
                Visit(inResolvableValueData.Query, EntityScopedIdentifier.Type.Query, inSourceRef);
                if (inResolvableValueData.QueryArguments != null)
                {
                    for (int i = 0; i < inResolvableValueData.QueryArguments.Length; ++i)
                    {
                        Visit(inResolvableValueData.QueryArguments[i], inSourceRef);
                    }
                }
                break;
            }
            }
        }