/**
*
*/
package org.jboss.test.faces.staging;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Set;
/**
* @author asmirnov
*
*/
public interface ServerResource {
/**
* Get URL for a test server resource content. Directories should return null or "stub"
* @return
*/
public URL getURL();
/**
* Create input stream to read content. Directories returns {@code null}
* @return
* @throws IOException
*/
public InputStream getAsStream() throws IOException;
/**
* @return strings representing directory content. File-like resources return null.
*/
public Set<String> getPaths();
/**
* Append resource to the current directory-like structure.
* @param path
* @param resource
*/
public void addResource(ServerResourcePath path, ServerResource resource);
/**
* Get resource from the current directory or its subdirectories.
* @param path
* @return
*/
public ServerResource getResource(ServerResourcePath path);
}