Files
struts/api/src/main/java/org/apache/struts2/Messages.java
T

196 lines
4.5 KiB
Java
Raw Normal View History

2006-06-30 23:05:20 +00:00
package org.apache.struts2;
2006-05-03 22:22:02 +00:00
import java.util.List;
import java.util.Set;
2006-05-22 13:47:57 +00:00
import java.util.Map;
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Collection of messages. Supports nesting messages by field name.
*
* <p>Uses keys when adding instead of actual messages to decouple code from messages.
2006-05-03 22:22:02 +00:00
*
* @author crazybob@google.com (Bob Lee)
*/
public interface Messages {
2006-08-02 00:07:17 +00:00
// TODO: Use Object[] for args instead of String[].
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Message severity.
*/
public enum Severity {
/**
* Informational messages.
*/
INFO,
/**
* Warning messages.
*/
WARN,
/**
* Error messages.
*/
ERROR,
}
/**
* Gets nested messages for the given field.
*
* <p>Supports dot notation to represent nesting. For example:
*
* <pre>
* messages.forField("foo").forField("bar") == messages.forField("foo.bar")
* </pre>
*
* @param fieldName name of the field
* @return nested {@code Messages} for given field name
*/
Messages forField(String fieldName);
/**
* Gets map of field name to messages for that field.
*
* @return map of field name to {@code Messages}
*/
Map<String, Messages> forFields();
/**
* Adds informational message.
2006-05-03 22:22:02 +00:00
*
* @param key message key
2006-05-22 13:47:57 +00:00
* @see Severity.INFO
2006-05-03 22:22:02 +00:00
*/
2006-05-22 13:47:57 +00:00
void addInformation(String key);
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Adds informational message.
*
* @param key message key
* @param arguments message arguments
* @see Severity.INFO
*/
2006-08-02 00:07:17 +00:00
void addInformation(String key, String... arguments);
2006-05-22 13:47:57 +00:00
/**
* Adds warning message.
*
* @param key message key
* @see Severity.WARN
*/
void addWarning(String key);
/**
* Adds warning message.
*
* @param key message key
* @param arguments message arguments
* @see Severity.WARN
*/
2006-08-02 00:07:17 +00:00
void addWarning(String key, String... arguments);
2006-05-22 13:47:57 +00:00
/**
* Adds error message.
*
* @param key message key
* @see Severity.ERROR
*/
void addError(String key);
/**
* Adds error message.
2006-05-03 22:22:02 +00:00
*
* @param key message key
* @param arguments message arguments
2006-05-22 13:47:57 +00:00
* @see Severity.ERROR
2006-05-03 22:22:02 +00:00
*/
2006-08-02 00:07:17 +00:00
void addError(String key, String... arguments);
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Adds message.
2006-05-03 22:22:02 +00:00
*
2006-05-22 13:47:57 +00:00
* @param severity message severity
2006-05-03 22:22:02 +00:00
* @param key message key
*/
2006-05-22 13:47:57 +00:00
void add(Severity severity, String key);
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Adds request-scoped message.
2006-05-03 22:22:02 +00:00
*
2006-05-22 13:47:57 +00:00
* @param severity message severity
2006-05-03 22:22:02 +00:00
* @param key message key
* @param arguments message arguments
*/
2006-08-02 00:07:17 +00:00
void add(Severity severity, String key, String... arguments);
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Gets set of severities for which this {@code Messages} instance has messages. Not recursive.
2006-05-03 22:22:02 +00:00
*
2006-05-22 13:47:57 +00:00
* @return unmodifiable set of {@link Severity} sorted from least to most severe
2006-05-03 22:22:02 +00:00
*/
2006-05-22 13:47:57 +00:00
Set<Severity> getSeverities();
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Gets message strings for the given severity. Not recursive.
2006-05-03 22:22:02 +00:00
*
2006-05-22 13:47:57 +00:00
* @param severity message severity
* @return unmodifiable list of messages
2006-05-03 22:22:02 +00:00
*/
2006-05-22 13:47:57 +00:00
List<String> forSeverity(Severity severity);
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Gets error message strings for this {@code Messages} instance. Not recursive.
2006-05-03 22:22:02 +00:00
*
2006-05-22 13:47:57 +00:00
* @return unmodifiable list of messages
2006-05-03 22:22:02 +00:00
*/
2006-05-22 13:47:57 +00:00
List<String> getErrors();
2006-05-03 22:22:02 +00:00
/**
2006-05-22 13:47:57 +00:00
* Gets error message strings for this {@code Messages} instance. Not recursive.
*
* @return unmodifiable list of messages
*/
List<String> getWarnings();
/**
* Gets informational message strings for this {@code Messages} instance. Not recursive.
*
* @return unmodifiable list of messages
*/
List<String> getInformation();
/**
* Returns true if this or a nested {@code Messages} instance has error messages.
*
* @see Severity.ERROR
*/
boolean hasErrors();
/**
* Returns true if this or a nested {@code Messages} instance has warning messages.
*
* @see Severity.WARN
*/
boolean hasWarnings();
/**
* Returns true if this or a nested {@code Messages} instance has informational messages.
*
* @see Severity.INFO
*/
boolean hasInformation();
/**
* Returns true if this and all nested {@code Messages} instances have no messages.
2006-05-03 22:22:02 +00:00
*/
boolean isEmpty();
2006-05-22 13:47:57 +00:00
/**
* Returns true if this and all nested {@code Messages} instances have no messages for the given severity.
*
* @param severity message severity
*/
boolean isEmpty(Severity severity);
}