001 // This file is part of the Attempto Java Packages. 002 // Copyright 2008-2009, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch). 003 // 004 // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the 005 // terms of the GNU Lesser General Public License as published by the Free Software Foundation, 006 // either version 3 of the License, or (at your option) any later version. 007 // 008 // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY 009 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 010 // PURPOSE. See the GNU Lesser General Public License for more details. 011 // 012 // You should have received a copy of the GNU Lesser General Public License along with the Attempto 013 // Java Packages. If not, see http://www.gnu.org/licenses/. 014 015 package ch.uzh.ifi.attempto.ape; 016 017 import java.util.ArrayList; 018 import java.util.List; 019 020 import org.jdom.Element; 021 022 /** 023 * This class is a container for error and warning messages. 024 * 025 * @author Tobias Kuhn 026 */ 027 public class MessageContainer { 028 029 private ArrayList<Message> messages = new ArrayList<Message>(); 030 031 MessageContainer() { 032 } 033 034 MessageContainer(Element xmlElement) { 035 if (xmlElement == null) return; 036 for (Object o : xmlElement.getChildren("message")) { 037 if (!(o instanceof Element)) continue; 038 messages.add(new Message((Element) o)); 039 } 040 } 041 042 /** 043 * Returns a list that contains all messages. 044 * 045 * @return A list of all messages. 046 */ 047 public List<Message> getMessages() { 048 return new ArrayList<Message>(messages); 049 } 050 051 /** 052 * Returns a list that contains all error messages. 053 * 054 * @return A list of all error messages. 055 */ 056 public List<Message> getErrorMessages() { 057 List<Message> list = new ArrayList<Message>(); 058 for (Message m : messages) { 059 if (m.isError()) list.add(m); 060 } 061 return list; 062 } 063 064 /** 065 * Returns a list that contains all warning messages. 066 * 067 * @return A list of all warning messages. 068 */ 069 public List<Message> getWarningMessages() { 070 List<Message> list = new ArrayList<Message>(); 071 for (Message m : messages) { 072 if (!m.isError()) list.add(m); 073 } 074 return list; 075 } 076 077 /** 078 * Returns a list that contains all messages of a given type. 079 * 080 * @param type The type of the messages to be returned. 081 * @return A list of all messages with the given type. 082 */ 083 public List<Message> getMessages(String type) { 084 List<Message> list = new ArrayList<Message>(); 085 for (Message m : messages) { 086 if (m.getType().equals(type)) list.add(m); 087 } 088 return list; 089 } 090 091 /** 092 * Returns a list that contains all error messages of a given type. 093 * 094 * @param type The type of the error messages to be returned. 095 * @return A list of all error messages with the given type. 096 */ 097 public List<Message> getErrorMessages(String type) { 098 List<Message> list = new ArrayList<Message>(); 099 for (Message m : messages) { 100 if (m.isError() && m.getType().equals(type)) list.add(m); 101 } 102 return list; 103 } 104 105 /** 106 * Returns a list that contains all warning messages of a given type. 107 * 108 * @param type The type of the warning message to be returned. 109 * @return A list of all warning messages with the given type. 110 */ 111 public List<Message> getWarningMessages(String type) { 112 List<Message> list = new ArrayList<Message>(); 113 for (Message m : messages) { 114 if (!m.isError() && m.getType().equals(type)) list.add(m); 115 } 116 return list; 117 } 118 119 public String toString() { 120 String s = ""; 121 for (Message m : messages) { 122 s += m; 123 } 124 return s; 125 } 126 127 }