package tcra.exercises;

import java.util.*;
import tcra.math.*;
import tcra.exercises.resolve_one_way_list_private.*;

public class ResolveOneWayListExercise extends TCRAExercise
{
   public ResolveOneWayListExercise()
   {
      super("<html>Concept One_Way_List_Template( type Integer;"+
            " eval Initial_Capacity: Integer );<br>"+
            "uses Std_Integer_Fac, String_Theory;<br><br>"+
            "Family List_Position is modeled by Cart_Prod Prec,"+
            " Rem: Str(Entry);<br>"+
            "end;<br>"+
            "exemplar P;<br>"+
            "initialization ensures P.Prec = empty_string"+
            " and P.Rem = empty_string;<br>");
      
      contracts = new Vector<MethodContract>();
      contracts.add(new ResolveOneWayList_AdvanceContract());
      contracts.add(new ResolveOneWayList_ResetContract());
      contracts.add(new ResolveOneWayList_LengthOfRemContract());
      contracts.add(new ResolveOneWayList_InsertContract());
      contracts.add(new ResolveOneWayList_RemoveContract());
      contracts.add(new ResolveOneWayList_AdvanceToEndContract());
      contracts.add(new ResolveOneWayList_SwapRemaindersContract());
      contracts.add(new ResolveOneWayList_SwapPrevEntryContract());
      contracts.add(new ResolveOneWayList_LengthOfPrecContract());
      contracts.add(new ResolveOneWayList_ClearListContract());
   } // end ctor
   
   public MathModel getMathRep() { return new MathStringModel(); }
   public String getSelfString() { return "P.Prec"; }
} // end class
