Example #1
0
            public override bool Equals(object obj)
            {
                ParameterChooser c = obj as ParameterChooser;

                if (c == null)
                {
                    return(false);
                }
                return(planIndex == c.planIndex && resultIndex == c.resultIndex);
            }
Example #2
0
 /// <summary>
 /// Checks that the fparameterChoosers mapping is consistent
 /// with the result tuples of the parent plans and the
 /// parameters of the transformer.
 /// </summary>
 public void RepOk()
 {
     for (int i = 0; i < parameterChoosers.Length; i++)
     {
         ParameterChooser c = parameterChoosers[i];
         Util.Assert(c.planIndex >= 0 && c.planIndex < parentPlans.Length);
         Util.Assert(c.resultIndex >= 0 &&
                     c.resultIndex < parentPlans[c.planIndex].transformer.TupleTypes.Length);
         Util.Assert(parentPlans[c.planIndex].transformer.TupleTypes[c.resultIndex]
                     .Equals(transformer.ParameterTypes[i]));
     }
 }
Example #3
0
        /// <summary>
        /// Creates a Plan.
        /// </summary>
        /// <param name="transfomer">The state transformer that this plan represents.</param>
        /// <param name="parentPlans">The parent plans for this plan.</param>
        /// <param name="parameterChoosers">The parameter choosers for the parent plans.</param>
        /// <param name="resultTypes">The types (and number of) results that executing this plan yields.</param>
        public Plan(Transformer transfomer, Plan[] parentPlans, ParameterChooser[] parameterChoosers)
        {

            this.uniqueId = uniqueIdCounter++;
            this.transformer = transfomer;
            this.parentPlans = parentPlans;

            this.parameterChoosers = parameterChoosers;
            this.activeTupleElements = transformer.DefaultActiveTupleTypes;

            this.resultElementProperties = new ResultElementExecutionProperties[this.activeTupleElements.Length];
            for (int i = 0; i < this.resultElementProperties.Length; i++)
                this.resultElementProperties[i] = new ResultElementExecutionProperties();

            this.treenodes = 1;
            foreach (Plan p in parentPlans)
                this.treenodes += p.treenodes;
        }