~raginggoblin/infolog/infolog

« back to all changes in this revision

Viewing changes to InfologServer/lib/hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/impl/CollectionFilterImpl.java

  • Committer: Raging Goblin
  • Date: 2013-11-16 16:51:32 UTC
  • Revision ID: raging_goblin-20131116165132-weujnptzc88uy4ah
Mavenized the project, now using shared project InfologSync

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Hibernate, Relational Persistence for Idiomatic Java
3
 
 *
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.
8
 
 *
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.
12
 
 *
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
16
 
 * for more details.
17
 
 *
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
23
 
 *
24
 
 */
25
 
package org.hibernate.impl;
26
 
 
27
 
import java.util.Iterator;
28
 
import java.util.List;
29
 
import java.util.Map;
30
 
 
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;
36
 
 
37
 
/**
38
 
 * implementation of the <tt>Query</tt> interface for collection filters
39
 
 * @author Gavin King
40
 
 */
41
 
public class CollectionFilterImpl extends QueryImpl {
42
 
 
43
 
        private Object collection;
44
 
 
45
 
        public CollectionFilterImpl(
46
 
                        String queryString,
47
 
                Object collection,
48
 
                SessionImplementor session,
49
 
                ParameterMetadata parameterMetadata) {
50
 
                super( queryString, session, parameterMetadata );
51
 
                this.collection = collection;
52
 
        }
53
 
 
54
 
 
55
 
        /**
56
 
         * @see org.hibernate.Query#iterate()
57
 
         */
58
 
        public Iterator iterate() throws HibernateException {
59
 
                verifyParameters();
60
 
                Map namedParams = getNamedParams();
61
 
                return getSession().iterateFilter( 
62
 
                                collection, 
63
 
                                expandParameterLists(namedParams),
64
 
                                getQueryParameters(namedParams) 
65
 
                );
66
 
        }
67
 
 
68
 
        /**
69
 
         * @see org.hibernate.Query#list()
70
 
         */
71
 
        public List list() throws HibernateException {
72
 
                verifyParameters();
73
 
                Map namedParams = getNamedParams();
74
 
                return getSession().listFilter( 
75
 
                                collection, 
76
 
                                expandParameterLists(namedParams),
77
 
                                getQueryParameters(namedParams) 
78
 
                );
79
 
        }
80
 
 
81
 
        /**
82
 
         * @see org.hibernate.Query#scroll()
83
 
         */
84
 
        public ScrollableResults scroll() throws HibernateException {
85
 
                throw new UnsupportedOperationException("Can't scroll filters");
86
 
        }
87
 
 
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);
93
 
                return result;
94
 
        }
95
 
 
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);
101
 
                return result;
102
 
        }
103
 
 
104
 
}