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); }
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); }
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; }
public void CopyFrom(RSConditionData inCondition) { Enabled = inCondition.Enabled; Query = inCondition.Query?.Clone(); Operator = inCondition.Operator; Target = inCondition.Target?.Clone(); MultiQuerySubset = inCondition.MultiQuerySubset; }
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; } } }