Skip to content

Instantly share code, notes, and snippets.

@gastaldi
Created August 13, 2012 12:42
Show Gist options
  • Select an option

  • Save gastaldi/3340292 to your computer and use it in GitHub Desktop.

Select an option

Save gastaldi/3340292 to your computer and use it in GitHub Desktop.
Forge UrlResource
package org.jboss.forge.resources;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Collections;
import java.util.List;
import org.jboss.forge.project.services.ResourceFactory;
@ResourceHandles({ "http://.*", "https://.*" })
public class UrlResource extends VirtualResource<URL>
{
private URL url;
public UrlResource(final ResourceFactory factory, final Resource<?> parent)
{
super(factory, parent);
}
public UrlResource(final ResourceFactory factory, final URL url)
{
super(factory, null);
this.url = url;
}
@Override
public boolean delete() throws UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
@Override
public boolean delete(boolean recursive) throws UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
@Override
public String getName()
{
return getUnderlyingResourceObject().toString();
}
@Override
public Resource<URL> createFrom(URL file)
{
return new UrlResource(getResourceFactory(), file);
}
@Override
public URL getUnderlyingResourceObject()
{
return url;
}
@Override
public InputStream getResourceInputStream()
{
try
{
return url.openStream();
}
catch (IOException io)
{
throw new RuntimeException(io);
}
}
@Override
public Resource<?> getChild(String name)
{
return null;
}
@Override
public boolean exists()
{
try
{
url.openStream().close();
}
catch (IOException io)
{
return false;
}
return true;
}
@Override
protected List<Resource<?>> doListResources()
{
return Collections.emptyList();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment