content: package rabbitescape.engine.solution;
  
  import rabbitescape.engine.World.CompletionState;
  
  public class AssertStateAction implements ValidationAction
  {
      public final CompletionState targetState;
  
      public AssertStateAction( CompletionState targetState )
      {
          this.targetState = targetState;
      }
  
      @Override
      public String toString()
      {
          return "AssertStateAction( " + targetState.name() + " )";
      }
  
      @Override
      public boolean equals( Object otherObj )
      {
          if ( ! ( otherObj instanceof AssertStateAction ) )
          {
              return false;
          }
          AssertStateAction other = (AssertStateAction)otherObj;
  
          return ( targetState == other.targetState );
      }
  
      @Override
      public int hashCode()
      {
          return targetState.hashCode();
      }
  
      @Override
      public void typeSwitch( CommandActionTypeSwitch actionTypeSwitch )
      {
          actionTypeSwitch.caseAssertStateAction( this );
      }
  
      @Override
      public void typeSwitch( TimeStepActionTypeSwitch timeStepActionTypeSwitch )
      {
          timeStepActionTypeSwitch.caseAssertStateAction( this );
      }
  }
  