1 /*
2 * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3 * the spring framework, http://el4j.sf.net
4 * Copyright (C) 2006 by ELCA Informatique SA, Av. de la Harpe 22-24,
5 * 1000 Lausanne, Switzerland, http://www.elca.ch
6 *
7 * EL4J is published under the GNU Lesser General Public License (LGPL)
8 * Version 2.1. See http://www.gnu.org/licenses/
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * For alternative licensing, please contact info@elca.ch
16 */
17 package ch.elca.el4j.services.search.criterias;
18
19 import java.util.ArrayList;
20 import java.util.Arrays;
21 import java.util.List;
22
23 import org.springframework.util.StringUtils;
24
25 /**
26 * Criteria that combines n Criteria with AND (i.e. all
27 * Criterias must be true).
28 *
29 * @svnLink $Revision: 3873 $;$Date: 2009-08-04 13:59:45 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/core/src/main/java/ch/elca/el4j/services/search/criterias/AndCriteria.java $
30 *
31 * @author Philipp Oser (POS)
32 */
33 public class AndCriteria implements Criteria {
34
35 protected List<Criteria> m_criterias;
36
37 public AndCriteria (Criteria left, Criteria right) {
38 this(new Criteria[] { left, right});
39 }
40
41 public AndCriteria (Criteria... criterias){
42 m_criterias = new ArrayList<Criteria>(criterias.length);
43 m_criterias.addAll(Arrays.asList(criterias));
44 }
45
46 public void add(Criteria c) {
47 m_criterias.add(c);
48 }
49
50 /**
51 * {@inheritDoc}
52 */
53 public String getSqlWhereCondition() {
54 return "("+ StringUtils.arrayToDelimitedString(
55 CriteriaHelper.applyToSqlWhereCondition(m_criterias.toArray(new Criteria[0])),
56 " AND ")+ ")";
57 }
58
59 /**
60 * {@inheritDoc}
61 */
62 public String getType() {
63 return "";
64 }
65
66 public List<Criteria> getCriterias() {
67 return m_criterias;
68 }
69 }