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 }