View Javadoc

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  }