Package org.pentaho.reporting.libraries.resourceloader.cache

Examples of org.pentaho.reporting.libraries.resourceloader.cache.ResourceFactoryCache


    if (key == null)
    {
      throw new NullPointerException();
    }

    final ResourceFactoryCache factoryCache = getFactoryCache();
    // ok, we have a handle to the data, and the data is current.
    // Lets check whether we also have a cached result.
    final Resource resource = factoryCache.get(key, target);
    if (resource != null)
    {
      if (backend.isResourceUnchanged(this, resource))
      {
        // mama, look i am a good cache manager ...
        return resource;
      }
      else
      {
        // someone evil changed one of the dependent resources ...
        factoryCache.remove(resource);
      }
    }

    final ResourceData loadedData = load(key);
    final Resource newResource;
    if (loadedData instanceof ResourceBundleData)
    {
      final ResourceBundleData resourceBundleData = (ResourceBundleData) loadedData;
      final ResourceManager derivedManager = resourceBundleData.deriveManager(this);
      newResource = backend.create(derivedManager, resourceBundleData, context, target);
      if (isResourceCacheable(newResource))
      {
        if (EHCacheModule.CACHE_MONITOR.isDebugEnabled())
        {
          EHCacheModule.CACHE_MONITOR.debug("Storing created bundle-resource for key: " + key);
        }
        factoryCache.put(newResource);
        if (key != newResource.getSource())
        {
          factoryCache.put(new BundleCacheResourceWrapper(newResource, key));
        }
      }
      else
      {
        if (EHCacheModule.CACHE_MONITOR.isDebugEnabled())
        {
          EHCacheModule.CACHE_MONITOR.debug("Created bundle-resource is not cacheable for " + key);
        }
      }
    }
    else
    {
      newResource = backend.create(this, loadedData, context, target);
      if (isResourceCacheable(newResource))
      {
        if (EHCacheModule.CACHE_MONITOR.isDebugEnabled())
        {
          EHCacheModule.CACHE_MONITOR.debug("Storing created resource for key: " + key);
        }
        factoryCache.put(newResource);
      }
      else
      {
        if (EHCacheModule.CACHE_MONITOR.isDebugEnabled())
        {
View Full Code Here


  {
    try
    {
      final ObjectFactory objectFactory = LibLoaderBoot.getInstance().getObjectFactory();
      final ResourceFactoryCacheProvider maybeDataCacheProvider = objectFactory.get(ResourceFactoryCacheProvider.class);
      final ResourceFactoryCache cache = maybeDataCacheProvider.createFactoryCache();
      if (cache != null)
      {
        setFactoryCache(cache);
      }
    }
View Full Code Here

    if (key == null)
    {
      throw new NullPointerException();
    }

    final ResourceFactoryCache factoryCache = getFactoryCache();
    // ok, we have a handle to the data, and the data is current.
    // Lets check whether we also have a cached result.
    final Resource resource = factoryCache.get(key);
    if (resource != null)
    {
      if (backend.isResourceUnchanged(this, resource))
      {
        // mama, look i am a good cache manager ...
        return resource;
      }
      else
      {
        // someone evil changed one of the dependent resources ...
        factoryCache.remove(resource);
      }
    }

    final ResourceData loadedData = load(key);
    final Resource newResource = backend.create(this, loadedData, context, target);
    factoryCache.put(newResource);
    return newResource;
  }
View Full Code Here

    if (maybeCacheProvider != null)
    {
      final ResourceFactoryCacheProvider provider = (ResourceFactoryCacheProvider) maybeCacheProvider;
      try
      {
        final ResourceFactoryCache cache = provider.createFactoryCache();
        if (cache != null)
        {
          setFactoryCache(cache);
        }
      }
View Full Code Here

TOP

Related Classes of org.pentaho.reporting.libraries.resourceloader.cache.ResourceFactoryCache

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.