Package ro.isdc.wro.model.resource.locator.factory

Source Code of ro.isdc.wro.model.resource.locator.factory.AbstractUriLocatorFactory

/*
* Copyright (c) 2008. All rights reserved.
*/
package ro.isdc.wro.model.resource.locator.factory;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.input.AutoCloseInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ro.isdc.wro.WroRuntimeException;
import ro.isdc.wro.model.resource.locator.UriLocator;


/**
* Holds a list of uri locators. The uriLocator will be created based on the first
* uriLocator from the supplied list which will accept the url.
*
* @author Alex Objelean
* @created Created on Nov 4, 2008
*/
public abstract class AbstractUriLocatorFactory implements UriLocatorFactory {
  private static final Logger LOG = LoggerFactory.getLogger(AbstractUriLocatorFactory.class);
  /**
   * Locates an InputStream for the given uri.
   *
   * @param uri to locate.
   * @return {@link InputStream} of the resource.
   * @throws IOException if uri is invalid or resource couldn't be located.
   */
  public final InputStream locate(final String uri)
    throws IOException {
    final UriLocator uriLocator = getInstance(uri);
    if (uriLocator == null) {
      throw new WroRuntimeException("No locator is capable of handling uri: " + uri);
    }
    LOG.debug("[OK] locating {} using locator: {}", uri, uriLocator.getClass().getSimpleName());
    return new AutoCloseInputStream(uriLocator.locate(uri));
  }
}
TOP

Related Classes of ro.isdc.wro.model.resource.locator.factory.AbstractUriLocatorFactory

TOP
Copyright © 2018 www.massapi.com. 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.