summaryrefslogtreecommitdiff
path: root/Homework/cs5300/project-three/parser/States.java
blob: 7002f537ce1c24c4da3ed9f2675877ee694d97e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package parser;

import java.util.*;

public class States {
    private Set<State> stateSet;
    private List<State> states;
    private int id = 0;

    public States() {
        this.stateSet = new HashSet<>();
        this.states = new ArrayList<>();
    }

    public int size() {
        return this.states.size();
    }

    public boolean addState(State state) {
        if (!this.stateSet.contains(state)) {
            this.stateSet.add(state);
            this.states.add(state);
            return true;
        }
        return false;
    }

    public List<State> getStateList() {
        return states;
    }

    public State getState(int name) {
        if (name >= states.size()) {
            return null;
        }
        return states.get(name);
    }

    @Override
    public String toString() {
        return states.toString();
    }

}