1 /**
2  * Skadi.d Web Framework
3  * Validation Component
4 
5  * Authors: Faianca
6  * Copyright: Copyright (c) 2015 Faianca
7  * License: MIT License, see LICENSE
8  */
9 module skadi.components.validation.messagelist;
10 
11 import skadi.components.validation.messageinterface;
12 
13 class MessageList
14 {
15 
16 protected:
17 	MessageInterface[] _messages;
18 
19 public:
20 
21 	/**
22 	 * Appends a message to the group
23 	 */
24 	void appendMessage(MessageInterface message)
25 	{
26 		this._messages ~= message;
27 	}
28 
29 	/**
30 	 * Appends an array of messages to the group
31 	 */
32 	void appendMessages(MessageInterface[] messages)
33 	{
34 		this._messages ~= messages;
35 	}
36 
37     bool isEmpty()
38     {
39         return (this._messages.length == 0);
40     }
41 
42 	MessageInterface[] getMessages()
43 	{
44 		return this._messages;
45 	}
46 
47 	/**
48 	 * Filters the message group by field name
49 	 */
50 	MessageInterface[] filter(string fieldName)
51 	{
52         MessageInterface[] filtered;
53 
54 	     /**
55 		 * A group of messages is iterated and appended one-by-one to the current list
56 		 */
57 		foreach(MessageInterface message; this._messages) {
58 			if (fieldName == message.getField()) {
59 				filtered ~= message;
60 			}
61 		}
62 
63 		return filtered;
64 	}
65 
66 }