Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2012 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.springframework.data.mongodb.repository.support;
 
 import static org.springframework.data.querydsl.QueryDslUtils.*;
 
 
 import  org.springframework.util.Assert;

Factory to create MongoRepository instances.

Author(s):
Oliver Gierke
 
 
 	private final MongoOperations mongoOperations;
Creates a new MongoRepositoryFactory with the given MongoOperations.

Parameters:
mongoOperations must not be null
 
 	public MongoRepositoryFactory(MongoOperations mongoOperations) {
 
 		Assert.notNull(mongoOperations);
 		this. = mongoOperations;
 		this. = mongoOperations.getConverter().getMappingContext();
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getRepositoryBaseClass(org.springframework.data.repository.core.RepositoryMetadata)
 	 */
 	protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getTargetRepository(org.springframework.data.repository.core.RepositoryMetadata)
 	 */
 	@SuppressWarnings({ "rawtypes""unchecked" })
 	protected Object getTargetRepository(RepositoryMetadata metadata) {
 
 		Class<?> repositoryInterface = metadata.getRepositoryInterface();
 		MongoEntityInformation<?, SerializableentityInformation = getEntityInformation(metadata.getDomainType());
 
 		if (isQueryDslRepository(repositoryInterface)) {
 			return new QueryDslMongoRepository(entityInformation);
 		} else {
 			return new SimpleMongoRepository(entityInformation);
 		}
 	}
 
 	private static boolean isQueryDslRepository(Class<?> repositoryInterface) {
 
 		return  && QueryDslPredicateExecutor.class.isAssignableFrom(repositoryInterface);
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getQueryLookupStrategy(org.springframework.data.repository.query.QueryLookupStrategy.Key)
	 */
	}

QueryLookupStrategy to create PartTreeMongoQuery instances.

Author(s):
Oliver Gierke
	private class MongoQueryLookupStrategy implements QueryLookupStrategy {
		/*
		 * (non-Javadoc)
		 * @see org.springframework.data.repository.query.QueryLookupStrategy#resolveQuery(java.lang.reflect.Method, org.springframework.data.repository.core.RepositoryMetadata, org.springframework.data.repository.core.NamedQueries)
		 */
		public RepositoryQuery resolveQuery(Method methodRepositoryMetadata metadataNamedQueries namedQueries) {
			MongoQueryMethod queryMethod = new MongoQueryMethod(methodmetadata);
			String namedQueryName = queryMethod.getNamedQueryName();
			if (namedQueries.hasQuery(namedQueryName)) {
				String namedQuery = namedQueries.getQuery(namedQueryName);
				return new StringBasedMongoQuery(namedQueryqueryMethod);
else if (queryMethod.hasAnnotatedQuery()) {
				return new StringBasedMongoQuery(queryMethod);
else {
				return new PartTreeMongoQuery(queryMethod);
			}
		}
	}
	/*
	 * (non-Javadoc)
	 * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getEntityInformation(java.lang.Class)
	 */
	@SuppressWarnings("unchecked")
	public <T, ID extends SerializableMongoEntityInformation<T, ID> getEntityInformation(Class<T> domainClass) {
		if (entity == null) {
			throw new MappingException(String.format("Could not lookup mapping metadata for domain class %s!",
					domainClass.getName()));
		}
		return new MappingMongoEntityInformation<T, ID>((MongoPersistentEntity<T>) entity);
	}
New to GrepCode? Check out our FAQ X