Exemple #1
0
 private void ScanDynatableAccessors(QueryNode queryNode, SelectorResolver resolver)
 {
     if (queryNode is DataFilter || queryNode is DataAggregator || queryNode is DataSorter)
         ScanDynatableAccessors(queryNode.ChildNodes[0], resolver);
     else if (queryNode is DataJoin || queryNode is DetailJoin)
     {
         ScanDynatableAccessors(queryNode.ChildNodes[0], resolver);
         ScanDynatableAccessors(queryNode.ChildNodes[1], resolver);
     }
     else if (queryNode is DynatableAccessor)
     {
         DynatableAccessor accessor = (DynatableAccessor)queryNode;
         object[] terms = Lisp.GetTerms(accessor.AccessPredicate);
         foreach (object o1 in resolver.Resultsets)
             foreach(object o2 in terms)
                 if (o1 == o2)
                 {
                     accessor.CopyContext = true;
                     break;
                 }
     }
 }
Exemple #2
0
 public void Remove(QueryNode value)
 {
     List.Remove(value);
 }
Exemple #3
0
 public bool Contains(QueryNode value)
 {
     return (List.Contains(value));
 }
Exemple #4
0
 public int IndexOf(QueryNode value)
 {
     return (List.IndexOf(value));
 }
Exemple #5
0
 public void Insert(int index, QueryNode value)
 {
     List.Insert(index, value);
 }
Exemple #6
0
 public int Add(QueryNode value)
 {
     return (List.Add(value));
 }
Exemple #7
0
 public QueryNodeCollection(QueryNode container)
 {
     _container = container;
 }
Exemple #8
0
 private static object ProcessNodeList(QueryNode.LispProcessingContext owner, XmlNodeList nodeList)
 {
     if (nodeList.Count == 0)
         return null;
     else if (nodeList.Count == 1)
     {
         XmlNode node = nodeList.Item(0);
         if (node is XmlElement)
             if (node.ChildNodes.Count == 1 && node.FirstChild is XmlText)
                 return XmlDataAccessor.Convert(XmlDataAccessor.GetNodeType(node,
                     XmlDataAccessor.GetTypeManager(owner.Node)), node);
             else
                 return node;
         else
             return node.Value;
     }
     return nodeList;
 }
Exemple #9
0
 public LispProcessingContext(QueryNode node, Resultset[] src, QueryContext queryContext, Object[] parameters)
     : base(src)
 {
     _node = node;
     _parameters = parameters;
     _queryContext = queryContext;
     _executive = queryContext.CreateExecutive(this);
 }
Exemple #10
0
 public LispProcessingContext(QueryNode node, Resultset src, QueryContext queryContext, Object[] parameters)
     : this(node, new Resultset[] { src }, queryContext, parameters)
 {
 }