org.linkedin.util-core/src/main/java/org/linkedin/util/io/resource/internal/ResourceProviderChain.java
@Override
  public InternalResource doBuildResource(String path)
  {
    // since the list is not empty, this variable will never remain null...
    InternalResource resource = null;

    for(InternalResourceProvider resourceProvider : _resourceProviders)
    {
      resource = resourceProvider.doBuildResource(path);
      if(resource.exists())
        break;
    }

    return new ResourceChain(this, path, resource);
  }
@Override
  public InternalResource doBuildResource(String path)
  {
    // since the list is not empty, this variable will never remain null...
    InternalResource resource = null;

    for(InternalResourceProvider resourceProvider : _resourceProviders)
    {
      resource = resourceProvider.doBuildResource(path);
      if(resource.exists())
        break;
    }

    return new ResourceChain(this, path, resource);
  }
Builds a resource given a path. Only subclasses know how to do that.

@param path the path to the new resource (always starts with /)
@return the resource