@Override
public Optional<Resource> attemptFetch(final URI resourceURI,
final Function<URI, Optional<Resource>> defaultFetcher)
{
if (TEMPORARY_DIRECTORY_STRING == null)
{
logger.error("StrategyID {}: failed to read property {}, skipping cache fetch...",
this.getStrategyID(), PROPERTY_LOCAL_TEMPORARY_DIRECTORY);
return Optional.empty();
}
if (resourceURI == null)
{
logger.warn("StrategyID {}: resourceURI was null, skipping cache fetch...",
this.getStrategyID());
return Optional.empty();
}
final File cachedFile = getCachedFile(resourceURI);
attemptToCacheFileLocally(cachedFile, defaultFetcher, resourceURI);
if (cachedFile.exists())
{
logger.trace("StrategyID {}: returning local copy of resource {}", this.getStrategyID(),
resourceURI);
return Optional.of(cachedFile);
}
logger.warn("StrategyID {}: could not find local copy of resource {}", this.getStrategyID(),
resourceURI);
return Optional.empty();
}