Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Hibernate, Relational Persistence for Idiomatic Java
   *
   * JBoss, Home of Professional Open Source
   * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors
   * as indicated by the @authors tag. All rights reserved.
   * See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
  * This copyrighted material is made available to anyone wishing to use,
  * modify, copy, or redistribute it subject to the terms and conditions
  * of the GNU Lesser General Public License, v. 2.1.
  * This program is distributed in the hope that it will be useful, but WITHOUT A
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  * You should have received a copy of the GNU Lesser General Public License,
  * v.2.1 along with this distribution; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  * MA  02110-1301, USA.
  */
 package org.hibernate.search.query.hibernate.impl;
 
 import java.util.List;
 import java.util.Set;
 
 
Initialize object using one or several criteria queries.

Author(s):
Emmanuel Bernard <emmanuel@hibernate.org>
 
 public class CriteriaObjectsInitializer implements ObjectsInitializer {
 
 	private static final Log log = LoggerFactory.make();
 	private static final int MAX_IN_CLAUSE = 500;
 	
 	
 		// use INSTANCE instead of constructor
 	}
 
 	public void initializeObjects(EntityInfo[] entityInfos,
 										 Criteria criteriaClass<?> entityType,
 										 SearchFactoryImplementor searchFactoryImplementor,
 										 TimeoutManager timeoutManager,
 										 Session session) {
 		//Do not call isTimeOut here as the caller might be the last biggie on the list.
 		final int maxResults = entityInfos.length;
 		if ( .isTraceEnabled() ) .tracef"Load %d objects using criteria queries"maxResults );
 
 		if ( maxResults == 0 ) {
 			return;
 		}
 
 		//criteria query not overridden, define one
 		if ( criteria == null ) {
 			criteria = session.createCriteriaentityType );
 		}
 
 		Set<Class<?>> indexedEntities = searchFactoryImplementor.getIndexedTypesPolymorphicnew Class<?>[] { entityType } );
 		DocumentBuilderIndexedEntity<?> builder = searchFactoryImplementor.getIndexBindingForEntity(
 				indexedEntities.iterator().next()
 		String idName = builder.getIdentifierName();
 		Disjunction disjunction = Restrictions.disjunction();
 
 		int loop = maxResults / ;
 		boolean exact = maxResults %  == 0;
 		if ( !exact ) {
 			loop++;
 		}
 		for ( int index = 0; index < loopindex++ ) {
 			int max = index *  +  <= maxResults ?
 					index *  +  :
 					maxResults;
 			List<Serializableids = new ArrayList<Serializable>( max - index *  );
 			for ( int entityInfoIndex = index * entityInfoIndex < maxentityInfoIndex++ ) {
 				ids.addentityInfos[entityInfoIndex].getId() );
 			}
 			disjunction.add( Restrictions.inidNameids ) );
 		}
 		criteria.adddisjunction );
 		//not best effort so fail fast
 		if ( timeoutManager.getType() != .. ) {
 			Long timeLeftInSecond = timeoutManager.getTimeoutLeftInSeconds();
			if ( timeLeftInSecond != null ) {
				if (timeLeftInSecond == 0) {
				}
				criteria.setTimeouttimeLeftInSecond.intValue() );
			}
		}
		criteria.list(); //load all objects
	}
New to GrepCode? Check out our FAQ X