Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 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.gemfire.repository.support;
 
 
 
 import  com.gemstone.gemfire.cache.Region;

RepositoryFactorySupport implementation creating repository proxies for Gemfire.

Author(s):
Oliver Gierke
David Turanski
 
 
 
 	private final Regions regions;

Creates a new GemfireRepositoryFactory.

Parameters:
regions must not be null.
context
 
 	public GemfireRepositoryFactory(Iterable<Region<?, ?>> regions,
 
 		Assert.notNull(regions);
 
 		this. = context == null ? new GemfireMappingContext() : context;
 		this. = new Regions(regionsthis.);
 	}
 
 	/*
 	 * (non-Javadoc)
 	 * 
 	 * @see
 	 * org.springframework.data.repository.core.support.RepositoryFactorySupport
 	 * #getEntityInformation(java.lang.Class)
 	 */
 	@SuppressWarnings("unchecked")
 	public <T, ID extends SerializableGemfireEntityInformation<T, ID> getEntityInformation(Class<T> domainClass) {
 
 		return new DefaultGemfireEntityInformation<T, ID>(entity);
 	}
 
 	/*
 	 * (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) {
 
 		GemfireTemplate gemfireTemplate = getTemplate(metadata);
 
		return new SimpleGemfireRepository(gemfireTemplateentityInformation);
	}
		Class<?> domainClass = metadata.getDomainType();
		Region<?, ?> region = .getRegion(domainClass);
		if (region == null) {
			throw new IllegalStateException(String.format(
					"No region '%s' found for domain class %s! Make sure you have "
"configured a Gemfire region of that name in your application context!",
					entity.getRegionName(), domainClass));
		}
		Class<?> regionKeyType = region.getAttributes().getKeyConstraint();
		Class<?> entityIdType = metadata.getIdType();
		if (regionKeyType != null && entity.getIdProperty() != null) {
			Assert.isTrue(
					regionKeyType.isAssignableFrom(entityIdType),
					String.format(
							"The region referenced only supports keys of type %s but the entity to be stored has an id of type %s!",
							regionKeyTypeentityIdType));
		}
		return new GemfireTemplate(region);
	}
	/*
	 * (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
	 * #getQueryLookupStrategy(org.springframework.data.repository.query.
	 * QueryLookupStrategy.Key)
	 */
		return new QueryLookupStrategy() {
			public RepositoryQuery resolveQuery(Method methodRepositoryMetadata metadataNamedQueries namedQueries) {
				GemfireQueryMethod queryMethod = new GemfireQueryMethod(methodmetadata);
				GemfireTemplate template = getTemplate(metadata);
				if (queryMethod.hasAnnotatedQuery()) {
					return new StringBasedGemfireRepositoryQuery(queryMethodtemplate);
				}
				String namedQueryName = queryMethod.getNamedQueryName();
				if (namedQueries.hasQuery(namedQueryName)) {
					return new StringBasedGemfireRepositoryQuery(namedQueries.getQuery(namedQueryName), queryMethod,
							template);
				}
				return new PartTreeGemfireRepositoryQuery(queryMethodtemplate);
			}
		};
	}
New to GrepCode? Check out our FAQ X