State.java

  1. package ch.hslu.exercises.sw12.ex7;

  2. public enum State {
  3.     Z0 {
  4.         @Override
  5.         State next(Character c) {
  6.             if (c == '0') {
  7.                 return Z1;
  8.             } else {
  9.                 return Illegal;
  10.             }
  11.         }
  12.     },
  13.     Z1 {
  14.         @Override
  15.         State next(Character c) {
  16.             if (c == '1') {
  17.                 return Z2;
  18.             } else {
  19.                 return Illegal;
  20.             }
  21.         }
  22.     },
  23.     Z2 {
  24.         @Override
  25.         State next(Character c) {
  26.             if (c == '1') {
  27.                 return Z3;
  28.             } else if (c == '0') {
  29.                 return Z4;
  30.             } else {
  31.                 return Illegal;
  32.             }
  33.         }
  34.     },
  35.     Z3 {
  36.         @Override
  37.         State next(Character c) {
  38.             if (c == '1') {
  39.                 return Z2;
  40.             } else {
  41.                 return Illegal;
  42.             }
  43.         }
  44.     },
  45.     Z4 {
  46.         @Override
  47.         State next(Character c) {
  48.             if (c == '1') {
  49.                 return Z2;
  50.             } else {
  51.                 return Illegal;
  52.             }
  53.         }
  54.     },
  55.     Illegal {
  56.         @Override
  57.         State next(Character c) {
  58.             return Illegal;
  59.         }
  60.     };

  61.     abstract State next(Character c);
  62. }