Beispiel #1
0
 public Builder transition(Transition transition) {
   Preconditions.checkArgument(
       states.contains(transition.from()),
       "Originating state does not exist: " + transition.from());
   Preconditions.checkArgument(
       states.contains(transition.to()), "Destination state does not exist: " + transition.to());
   outTransitions.put(transition.from(), transition);
   return this;
 }
 @Test
 public void test_simplest_transition() throws Exception {
   Transition transition = Transition.builder("close").from("OPEN").to("CLOSED").build();
   assertThat(transition.key()).isEqualTo("close");
   assertThat(transition.from()).isEqualTo("OPEN");
   assertThat(transition.to()).isEqualTo("CLOSED");
   assertThat(transition.conditions()).isEmpty();
   assertThat(transition.functions()).isEmpty();
 }
Beispiel #3
0
  /**
   * This implements a deep copy of the class for replicating FSM information.
   *
   * @throws CloneNotSupportedException if clone method is not supported
   * @return Object
   */
  @Override
  public Object clone() throws CloneNotSupportedException {
    Transition retval = (Transition) super.clone();
    if (retval != null) {
      if (this.from != null) retval.from = new String(this.from);
      if (this.to != null) retval.to = new String(this.to);
      if (this.event != null) retval.event = new String(this.event);
    }

    return retval;
  }
 @Test
 public void test_builder() throws Exception {
   Transition transition =
       Transition.builder("close")
           .from("OPEN")
           .to("CLOSED")
           .conditions(condition1, condition2)
           .functions(function1, function2)
           .build();
   assertThat(transition.key()).isEqualTo("close");
   assertThat(transition.from()).isEqualTo("OPEN");
   assertThat(transition.to()).isEqualTo("CLOSED");
   assertThat(transition.conditions()).containsOnly(condition1, condition2);
   assertThat(transition.functions()).containsOnly(function1, function2);
   assertThat(transition.automatic()).isFalse();
 }