Improved completion processor
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / dialog / StatusInfo.java
1 package net.sourceforge.phpdt.internal.ui.dialog;
2
3 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
4 import org.eclipse.core.runtime.IStatus;
5 import org.eclipse.jface.util.Assert;
6
7 /**
8  * A settable IStatus. 
9  * Can be an error, warning, info or ok. For error, info and warning states,
10  * a message describes the problem.
11  */
12 public class StatusInfo implements IStatus {
13
14         private String fStatusMessage;
15         private int fSeverity;
16
17         /**
18          * Creates a status set to OK (no message)
19          */
20         public StatusInfo() {
21                 this(OK, null);
22         }
23
24         /**
25          * Creates a status .
26          * @param severity The status severity: ERROR, WARNING, INFO and OK.
27          * @param message The message of the status. Applies only for ERROR,
28          * WARNING and INFO.
29          */
30         public StatusInfo(int severity, String message) {
31                 fStatusMessage = message;
32                 fSeverity = severity;
33         }
34
35         /**
36          *  Returns if the status' severity is OK.
37          */
38         public boolean isOK() {
39                 return fSeverity == IStatus.OK;
40         }
41
42         /**
43          *  Returns if the status' severity is WARNING.
44          */
45         public boolean isWarning() {
46                 return fSeverity == IStatus.WARNING;
47         }
48
49         /**
50          *  Returns if the status' severity is INFO.
51          */
52         public boolean isInfo() {
53                 return fSeverity == IStatus.INFO;
54         }
55
56         /**
57          *  Returns if the status' severity is ERROR.
58          */
59         public boolean isError() {
60                 return fSeverity == IStatus.ERROR;
61         }
62
63         /**
64          * @see IStatus#getMessage
65          */
66         public String getMessage() {
67                 return fStatusMessage;
68         }
69
70         /**
71          * Sets the status to ERROR.
72          * @param The error message (can be empty, but not null)
73          */
74         public void setError(String errorMessage) {
75                 Assert.isNotNull(errorMessage);
76                 fStatusMessage = errorMessage;
77                 fSeverity = IStatus.ERROR;
78         }
79
80         /**
81          * Sets the status to WARNING.
82          * @param The warning message (can be empty, but not null)
83          */
84         public void setWarning(String warningMessage) {
85                 Assert.isNotNull(warningMessage);
86                 fStatusMessage = warningMessage;
87                 fSeverity = IStatus.WARNING;
88         }
89
90         /**
91          * Sets the status to INFO.
92          * @param The info message (can be empty, but not null)
93          */
94         public void setInfo(String infoMessage) {
95                 Assert.isNotNull(infoMessage);
96                 fStatusMessage = infoMessage;
97                 fSeverity = IStatus.INFO;
98         }
99
100         /**
101          * Sets the status to OK.
102          */
103         public void setOK() {
104                 fStatusMessage = null;
105                 fSeverity = IStatus.OK;
106         }
107
108         /*
109          * @see IStatus#matches(int)
110          */
111         public boolean matches(int severityMask) {
112                 return (fSeverity & severityMask) != 0;
113         }
114
115         /**
116          * Returns always <code>false</code>.
117          * @see IStatus#isMultiStatus()
118          */
119         public boolean isMultiStatus() {
120                 return false;
121         }
122
123         /*
124          * @see IStatus#getSeverity()
125          */
126         public int getSeverity() {
127                 return fSeverity;
128         }
129
130         /*
131          * @see IStatus#getPlugin()
132          */
133         public String getPlugin() {
134                 return PHPeclipsePlugin.PLUGIN_ID;
135         }
136
137         /**
138          * Returns always <code>null</code>.
139          * @see IStatus#getException()
140          */
141         public Throwable getException() {
142                 return null;
143         }
144
145         /**
146          * Returns always the error severity.
147          * @see IStatus#getCode()
148          */
149         public int getCode() {
150                 return fSeverity;
151         }
152
153         /**
154          * Returns always <code>null</code>.
155          * @see IStatus#getChildren()
156          */
157         public IStatus[] getChildren() {
158                 return new IStatus[0];
159         }
160
161 }