WepsMessageLog.java [tools/WepsSoilsIfcCreator/src/usda/weru/util] Revision: Date:
/*
* WepsMessageLog.java
*
* Created on January 17, 2006, 3:57 PM
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
package usda.weru.util;
import java.util.*;
/**
*
* @author joelevin
*/
public class WepsMessageLog {
private Vector <WepsMessage> c_messages;
/** Creates a new instance of WepsMessageLog */
public WepsMessageLog() {
c_messages = new Vector <WepsMessage> ();
}
public WepsMessageLog(Vector <WepsMessage> messages) {
c_messages = messages;
}
/**
* Logs the passed message object
* @param message WepsMessage object to be place in the log.
*/
public synchronized void logMessage(WepsMessage message){
c_messages.add(message);
switch(message.getSeverity()){
case ERROR:
//System.err.println(message.toString());
break;
case WARNING:
//System.out.println(message.toString());
break;
case INFORMATION:
//System.out.println(message.toString());
break;
}
}
/**
* Logs a message with the given severity and text.
* @param severity WepsMessage.MessageSeverity indicating how serious the text is.
* @param text The string message to store.
*/
public void logMessage(WepsMessage.MessageSeverity severity, String text){
logMessage(new WepsMessage(severity, text));
}
/**
* Clears the message log.
*/
public void clear(){
c_messages.clear();
}
/**
* Returns all the messages in the log.
*/
public Vector <WepsMessage> getMessages(){
return c_messages;
}
/**
* Returns messages in the log matching the given severities
* @param broadInclude If true the method will return messages with equal or lesser severity than the severities in the passed array.
*/
public Vector <WepsMessage> getMessages(boolean broadInclude, WepsMessage.MessageSeverity... severities){
Vector <WepsMessage> filteredMessages = new Vector <WepsMessage> ();
for (WepsMessage message : c_messages){
for (WepsMessage.MessageSeverity severity : severities){
if (broadInclude){ //Lesser and equal severities.
if (message.getSeverity().isAsSevere(severity) || message.getSeverity().isLessSevereThan(severity)){
filteredMessages.add(message);
break;
}
}
else{//Only what is asked for.
if (message.getSeverity() == severity){
filteredMessages.add(message);
break;
}
}
}
}
return filteredMessages;
}
public Vector <WepsMessage> getMessages(WepsMessage.MessageSeverity... severities){
return getMessages(false, severities);
}
public Vector <WepsMessage.MessageSeverity> getSortedSeverites(){
Vector <WepsMessage.MessageSeverity> sortedSeverities = new Vector <WepsMessage.MessageSeverity> ();
for (WepsMessage message : c_messages){
if (sortedSeverities.contains(message.getSeverity()) == false){
sortedSeverities.add(message.getSeverity());
}
}
Collections.sort(sortedSeverities, WepsMessage.MessageSeverity.INFORMATION);
return sortedSeverities;
}
public int getCount(){
return c_messages.size();
}
public int getCount(boolean broadInclude, WepsMessage.MessageSeverity... severities){
return getMessages(broadInclude, severities).size();
}
public int getCount(WepsMessage.MessageSeverity... severities){
return getCount(false, severities);
}
public boolean hasMessage(boolean broadInclude, WepsMessage.MessageSeverity... severities){
return (getMessages(broadInclude, severities).size() > 0);
}
public boolean hasMessage(WepsMessage.MessageSeverity... severities){
return hasMessage(false, severities);
}
public boolean hasMessage(){
return (c_messages.size() > 0);
}
public void mergeLog(WepsMessageLog log){
for(WepsMessage message : log.getMessages()){
logMessage(message);
}
}
}