/// <summary> /// Avanza el iterador si aún quedan elementos por recorrer, situando su propiedad /// Current en el siguiente elemento /// </summary> /// <returns> /// Devuelve verdadero si se ha podido avanzar el iterador. Devuelve false si el iterador /// ha finalizado y no quedan más elementos por recorrer. En caso de que devuelva falso, /// el valor de la propiedad Current queda indefinido. /// </returns> public bool MoveNext() { bool moved = false; // Si current apunta a nulo, es que el iterador nunca se ha movido, // por tanto, podemos moverlo. if (current == null) { // Accemos que el iterador apunte al elemento a recorrer. this.current = this.element; // E indicamos que nos hemos movido moved = true; } // if return(moved); } // MoveNext
} // Current #endregion #region Constructores /// <summary> /// Crear un nuevo iterador sobre el elemento de la lista de /// comprobación que se le pasa como parámetro. /// </summary> /// <param name="item"> /// El elemento de la lista de comprobación que se desea recorrer /// mediante la creación del iterador. /// </param> /// <pre>item != null</pre> public IteradorItemtoBeChecked(ItemToBeChecked item) { this.element = item; } // IteradorItemtoBeChecked
} // MoveNext /// <summary> /// Devolvemos el iterador a su estado inicial /// </summary> public void Reset() { this.current = null; } // Reset
/// <summary> /// Método que devuelve una cadena resultado de imprimir en texto /// el item a ser comprobado que recibe como parámetro. /// </summary> /// <param name="item"> /// El elemento a ser comprobado que debe ser impreso. /// </param> /// <returns> /// La cadena resultante de imprimir en texto el elemento a ser comprobado /// recibido como parámetro /// </returns> /// <pre>item != null</pre> public abstract String visitChecklist(ItemToBeChecked item);
} // visitChecklist /// <summary> /// <see cref="ChecklistPrinter.visitChecklist(ItemToBeChecked)"/> /// </summary> public override string visitChecklist(ItemToBeChecked item) { return(generateTabs() + item.Texto + "\n"); }
static void Main(string[] args) { Checklist disenho = new Checklist("Aprobar diseño"); Checklist primerParcial = new Checklist("Primer Parcial"); Checklist segundoParcial = new Checklist("Segundo Parcial"); ItemToBeChecked pr00 = new ItemToBeChecked("Práctica 1.01"); ItemToBeChecked pr01 = new ItemToBeChecked("Práctica 1.02"); ItemToBeChecked pr02 = new ItemToBeChecked("Práctica 1.03"); ItemToBeChecked pr03 = new ItemToBeChecked("Práctica 1.04"); ItemToBeChecked pr04 = new ItemToBeChecked("Práctica 1.05"); ItemToBeChecked pr05 = new ItemToBeChecked("Práctica 1.06"); ItemToBeChecked pr06 = new ItemToBeChecked("Práctica 1.07"); ItemToBeChecked pool = new ItemToBeChecked("Practica 2.01"); ItemToBeChecked dominio = new ItemToBeChecked("Practica 2.02"); ItemToBeChecked persistencia = new ItemToBeChecked("Practica 2.03"); ItemToBeChecked lazyFetch = new ItemToBeChecked("Practica 2.04"); ItemToBeChecked servicio = new ItemToBeChecked("Practica 2.05"); primerParcial.Items.Add(pr00); primerParcial.Items.Add(pr01); primerParcial.Items.Add(pr02); primerParcial.Items.Add(pr03); primerParcial.Items.Add(pr04); primerParcial.Items.Add(pr05); primerParcial.Items.Add(pr06); segundoParcial.Items.Add(pool); segundoParcial.Items.Add(dominio); segundoParcial.Items.Add(persistencia); segundoParcial.Items.Add(lazyFetch); segundoParcial.Items.Add(servicio); disenho.Items.Add(primerParcial); disenho.Items.Add(segundoParcial); Console.Out.WriteLine("--------------------------------------"); Console.Out.WriteLine(" Antes de renombrar "); Console.Out.WriteLine("--------------------------------------"); String salidaSinPrefijo = disenho.acceptPrinter(new TabularChecklistPrinter()); Console.Out.WriteLine(salidaSinPrefijo); foreach (ChecklistElement ce in disenho) { ce.Texto = "[Done]" + ce.Texto; } Console.Out.WriteLine("--------------------------------------"); Console.Out.WriteLine(" Después de renombrar "); Console.Out.WriteLine("--------------------------------------"); String salidaConPrefijo = disenho.acceptPrinter(new TabularChecklistPrinter()); Console.Out.WriteLine(salidaConPrefijo); Console.Out.WriteLine("Pulse una tecla para continuar"); Console.In.ReadLine(); } // main