Edit Javadoc.

Apply Spring @NonNull & @Nullable annotations to the API.
This commit is contained in:
John Blum
2019-06-12 18:19:55 -07:00
parent 82a3887f89
commit 3047073b52
4 changed files with 68 additions and 28 deletions

View File

@@ -98,7 +98,7 @@ public class InlineCachingRegionConfigurer<T, ID> implements RegionConfigurer {
* @see java.util.function.Predicate
*/
protected RepositoryCacheLoaderRegionConfigurer<T, ID> newRepositoryCacheLoaderRegionConfigurer(
CrudRepository<T, ID> repository, Predicate<String> regionBeanName) {
@NonNull CrudRepository<T, ID> repository, @Nullable Predicate<String> regionBeanName) {
return new RepositoryCacheLoaderRegionConfigurer<>(repository, regionBeanName);
}
@@ -117,7 +117,7 @@ public class InlineCachingRegionConfigurer<T, ID> implements RegionConfigurer {
* @see java.util.function.Predicate
*/
protected RepositoryCacheWriterRegionConfigurer<T, ID> newRepositoryCacheWriterRegionConfigurer(
CrudRepository<T, ID> repository, Predicate<String> regionBeanName) {
@NonNull CrudRepository<T, ID> repository, @Nullable Predicate<String> regionBeanName) {
return new RepositoryCacheWriterRegionConfigurer<>(repository, regionBeanName);
}

View File

@@ -24,6 +24,8 @@ import org.springframework.data.gemfire.PeerRegionFactoryBean;
import org.springframework.data.gemfire.client.ClientRegionFactoryBean;
import org.springframework.data.gemfire.config.annotation.RegionConfigurer;
import org.springframework.data.repository.CrudRepository;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
@@ -61,8 +63,8 @@ public class RepositoryCacheLoaderRegionConfigurer<T, ID> implements RegionConfi
* @see java.util.function.Predicate
* @see #RepositoryCacheLoaderRegionConfigurer(CrudRepository, Predicate)
*/
public static <T, ID> RepositoryCacheLoaderRegionConfigurer<T, ID> create(CrudRepository<T, ID> repository,
Predicate<String> regionBeanName) {
public static <T, ID> RepositoryCacheLoaderRegionConfigurer<T, ID> create(@NonNull CrudRepository<T, ID> repository,
@Nullable Predicate<String> regionBeanName) {
return new RepositoryCacheLoaderRegionConfigurer<>(repository, regionBeanName);
}
@@ -84,8 +86,8 @@ public class RepositoryCacheLoaderRegionConfigurer<T, ID> implements RegionConfi
* @see java.lang.String
* @see #create(CrudRepository, Predicate)
*/
public static <T, ID> RepositoryCacheLoaderRegionConfigurer<T, ID> create(CrudRepository<T, ID> repository,
String regionBeanName) {
public static <T, ID> RepositoryCacheLoaderRegionConfigurer<T, ID> create(@NonNull CrudRepository<T, ID> repository,
@Nullable String regionBeanName) {
return create(repository, Predicate.isEqual(regionBeanName));
}
@@ -107,15 +109,13 @@ public class RepositoryCacheLoaderRegionConfigurer<T, ID> implements RegionConfi
* @see org.springframework.data.repository.CrudRepository
* @see java.util.function.Predicate
*/
public RepositoryCacheLoaderRegionConfigurer(CrudRepository<T, ID> repository, Predicate<String> regionBeanName) {
public RepositoryCacheLoaderRegionConfigurer(@NonNull CrudRepository<T, ID> repository,
@Nullable Predicate<String> regionBeanName) {
Assert.notNull(repository, "CrudRepository is required");
this.repository = repository;
this.regionBeanName = regionBeanName != null
? regionBeanName
: beanName -> false;
this.regionBeanName = regionBeanName != null ? regionBeanName : beanName -> false;
}
/**
@@ -126,7 +126,7 @@ public class RepositoryCacheLoaderRegionConfigurer<T, ID> implements RegionConfi
* targeted for the {@link CacheLoader} registration.
* @see java.util.function.Predicate
*/
protected Predicate<String> getRegionBeanName() {
protected @NonNull Predicate<String> getRegionBeanName() {
return this.regionBeanName;
}
@@ -137,7 +137,7 @@ public class RepositoryCacheLoaderRegionConfigurer<T, ID> implements RegionConfi
* @return the configured {@link CrudRepository} used to load {@link Region} values on cache misses.
* @see org.springframework.data.repository.CrudRepository
*/
protected CrudRepository<T, ID> getRepository() {
protected @NonNull CrudRepository<T, ID> getRepository() {
return this.repository;
}

View File

@@ -24,26 +24,68 @@ import org.springframework.data.gemfire.PeerRegionFactoryBean;
import org.springframework.data.gemfire.client.ClientRegionFactoryBean;
import org.springframework.data.gemfire.config.annotation.RegionConfigurer;
import org.springframework.data.repository.CrudRepository;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* The RepositoryCacheWriterRegionConfigurer class...
* Spring Data {@link RegionConfigurer} implementation used to adapt and register a Spring Data {@link CrudRepository}
* as a {@link CacheWriter} for a targeted {@link Region}.
*
* @author John Blum
* @since 1.0.0
* @param <T> {@link Class type} of the persistent entity.
* @param <ID> {@link Class type} of the persistent entity identifier (ID).
* @see java.util.function.Predicate
* @see org.apache.geode.cache.CacheWriter
* @see org.apache.geode.cache.Region
* @see org.springframework.data.gemfire.PeerRegionFactoryBean
* @see org.springframework.data.gemfire.client.ClientRegionFactoryBean
* @see org.springframework.data.gemfire.config.annotation.RegionConfigurer
* @see org.springframework.data.repository.CrudRepository
* @since 1.1.0
*/
public class RepositoryCacheWriterRegionConfigurer<T, ID> implements RegionConfigurer {
public static <T, ID> RepositoryCacheWriterRegionConfigurer<T, ID> create(CrudRepository<T, ID> repository,
Predicate<String> regionBeanName) {
/**
* Factory method used to construct a new instance of {@link RepositoryCacheWriterRegionConfigurer} initialized with
* the given Spring Data {@link CrudRepository} used to write {@link Region} values to a backend data source
* /data store along with a given {@link Predicate} to identify/qualify the {@link Region} on which
* the {@link CrudRepository} will be registered and used as a {@link CacheWriter}.
*
* @param repository {@link CrudRepository} used to write {@link Region} values to a backend data source.
* @param regionBeanName {@link Predicate} used to identify/qualify the {@link Region} on which
* the {@link CrudRepository} will be registered and used as a {@link CacheWriter}.
* @return a new instance of {@link RepositoryCacheWriterRegionConfigurer}.
* @throws IllegalArgumentException if {@link CrudRepository} is {@literal null}.
* @see org.springframework.data.repository.CrudRepository
* @see java.util.function.Predicate
* @see #RepositoryCacheWriterRegionConfigurer(CrudRepository, Predicate)
*/
public static <T, ID> RepositoryCacheWriterRegionConfigurer<T, ID> create(@NonNull CrudRepository<T, ID> repository,
@Nullable Predicate<String> regionBeanName) {
return new RepositoryCacheWriterRegionConfigurer<>(repository, regionBeanName);
}
public static <T, ID> RepositoryCacheWriterRegionConfigurer<T, ID> create(CrudRepository<T, ID> repository,
String regionBeanName) {
/**
* Factory method used to construct a new instance of {@link RepositoryCacheWriterRegionConfigurer} initialized with
* the given Spring Data {@link CrudRepository} used to write {@link Region} values to a backend data source
* /data store along with a given {@link Predicate} to identify/qualify the {@link Region} on which
* the {@link CrudRepository} will be registered and used as a {@link CacheWriter}.
*
* @param repository {@link CrudRepository} used to write {@link Region} values to a backend data source.
* @param regionBeanName {@link String} containing the bean name identifying/qualifying the {@link Region}
* on which the {@link CrudRepository} will be registered and used as a {@link CacheWriter}.
* @return a new instance of {@link RepositoryCacheWriterRegionConfigurer}.
* @throws IllegalArgumentException if {@link CrudRepository} is {@literal null}.
* @see org.springframework.data.repository.CrudRepository
* @see java.lang.String
* @see #create(CrudRepository, Predicate)
*/
public static <T, ID> RepositoryCacheWriterRegionConfigurer<T, ID> create(@NonNull CrudRepository<T, ID> repository,
@Nullable String regionBeanName) {
return new RepositoryCacheWriterRegionConfigurer<>(repository, Predicate.isEqual(regionBeanName));
return create(repository, Predicate.isEqual(regionBeanName));
}
private final CrudRepository<T, ID> repository;
@@ -63,15 +105,13 @@ public class RepositoryCacheWriterRegionConfigurer<T, ID> implements RegionConfi
* @see org.springframework.data.repository.CrudRepository
* @see java.util.function.Predicate
*/
public RepositoryCacheWriterRegionConfigurer(CrudRepository<T, ID> repository, Predicate<String> regionBeanName) {
public RepositoryCacheWriterRegionConfigurer(@NonNull CrudRepository<T, ID> repository,
@Nullable Predicate<String> regionBeanName) {
Assert.notNull(repository, "CrudRepository is required");
this.repository = repository;
this.regionBeanName = regionBeanName != null
? regionBeanName
: beanName -> false;
this.regionBeanName = regionBeanName != null ? regionBeanName : beanName -> false;
}
/**
@@ -82,7 +122,7 @@ public class RepositoryCacheWriterRegionConfigurer<T, ID> implements RegionConfi
* targeted for the {@link CacheWriter} registration.
* @see java.util.function.Predicate
*/
protected Predicate<String> getRegionBeanName() {
protected @NonNull Predicate<String> getRegionBeanName() {
return regionBeanName;
}
@@ -93,7 +133,7 @@ public class RepositoryCacheWriterRegionConfigurer<T, ID> implements RegionConfi
* @return the configured {@link CrudRepository} used to write {@link Region} values to a backend data source.
* @see org.springframework.data.repository.CrudRepository
*/
protected CrudRepository<T, ID> getRepository() {
protected @NonNull CrudRepository<T, ID> getRepository() {
return this.repository;
}

View File

@@ -59,7 +59,7 @@ public abstract class RepositoryCacheLoaderWriterSupport<T, ID>
private Environment environment;
protected RepositoryCacheLoaderWriterSupport(CrudRepository<T, ID> repository) {
protected RepositoryCacheLoaderWriterSupport(@NonNull CrudRepository<T, ID> repository) {
Assert.notNull(repository, "Repository is required");