package org.eclipse.iee.export;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Map;
import org.eclipse.iee.core.IParameterProvider;
import org.eclipse.iee.core.IResultContainer;
import org.eclipse.iee.core.NullResultContainer;
import org.eclipse.iee.core.document.Document;
import org.eclipse.iee.core.document.DocumentPart;
import org.eclipse.iee.core.store.IDocumentStore;
import org.eclipse.iee.web.renderer.IHTMLRenderer;
import org.eclipse.iee.web.renderer.IHTMLRendererManager;
import org.eclipse.iee.web.renderer.IResourceRenderContext;
public class PackageResourceProvider implements IResourceProvider {
private IHTMLRendererManager manager;
private String resourceId;
private DocumentPart documentPart;
private IDocumentStore documentStore;
public PackageResourceProvider(IHTMLRendererManager manager, IDocumentStore documentStore,
String resourceId, DocumentPart documentPart) {
this.manager = manager;
this.resourceId = resourceId;
this.documentStore = documentStore;
this.documentPart = documentPart;
}
public void writeToStream(final OutputStream os) throws IOException {
IHTMLRenderer<DocumentPart> renderer = manager.getPadHTMLRenderer(documentPart);
renderer.renderResource(documentPart, resourceId, new IResourceRenderContext() {
@Override
public boolean isEditMode() {
return false;
}
@Override
public Writer getWriter() throws IOException {
return null;
}
@Override
public IResultContainer getResultContainer() {
return new NullResultContainer();
}
@Override
public InputStream getResourceAsStream(String string) throws IOException {
Document document = documentPart.getDocument();
InputStream stream;
try {
stream = documentStore.getResourceAsStream(document.getBundle(), document.getName(), string);
} catch (FileNotFoundException e) {
stream = new ByteArrayInputStream(new byte[]{});
}
return stream;
}
@Override
public IParameterProvider getParameterProvider() {
return null;
}
@Override
public String createURL(Map<String, String> params) {
return null;
}
@Override
public String createResourceURL(String padId, String resourceId,
Map<String, String> params) {
return null;
}
@Override
public void setContentType(String string) {
}
@Override
public OutputStream getOutputStream() throws IOException {
return os;
}
});
}
}