Esempio n. 1
0
        public Action DoAction(Action action)
        {
            switch (action.Name)
            {
            case ("CheckView"):
                Set <string> modelView = (Set <string>)action[0];
                Set <string> implView  = new Set <string>(bag.table.Keys);
                if (!modelView.Equals(implView))
                {
                    throw new Exception("Inconsistent views of state: model:" +
                                        modelView + " iut:" + implView);
                }
                return(null);

            case ("Add"):
                bag.Add((string)action[0]);
                return(null);

            case ("Delete"):
                bag.Delete((string)action[0]);
                return(null);

            case ("Lookup_Start"):
                return(Action.Create("Lookup_Finish", bag.Lookup((string)action[0])));

            case ("Count_Start"):
                return(Action.Create("Count_Finish", bag.Count));

            default:
                throw new Exception("Unexpected action " + action);
            }
        }