001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.dao.orm.hibernate;
016    
017    import com.liferay.portal.kernel.dao.orm.Conjunction;
018    import com.liferay.portal.kernel.dao.orm.Criterion;
019    import com.liferay.portal.kernel.dao.orm.Disjunction;
020    import com.liferay.portal.kernel.dao.orm.RestrictionsFactory;
021    import com.liferay.portal.kernel.dao.orm.Type;
022    import com.liferay.portal.kernel.security.pacl.DoPrivileged;
023    
024    import java.util.Collection;
025    import java.util.Map;
026    
027    /**
028     * @author Raymond Aug??
029     */
030    @DoPrivileged
031    public class RestrictionsFactoryImpl implements RestrictionsFactory {
032    
033            @Override
034            public Criterion allEq(Map<String, Criterion> propertyNameValues) {
035                    return new CriterionImpl(
036                            org.hibernate.criterion.Restrictions.allEq(propertyNameValues));
037            }
038    
039            @Override
040            public Criterion and(Criterion lhs, Criterion rhs) {
041                    CriterionImpl lhsImpl = (CriterionImpl)lhs;
042                    CriterionImpl rhsImpl = (CriterionImpl)rhs;
043    
044                    return new CriterionImpl(
045                            org.hibernate.criterion.Restrictions.and(
046                                    lhsImpl.getWrappedCriterion(), rhsImpl.getWrappedCriterion()));
047            }
048    
049            @Override
050            public Criterion between(String propertyName, Object lo, Object hi) {
051                    return new CriterionImpl(
052                            org.hibernate.criterion.Restrictions.between(propertyName, lo, hi));
053            }
054    
055            @Override
056            public Conjunction conjunction() {
057                    return new ConjunctionImpl(
058                            org.hibernate.criterion.Restrictions.conjunction());
059            }
060    
061            @Override
062            public Disjunction disjunction() {
063                    return new DisjunctionImpl(
064                            org.hibernate.criterion.Restrictions.disjunction());
065            }
066    
067            @Override
068            public Criterion eq(String propertyName, Object value) {
069                    return new CriterionImpl(
070                            org.hibernate.criterion.Restrictions.eq(propertyName, value));
071            }
072    
073            @Override
074            public Criterion eqProperty(String propertyName, String otherPropertyName) {
075                    return new CriterionImpl(
076                            org.hibernate.criterion.Restrictions.eqProperty(
077                                    propertyName, otherPropertyName));
078            }
079    
080            @Override
081            public Criterion ge(String propertyName, Object value) {
082                    return new CriterionImpl(
083                            org.hibernate.criterion.Restrictions.ge(propertyName, value));
084            }
085    
086            @Override
087            public Criterion geProperty(String propertyName, String otherPropertyName) {
088                    return new CriterionImpl(
089                            org.hibernate.criterion.Restrictions.geProperty(
090                                    propertyName, otherPropertyName));
091            }
092    
093            @Override
094            public Criterion gt(String propertyName, Object value) {
095                    return new CriterionImpl(
096                            org.hibernate.criterion.Restrictions.gt(propertyName, value));
097            }
098    
099            @Override
100            public Criterion gtProperty(String propertyName, String otherPropertyName) {
101                    return new CriterionImpl(
102                            org.hibernate.criterion.Restrictions.gtProperty(
103                                    propertyName, otherPropertyName));
104            }
105    
106            @Override
107            public Criterion ilike(String propertyName, Object value) {
108                    return new CriterionImpl(
109                            org.hibernate.criterion.Restrictions.ilike(propertyName, value));
110            }
111    
112            @Override
113            public Criterion in(String propertyName, Collection<?> values) {
114                    return new CriterionImpl(
115                            org.hibernate.criterion.Restrictions.in(propertyName, values));
116            }
117    
118            @Override
119            public Criterion in(String propertyName, Object[] values) {
120                    return new CriterionImpl(
121                            org.hibernate.criterion.Restrictions.in(propertyName, values));
122            }
123    
124            @Override
125            public Criterion isEmpty(String propertyName) {
126                    return new CriterionImpl(
127                            org.hibernate.criterion.Restrictions.isEmpty(propertyName));
128            }
129    
130            @Override
131            public Criterion isNotEmpty(String propertyName) {
132                    return new CriterionImpl(
133                            org.hibernate.criterion.Restrictions.isNotEmpty(propertyName));
134            }
135    
136            @Override
137            public Criterion isNotNull(String propertyName) {
138                    return new CriterionImpl(
139                            org.hibernate.criterion.Restrictions.isNotNull(propertyName));
140            }
141    
142            @Override
143            public Criterion isNull(String propertyName) {
144                    return new CriterionImpl(
145                            org.hibernate.criterion.Restrictions.isNull(propertyName));
146            }
147    
148            @Override
149            public Criterion le(String propertyName, Object value) {
150                    return new CriterionImpl(
151                            org.hibernate.criterion.Restrictions.le(propertyName, value));
152            }
153    
154            @Override
155            public Criterion leProperty(String propertyName, String otherPropertyName) {
156                    return new CriterionImpl(
157                            org.hibernate.criterion.Restrictions.leProperty(
158                                    propertyName, otherPropertyName));
159            }
160    
161            @Override
162            public Criterion like(String propertyName, Object value) {
163                    return new CriterionImpl(
164                            org.hibernate.criterion.Restrictions.like(propertyName, value));
165            }
166    
167            @Override
168            public Criterion lt(String propertyName, Object value) {
169                    return new CriterionImpl(
170                            org.hibernate.criterion.Restrictions.lt(propertyName, value));
171            }
172    
173            @Override
174            public Criterion ltProperty(String propertyName, String otherPropertyName) {
175                    return new CriterionImpl(
176                            org.hibernate.criterion.Restrictions.ltProperty(
177                                    propertyName, otherPropertyName));
178            }
179    
180            @Override
181            public Criterion ne(String propertyName, Object value) {
182                    return new CriterionImpl(
183                            org.hibernate.criterion.Restrictions.ne(propertyName, value));
184            }
185    
186            @Override
187            public Criterion neProperty(String propertyName, String otherPropertyName) {
188                    return new CriterionImpl(
189                            org.hibernate.criterion.Restrictions.neProperty(
190                                    propertyName, otherPropertyName));
191            }
192    
193            @Override
194            public Criterion not(Criterion expression) {
195                    CriterionImpl expressionImpl = (CriterionImpl)expression;
196    
197                    return new CriterionImpl(
198                            org.hibernate.criterion.Restrictions.not(
199                                    expressionImpl.getWrappedCriterion()));
200            }
201    
202            @Override
203            public Criterion or(Criterion lhs, Criterion rhs) {
204                    CriterionImpl lhsImpl = (CriterionImpl)lhs;
205                    CriterionImpl rhsImpl = (CriterionImpl)rhs;
206    
207                    return new CriterionImpl(
208                            org.hibernate.criterion.Restrictions.or(
209                                    lhsImpl.getWrappedCriterion(), rhsImpl.getWrappedCriterion()));
210            }
211    
212            @Override
213            public Criterion sizeEq(String propertyName, int size) {
214                    return new CriterionImpl(
215                            org.hibernate.criterion.Restrictions.sizeEq(propertyName, size));
216            }
217    
218            @Override
219            public Criterion sizeGe(String propertyName, int size) {
220                    return new CriterionImpl(
221                            org.hibernate.criterion.Restrictions.sizeGe(propertyName, size));
222            }
223    
224            @Override
225            public Criterion sizeGt(String propertyName, int size) {
226                    return new CriterionImpl(
227                            org.hibernate.criterion.Restrictions.sizeGe(propertyName, size));
228            }
229    
230            @Override
231            public Criterion sizeLe(String propertyName, int size) {
232                    return new CriterionImpl(
233                            org.hibernate.criterion.Restrictions.sizeLe(propertyName, size));
234            }
235    
236            @Override
237            public Criterion sizeLt(String propertyName, int size) {
238                    return new CriterionImpl(
239                            org.hibernate.criterion.Restrictions.sizeLt(propertyName, size));
240            }
241    
242            @Override
243            public Criterion sizeNe(String propertyName, int size) {
244                    return new CriterionImpl(
245                            org.hibernate.criterion.Restrictions.sizeNe(propertyName, size));
246            }
247    
248            @Override
249            public Criterion sqlRestriction(String sql) {
250                    return new CriterionImpl(
251                            org.hibernate.criterion.Restrictions.sqlRestriction(sql));
252            }
253    
254            @Override
255            public Criterion sqlRestriction(String sql, Object value, Type type) {
256                    return new CriterionImpl(
257                            org.hibernate.criterion.Restrictions.sqlRestriction(
258                                    sql, value, TypeTranslator.translate(type)));
259            }
260    
261            @Override
262            public Criterion sqlRestriction(String sql, Object[] values, Type[] types) {
263                    org.hibernate.type.Type[] hibernateTypes =
264                            new org.hibernate.type.Type[types.length];
265    
266                    for (int i = 0; i < types.length; i++) {
267                            hibernateTypes[i] = TypeTranslator.translate(types[i]);
268                    }
269    
270                    return new CriterionImpl(
271                            org.hibernate.criterion.Restrictions.sqlRestriction(
272                                    sql, values, hibernateTypes));
273            }
274    
275    }