package org.webpieces.router.api.mocks;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.List;
import org.webpieces.util.file.VirtualFile;
public class VirtualFileInputStream implements VirtualFile {
private String name;
private byte[] data;
public VirtualFileInputStream( byte[] data, String name) {
this.data = data;
this.name = name;
}
@Override
public long lastModified() {
return 0;
}
@Override
public String getName() {
return name;
}
@Override
public boolean isDirectory() {
return false;
}
@Override
public List<VirtualFile> list() {
throw new IllegalStateException("This is a file, not a directory");
}
@Override
public String contentAsString(Charset charset) {
return new String(data, charset);
}
@Override
public VirtualFile child(String fileName) {
throw new IllegalStateException("This is a file, not a directory");
}
@Override
public boolean exists() {
return true;
}
@Override
public InputStream openInputStream() {
return new ByteArrayInputStream(data);
}
@Override
public String getAbsolutePath() {
return name;
}
@Override
public URL toURL() {
throw new IllegalStateException("no url");
}
@Override
public long length() {
return data.length;
}
@Override
public boolean mkdirs() {
throw new IllegalStateException("This is a file, not a directory");
}
@Override
public OutputStream openOutputStream() {
throw new IllegalStateException("This is read only");
}
@Override
public boolean delete() {
throw new IllegalStateException("This is read only");
}
@Override
public String getCanonicalPath() {
return getAbsolutePath();
}
}