code: public void signal(String name) throws UnknownTransitionException {
  
          // check that start state defined
          if (start == null) {
              throw new IllegalStateException("The start sate is not defined");
          }
  
          // check that end state defined
          if (end == null) {
              throw new IllegalStateException("The end sate is not defined");
          }
  
          // ignore any signals if fsm reaches end state
          // if (state == end) {
          // return;
          // }
  
          oldState = currentState;
          // switch to next state
          currentState = currentState.signal(name);
          if (logger.isDebugEnabled()) {
              logger.debug(String.format("%s Transition to=%s", toString(), name));
          }
      }
docs: Processes transition.
  
  @param name the name of transition.