@Override public boolean equals(Object inputO) { if (this == inputO) { return true; } if (!(inputO instanceof AdvancedState)) { return false; } AdvancedState compare = (AdvancedState) inputO; if (!((names.containsAll(compare.getNames()) && (compare.getNames().containsAll(names))))) { return false; } if (acceptanceState != compare.isAcceptanceState()) { return false; } if (initialState != compare.isInitialState()) { return false; } return true; }
public static AdvancedState mergeStates(AdvancedState st1, AdvancedState st2) { if (st1.equals(st2)) { return st1; } AdvancedState out = new AdvancedState(); for (String name : st1.names) { out.addName(name); } for (String name : st2.names) { out.addName(name); } return out; }