2
* Hibernate, Relational Persistence for Idiomatic Java
4
* Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
5
* indicated by the @author tags or express copyright attribution
6
* statements applied by the authors. All third-party contributions are
7
* distributed under license by Red Hat Middleware LLC.
9
* This copyrighted material is made available to anyone wishing to use, modify,
10
* copy, or redistribute it subject to the terms and conditions of the GNU
11
* Lesser General Public License, as published by the Free Software Foundation.
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
18
* You should have received a copy of the GNU Lesser General Public License
19
* along with this distribution; if not, write to:
20
* Free Software Foundation, Inc.
21
* 51 Franklin Street, Fifth Floor
22
* Boston, MA 02110-1301 USA
25
package org.hibernate.impl;
27
import java.util.Iterator;
28
import java.util.List;
31
import org.hibernate.HibernateException;
32
import org.hibernate.ScrollableResults;
33
import org.hibernate.engine.SessionImplementor;
34
import org.hibernate.engine.query.ParameterMetadata;
35
import org.hibernate.type.Type;
38
* implementation of the <tt>Query</tt> interface for collection filters
41
public class CollectionFilterImpl extends QueryImpl {
43
private Object collection;
45
public CollectionFilterImpl(
48
SessionImplementor session,
49
ParameterMetadata parameterMetadata) {
50
super( queryString, session, parameterMetadata );
51
this.collection = collection;
56
* @see org.hibernate.Query#iterate()
58
public Iterator iterate() throws HibernateException {
60
Map namedParams = getNamedParams();
61
return getSession().iterateFilter(
63
expandParameterLists(namedParams),
64
getQueryParameters(namedParams)
69
* @see org.hibernate.Query#list()
71
public List list() throws HibernateException {
73
Map namedParams = getNamedParams();
74
return getSession().listFilter(
76
expandParameterLists(namedParams),
77
getQueryParameters(namedParams)
82
* @see org.hibernate.Query#scroll()
84
public ScrollableResults scroll() throws HibernateException {
85
throw new UnsupportedOperationException("Can't scroll filters");
88
public Type[] typeArray() {
89
List typeList = getTypes();
90
int size = typeList.size();
91
Type[] result = new Type[size+1];
92
for (int i=0; i<size; i++) result[i+1] = (Type) typeList.get(i);
96
public Object[] valueArray() {
97
List valueList = getValues();
98
int size = valueList.size();
99
Object[] result = new Object[size+1];
100
for (int i=0; i<size; i++) result[i+1] = valueList.get(i);