Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.27 KB | None | 0 0
  1. class State {
  2.  
  3.     private boolean endState;
  4.     private HashMap<String, String> paths;
  5.     private String name;
  6.    
  7.     public State(String name) {
  8.         paths = new HashMap<String, String>();
  9.         this.name = name;
  10.         if (name.startsWith("F"))
  11.             endState = true;
  12.         else
  13.             endState = false;
  14.     }
  15.  
  16.     public void newPath(String[] stateCode) {
  17.         paths.put(stateCode[1], stateCode[2]);
  18.     }
  19.  
  20.     public boolean isPath(String input) {
  21.         return paths.containsKey(input);
  22.     }
  23.  
  24.     public boolean isEndState() {
  25.         return endState;
  26.     }
  27.  
  28.     public String getName() {
  29.         return name;
  30.     }
  31.  
  32.     public String pathResult(String input) {
  33.         return paths.get(input);
  34.     }
  35.  
  36. }
  37.  
  38.  
  39.  
  40.  
  41.  
  42. public class StateMachine {
  43.  
  44.     HashMap<String, State> map;
  45.     State activeState;
  46.     boolean failed;
  47.  
  48.     StateMachine(HashMap<String, State> map) {
  49.         this.map = map;
  50.         activeState = map.get("S");
  51.         failed = false;
  52.     }
  53.  
  54.     public void input(String input) {
  55.         if (activeState.isPath(input))
  56.             activeState = map.get(activeState.pathResult(input));
  57.         else
  58.             failed = true;
  59.     }
  60.  
  61.     public boolean accepted() {
  62.         return !failed;
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement