/*
* Copyright (c) 1998-2011 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* Resin Open Source is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
* of NON-INFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*
* Free Software Foundation, Inc.
* 59 Temple Place, Suite 330
* Boston, MA 02111-1307 USA
*
* @author Scott Ferguson
*/
package javax.faces.application;
import java.util.*;
public class FacesMessage implements java.io.Serializable
{
public static final Severity SEVERITY_INFO
= new Severity("info", 0);
public static final Severity SEVERITY_WARN
= new Severity("warn", 1);
public static final Severity SEVERITY_ERROR
= new Severity("error", 2);
public static final Severity SEVERITY_FATAL
= new Severity("fatal", 3);
public static final String FACES_MESSAGES = "javax.faces.Messages";
public static final List VALUES;
public static final Map VALUES_MAP;
private Severity severity;
private String summary;
private String detail;
public FacesMessage()
{
this.severity = SEVERITY_INFO;
}
public FacesMessage(String summary)
{
this.severity = SEVERITY_INFO;
this.summary = summary;
}
public FacesMessage(String summary, String detail)
{
this.severity = SEVERITY_INFO;
this.summary = summary;
this.detail = detail;
}
public FacesMessage(Severity severity, String summary, String detail)
{
this.severity = severity;
this.summary = summary;
this.detail = detail;
}
/**
* Return the localized detail text. If no localized detail text has been
* defined for this message, return the localized summary text instead.
* @return
*/
public String getDetail()
{
if (this.detail == null)
return this.summary;
return this.detail;
}
public void setDetail(String detail)
{
this.detail = detail;
}
public Severity getSeverity()
{
return this.severity;
}
public void setSeverity(Severity severity)
{
this.severity = severity;
}
public String getSummary()
{
return this.summary;
}
public void setSummary(String summary)
{
this.summary = summary;
}
public static class Severity implements Comparable {
private String _name;
private int _value;
Severity(String name, int value)
{
_name = name;
_value = value;
}
public int getOrdinal()
{
return _value;
}
public int compareTo(Object other)
{
if (! (other instanceof Severity))
return -1;
Severity severity = (Severity) other;
if (_value < severity._value)
return -1;
else if (severity._value < _value)
return 1;
else
return 0;
}
public String toString()
{
return _name;
}
}
static {
ArrayList<Severity> list
= new ArrayList<Severity>();
list.add(SEVERITY_INFO);
list.add(SEVERITY_WARN);
list.add(SEVERITY_ERROR);
list.add(SEVERITY_FATAL);
VALUES = Collections.unmodifiableList(list);
HashMap<String,Severity> map
= new HashMap<String,Severity>();
map.put(SEVERITY_INFO.toString(), SEVERITY_INFO);
map.put(SEVERITY_WARN.toString(), SEVERITY_WARN);
map.put(SEVERITY_ERROR.toString(), SEVERITY_ERROR);
map.put(SEVERITY_FATAL.toString(), SEVERITY_FATAL);
VALUES_MAP = Collections.unmodifiableMap(map);
}
public String toString()
{
if (this.detail != null)
return "FacesMessage[" + this.severity + ",\"" + this.summary + "\",\"" + this.detail + "\"]";
else if (this.summary != null)
return "FacesMessage[" + this.severity + ",\"" + this.summary + "\"]";
else
return "FacesMessage[" + this.severity + "]";
}
}