using System; using System.Diagnostics; namespace SpaceInvaders { public abstract class Visitor : DLink { //------------------------------------------------------------------- // ABSTRACT METHOD //------------------------------------------------------------------- public abstract void Accept(Visitor other); //------------------------------------------------------------------- // VIRTUAL METHODS //------------------------------------------------------------------- //NULL OBJECT-------------------------------------------------------- public virtual void Visit(NullObject nullobj) { Debug.WriteLine("Visit by Null Object not implemented"); Debug.Assert(false); } //ALIENS------------------------------------------------------------- public virtual void Visit(AlienGrid alien) { Debug.WriteLine("Visit by Alien Grid not implemented"); Debug.Assert(false); } public virtual void Visit(AlienColumn alien) { Debug.WriteLine("Visit by Alien Column not implemented"); Debug.Assert(false); } public virtual void Visit(SquidAlien alien) { Debug.WriteLine("Visit by Squid Alien not implemented"); Debug.Assert(false); } public virtual void Visit(CrabAlien alien) { Debug.WriteLine("Visit by Crab Alien not implemented"); Debug.Assert(false); } public virtual void Visit(OctopusAlien alien) { Debug.WriteLine("Visit by Octopus Alien not implemented"); Debug.Assert(false); } public virtual void Visit(UFOAlienRoot alien) { Debug.WriteLine("Visit by UFO Alien Root not implemented"); Debug.Assert(false); } public virtual void Visit(UFOAlien alien) { Debug.WriteLine("Visit by UFO Alien not implemented"); Debug.Assert(false); } //BOMBS-------------------------------------------------------------- public virtual void Visit(BombRoot bomb) { Debug.WriteLine("Visit by Bomb Root not implemented"); Debug.Assert(false); } public virtual void Visit(Bomb bomb) { Debug.WriteLine("Visit by Bomb not implemented"); Debug.Assert(false); } //SHIP--------------------------------------------------------------- public virtual void Visit(ShipRoot ship) { Debug.WriteLine("Visit by Ship Root not implemented"); Debug.Assert(false); } public virtual void Visit(Ship ship) { Debug.WriteLine("Visit by Ship not implemented"); Debug.Assert(false); } //MISSILE------------------------------------------------------------ public virtual void Visit(MissileGroup missile) { Debug.WriteLine("Visit by Missile Group not implemented"); Debug.Assert(false); } public virtual void Visit(Missile missile) { Debug.WriteLine("Visit by Single Missile not implemented"); Debug.Assert(false); } //SHIELDS------------------------------------------------------------ public virtual void Visit(ShieldGrid shield) { Debug.WriteLine("Visit by Shield Grid not implemented"); Debug.Assert(false); } public virtual void Visit(ShieldColumn shield) { Debug.WriteLine("Visit by Shield Column not implemented"); Debug.Assert(false); } public virtual void Visit(ShieldRoot shield) { Debug.WriteLine("Visit by Shield Root not implemented"); Debug.Assert(false); } public virtual void Visit(ShieldBrick shield) { Debug.WriteLine("Visit by Shield Brick not implemented"); Debug.Assert(false); } //WALLS-------------------------------------------------------------- public virtual void Visit(WallGroup wall) { Debug.WriteLine("Visit by Wall Group not implemented"); Debug.Assert(false); } public virtual void Visit(LeftWall wall) { Debug.WriteLine("Visit by Left Wall not implemented"); Debug.Assert(false); } public virtual void Visit(RightWall wall) { Debug.WriteLine("Visit by Right Wall not implemented"); Debug.Assert(false); } public virtual void Visit(TopWall wall) { Debug.WriteLine("Visit by Top Wall not implemented"); Debug.Assert(false); } public virtual void Visit(BottomWall wall) { Debug.WriteLine("Visit by Bottom Wall not implemented"); Debug.Assert(false); } //BUMPERS------------------------------------------------------------- public virtual void Visit(BumperRoot bumper) { Debug.WriteLine("Visit by Bumper Root not implemented"); Debug.Assert(false); } public virtual void Visit(LeftBumper bumper) { Debug.WriteLine("Visit by Left Bumper not implemented"); Debug.Assert(false); } public virtual void Visit(RightBumper bumper) { Debug.WriteLine("Visit by Right Bumper not implemented"); Debug.Assert(false); } } // end class } // end namespace