code: @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);
    }
docs: 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