コード例 #1
0
        public override void ModulateBy(GremlinKeyword.Order order)
        {
            object key;

            if (Scope == GremlinKeyword.Scope.global)
            {
                key = GraphTraversal2.__();
            }
            else
            {
                key = "";
            }
            switch (order)
            {
            case GremlinKeyword.Order.Incr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(key, new IncrOrder()));
                break;

            case GremlinKeyword.Order.Decr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(key, new DecrOrder()));
                break;

            case GremlinKeyword.Order.Shuffle:
                ByModulatingMap.Add(new Tuple <object, IComparer>(key, new ShuffleOrder()));
                break;
            }
        }
コード例 #2
0
 public override void ModulateBy()
 {
     if (Scope == GremlinKeyword.Scope.global)
     {
         ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__(), new IncrOrder()));
     }
     else
     {
         ByModulatingMap.Add(new Tuple <object, IComparer>("", new IncrOrder()));
     }
 }
コード例 #3
0
        public override void ModulateBy(string key, GremlinKeyword.Order order)
        {
            switch (order)
            {
            case GremlinKeyword.Order.Incr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__().Values(key), new IncrOrder()));
                break;

            case GremlinKeyword.Order.Decr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__().Values(key), new DecrOrder()));
                break;

            case GremlinKeyword.Order.Shuffle:
                ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__().Values(key), new ShuffleOrder()));
                break;
            }
        }
コード例 #4
0
        public override void ModulateBy(GremlinKeyword.Column column, GremlinKeyword.Order order)
        {
            switch (order)
            {
            case GremlinKeyword.Order.Incr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(column, new IncrOrder()));
                break;

            case GremlinKeyword.Order.Decr:
                ByModulatingMap.Add(new Tuple <object, IComparer>(column, new DecrOrder()));
                break;

            case GremlinKeyword.Order.Shuffle:
                ByModulatingMap.Add(new Tuple <object, IComparer>(column, new ShuffleOrder()));
                break;
            }
        }
コード例 #5
0
        internal override GremlinToSqlContext GetContext()
        {
            GremlinToSqlContext inputContext = GetInputContext();

            if (inputContext.PivotVariable == null)
            {
                throw new QueryCompilationException("The PivotVariable can't be null.");
            }

            if (ByModulatingMap.Count == 0)
            {
                if (Scope == GremlinKeyword.Scope.global)
                {
                    ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__(), new IncrOrder()));
                }
                else
                {
                    ByModulatingMap.Add(new Tuple <object, IComparer>("", new IncrOrder()));
                }
            }

            var newByModulatingMap = new List <Tuple <object, IComparer> >();

            foreach (var pair in ByModulatingMap)
            {
                if (pair.Item1 is GraphTraversal2)
                {
                    ((GraphTraversal2)pair.Item1).GetStartOp().InheritedVariableFromParent(inputContext);
                    newByModulatingMap.Add(new Tuple <object, IComparer>(((GraphTraversal2)pair.Item1).GetEndOp().GetContext(), pair.Item2));
                }
                else if (pair.Item1 is GremlinKeyword.Column || pair.Item1 == "")
                {
                    newByModulatingMap.Add(new Tuple <object, IComparer>(pair.Item1, pair.Item2));
                }
                else
                {
                    throw new ArgumentException();
                }
            }

            inputContext.PivotVariable.Order(inputContext, newByModulatingMap, Scope);

            return(inputContext);
        }
コード例 #6
0
 public override void ModulateBy(GremlinKeyword.Column column, IComparer comparer)
 {
     ByModulatingMap.Add(new Tuple <object, IComparer>(column, comparer));
 }
コード例 #7
0
 public override void ModulateBy(GremlinKeyword.Column column)
 {
     ByModulatingMap.Add(new Tuple <object, IComparer>(column, new IncrOrder()));
 }
コード例 #8
0
 public override void ModulateBy(GraphTraversal2 traversal, IComparer comparer)
 {
     ByModulatingMap.Add(new Tuple <object, IComparer>(traversal, comparer));
 }
コード例 #9
0
 public override void ModulateBy(GraphTraversal2 traversal)
 {
     ByModulatingMap.Add(new Tuple <object, IComparer>(traversal, new IncrOrder()));
 }
コード例 #10
0
 public override void ModulateBy(string key, IComparer comparer)
 {
     ByModulatingMap.Add(new Tuple <object, IComparer>(GraphTraversal2.__().Values(key), comparer));
 }