1 /******************************************************************************** 2 * InternetCafe is a software solution that helps the management of Cybercafes 3 * according with the ITALIAN DECREE LAW ON ANTI-TERROR MEASURES, 27 JULY 2005. 4 * Copyright (C) 2006 Guido Angelo Ingenito 5 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 *******************************************************************************/ 20 21 package ui.util; 22 23 import java.util.Date; 24 import java.util.Vector; 25 import java.util.regex.Matcher; 26 import java.util.regex.Pattern; 27 28 import org.apache.log4j.Logger; 29 30 import base.session.Session; 31 import base.user.User; 32 33 public class SortStrategy { 34 35 private static final transient Logger logger = Logger 36 .getLogger(SortStrategy.class.getName()); 37 38 public static Session[] searchSessionByText(String expression, 39 Session[] session) { 40 Vector<Session> result = new Vector<Session>(); 41 Pattern pattern = Pattern.compile(expression); 42 for (int i = 0; i < session.length; i++) { 43 User user = session[i].getUser(); 44 Matcher matcher = pattern.matcher(user.getName() 45 + user.getSurname() + user.getNickname() 46 + session[i].getDescription() 47 + session[i].getWorkstation().getName()); 48 if (matcher.find()) { 49 result.add(session[i]); 50 logger.debug(session[i]); 51 } 52 } 53 return result.toArray(new Session[0]); 54 } 55 56 public static Session[] searchSessionByDate(Date date, Session[] session) { 57 Vector<Session> result = new Vector<Session>(); 58 for (int i = 0; i < session.length; i++) { 59 if (session[i].getStartTime().getTime() >= date.getTime()) { 60 result.add(session[i]); 61 logger.debug(session[i]); 62 } 63 } 64 return result.toArray(new Session[0]); 65 } 66 67 }