01 package org.qedeq.kernel.se.state;
02
03 import org.qedeq.kernel.se.common.State;
04
05 /**
06 * Represents a module state. All existing instances of this class should be unique.
07 *
08 * @author Michael Meyling
09 */
10 public abstract class AbstractState implements State {
11
12 /** Meaning of this state. */
13 private final String text;
14
15 /** Is this state a failure? */
16 private final boolean failure;
17
18 /** Code for state. */
19 private final int code;
20
21 /**
22 * Creates new module state.
23 *
24 * @param text meaning of this state, <code>null</code> is not permitted.
25 * @param failure is this a failure state?
26 * @param code code of this state.
27 * @throws IllegalArgumentException text == <code>null</code>
28 */
29 protected AbstractState(final String text, final boolean failure, final int code) {
30 this.text = text;
31 if (this.text == null) {
32 throw new IllegalArgumentException("text==null");
33 }
34 this.failure = failure;
35 this.code = code;
36 }
37
38 public String getText() {
39 return this.text;
40 }
41
42 public boolean isFailure() {
43 return this.failure;
44 }
45
46 public int getCode() {
47 return this.code;
48 }
49
50 public String toString() {
51 return this.text;
52 }
53
54 public int hashCode() {
55 return this.text.hashCode();
56 }
57
58 public boolean equals(final Object obj) {
59 // every instance is unique
60 return (this == obj);
61 }
62
63 }
|