WepsMessage.java [tools/WepsSoilsIfcCreator/src/usda/weru/util] Revision: 0963adc11caf5d7616128736008ebbc7f276df4c  Date: Wed Sep 02 15:16:53 MDT 2015
/*
 * WepsMessage.java
 *
 * Created on January 11, 2006, 1:24 PM
 *
 * Designed to store messages to be given to the user or written to a log.
 */

package usda.weru.util;
import java.util.*;
/**
 *
 * @author Joseph Levin
 */
public class WepsMessage extends Exception{
    public enum MessageSeverity implements Comparator{
        INFORMATION (1), 
        WARNING(2), 
        ERROR(3);
        
        public int compare(Object a, Object b){
            if (a instanceof MessageSeverity && b instanceof MessageSeverity){
                if (((MessageSeverity) a).getNumericSeverity() == ((MessageSeverity) b).getNumericSeverity()){
                    return 0;
                }
                else if (((MessageSeverity) a).getNumericSeverity() < ((MessageSeverity) b).getNumericSeverity()){
                    return 1;
                }
                else if (((MessageSeverity) a).getNumericSeverity() > ((MessageSeverity) b).getNumericSeverity()){
                    return -1;
                }
                
            }
            return 0;
        }
        
                
        
        private int c_numericSeverity;
        MessageSeverity(int numericSeverity){
            c_numericSeverity = numericSeverity;
        }
              
        public int getNumericSeverity(){
            return c_numericSeverity;
        }
        
        public boolean isMoreSevereThan(MessageSeverity severity){
             return (c_numericSeverity > severity.getNumericSeverity());
        }
        
        public boolean isLessSevereThan(MessageSeverity severity){
             return (c_numericSeverity < severity.getNumericSeverity());
        }
        
        public boolean isAsSevere(MessageSeverity severity){
            return (c_numericSeverity == severity.getNumericSeverity());
        }
        
    }
    
    private MessageSeverity c_severity = MessageSeverity.INFORMATION;
    private String c_message = "";
    private Date c_timestamp;

    private int _unnamed_;
    
    /**
     * Creates a new instance of WepsMessage 
     */   
    public WepsMessage(MessageSeverity severity, String message) {
        c_severity = severity;
        c_message = message;
        c_timestamp = new Date();
    }
    
    public WepsMessage (MessageSeverity severity, Exception e){
        c_severity = severity;
        c_message = e.getMessage();
        c_timestamp = new Date();
    }
    
    public WepsMessage (Exception e){
        this(WepsMessage.MessageSeverity.ERROR, e);
    }
    
    public String getMessage(){
        return c_message;
    }
    
    public MessageSeverity getSeverity(){
        return c_severity;
    }
    
    public String toString(){
        return c_severity.toString() + ": " + c_message;
    }
    
    public static WepsMessage informationMessage(String message){
        return new WepsMessage(MessageSeverity.INFORMATION, message);
    }
    
    public static WepsMessage warningMessage(String message){
        return new WepsMessage(MessageSeverity.WARNING, message);
    }
    
    public static WepsMessage errorMessage(String message){
        return new WepsMessage(MessageSeverity.ERROR, message);
    }
    
    
        
}