Refactor ResourceCapableCacheDataImporterExporter class with Open/Closed Principles.

Change CacheResourceResolver, ExportResourceResolver and ImportResourceResolver interfaces into @FunctionalInterfaces; provide default implementation for the resolve(location:String):Optional<Resource> method.

Change access modifier on AbstractExportResourceResolver and AbstractImportResourceResolver from protected to public.

Resolves gh-92.
This commit is contained in:
John Blum
2020-07-20 13:10:20 -07:00
parent e49ffa3d0f
commit 4bf62d9bf0

View File

@@ -202,6 +202,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
* @see org.apache.geode.cache.GemFireCache * @see org.apache.geode.cache.GemFireCache
* @see org.apache.geode.cache.Region * @see org.apache.geode.cache.Region
*/ */
@FunctionalInterface
protected interface CacheResourceResolver extends ResourceResolver { protected interface CacheResourceResolver extends ResourceResolver {
/** /**
@@ -217,6 +218,13 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
*/ */
Optional<Resource> resolve(@NonNull Region<?, ?> region); Optional<Resource> resolve(@NonNull Region<?, ?> region);
/**
* @inheritDoc
*/
@Override
default Optional<Resource> resolve(@NonNull String location) {
return Optional.empty();
}
} }
/** /**
@@ -439,6 +447,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
* @see org.springframework.geode.core.io.ResourceResolver * @see org.springframework.geode.core.io.ResourceResolver
* @see CacheResourceResolver * @see CacheResourceResolver
*/ */
@FunctionalInterface
public interface ExportResourceResolver extends CacheResourceResolver { } public interface ExportResourceResolver extends CacheResourceResolver { }
/** /**
@@ -448,7 +457,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
* @see AbstractCacheResourceResolver * @see AbstractCacheResourceResolver
* @see ExportResourceResolver * @see ExportResourceResolver
*/ */
protected abstract class AbstractExportResourceResolver extends AbstractCacheResourceResolver public abstract class AbstractExportResourceResolver extends AbstractCacheResourceResolver
implements ExportResourceResolver { implements ExportResourceResolver {
/** /**
@@ -501,6 +510,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
* @see org.springframework.geode.core.io.ResourceResolver * @see org.springframework.geode.core.io.ResourceResolver
* @see CacheResourceResolver * @see CacheResourceResolver
*/ */
@FunctionalInterface
public interface ImportResourceResolver extends CacheResourceResolver { } public interface ImportResourceResolver extends CacheResourceResolver { }
/** /**
@@ -510,7 +520,7 @@ public abstract class ResourceCapableCacheDataImporterExporter extends AbstractC
* @see AbstractCacheResourceResolver * @see AbstractCacheResourceResolver
* @see ImportResourceResolver * @see ImportResourceResolver
*/ */
protected abstract class AbstractImportResourceResolver extends AbstractCacheResourceResolver public abstract class AbstractImportResourceResolver extends AbstractCacheResourceResolver
implements ImportResourceResolver { implements ImportResourceResolver {
/** /**