package org.zend.php.zendserver.deployment.core.internal.descriptor; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; import javax.xml.transform.stream.StreamResult; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; import org.zend.php.zendserver.deployment.core.DeploymentCore; /** * Reading and writing DOM document from/to java.io.File */ public class FileStore implements DocumentStore { private IFile fFile; private PipedInputStream pipedInput; private PipedOutputStream pipedOutput; public FileStore(IFile file) { this.fFile = file; } public void write() throws CoreException { try { pipedOutput.close(); } catch (IOException e) { throw new CoreException(new Status(IStatus.ERROR, DeploymentCore.PLUGIN_ID, e.getMessage(), e)); } IProgressMonitor mon = new NullProgressMonitor(); if (fFile.exists()) { fFile.setContents(pipedInput, true, true, mon); } else { fFile.create(pipedInput, true, mon); } } public StreamResult getOutput() throws IOException { pipedInput = new PipedInputStream(); pipedOutput = new PipedOutputStream(pipedInput); return new StreamResult(pipedOutput); } }