コード例 #1
0
        public virtual bool Visit(ref NestedValue ioNestedValue)
        {
            bool bChanged = false;

            switch (ioNestedValue.Mode)
            {
            case ResolvableValueMode.Value:
            {
                RSValue val = ioNestedValue.Value;
                if (Visit(ref val))
                {
                    bChanged      = true;
                    ioNestedValue = NestedValue.FromValue(val);
                }
                break;
            }

            case ResolvableValueMode.Query:
            {
                EntityScopedIdentifier query = ioNestedValue.Query;
                if (Visit(ref query, EntityScopedIdentifier.Type.Query))
                {
                    bChanged      = true;
                    ioNestedValue = NestedValue.FromQuery(query);
                }
                break;
            }
            }

            return(bChanged);
        }
コード例 #2
0
        public void DefaultInitialize()
        {
            Enabled = true;

            Action    = new EntityScopedIdentifier(EntityScopeData.Self(), 0);
            Arguments = null;
        }
コード例 #3
0
 public void CopyFrom(RSResolvableValueData inValue)
 {
     Mode           = inValue.Mode;
     Value          = inValue.Value;
     Query          = inValue.Query;
     QueryArguments = CloneUtils.Clone(inValue.QueryArguments);
     Register       = inValue.Register;
 }
コード例 #4
0
ファイル: NestedValue.cs プロジェクト: BeauPrime/RuleScript
 static public NestedValue FromQuery(EntityScopedIdentifier inQuery)
 {
     return(new NestedValue()
     {
         m_Mode = ResolvableValueMode.Query,
         m_Query = inQuery
     });
 }
コード例 #5
0
ファイル: TableUtils.cs プロジェクト: BeauPrime/RuleScript
            public override void Visit(EntityScopedIdentifier inScopedIdentifier, EntityScopedIdentifier.Type inType, TableLineRef inSourceRef)
            {
                if (inType == EntityScopedIdentifier.Type.Action)
                {
                    if (inScopedIdentifier.Id == m_ActionId)
                    {
                        AddRef(inSourceRef);
                    }
                }

                base.Visit(inScopedIdentifier, inType, inSourceRef);
            }
コード例 #6
0
        public virtual bool Visit(ref EntityScopedIdentifier ioScopedIdentifier, EntityScopedIdentifier.Type inType)
        {
            EntityScopeData scope = ioScopedIdentifier.Scope;

            if (Visit(ref scope))
            {
                ioScopedIdentifier = new EntityScopedIdentifier(scope, ioScopedIdentifier.Id);
                return(true);
            }

            return(false);
        }
コード例 #7
0
        static public void SetAsQuery(ref RSResolvableValueData ioValue, EntityScopedIdentifier inQuery)
        {
            if (ioValue == null)
            {
                ioValue = new RSResolvableValueData();
            }

            ioValue.Mode           = ResolvableValueMode.Query;
            ioValue.Value          = RSValue.Null;
            ioValue.Query          = inQuery;
            ioValue.QueryArguments = null;
            ioValue.Register       = RegisterIndex.Invalid;
        }
コード例 #8
0
 public virtual void Visit(EntityScopedIdentifier inScopedIdentifier, EntityScopedIdentifier.Type inType, TableLineRef inSourceRef)
 {
     Visit(inScopedIdentifier.Scope, inSourceRef);
 }
コード例 #9
0
 public void CopyFrom(RSActionData inAction)
 {
     Enabled   = inAction.Enabled;
     Action    = inAction.Action;
     Arguments = CloneUtils.DeepClone(inAction.Arguments);
 }