package org.xmind.ui.internal.editor; import java.io.IOException; import java.io.InputStream; import org.eclipse.core.runtime.IProgressMonitor; import org.xmind.core.Core; import org.xmind.core.CoreException; import org.xmind.core.IEncryptionHandler; import org.xmind.core.IWorkbook; import org.xmind.core.io.IStorage; import org.xmind.ui.internal.WorkbookFactory; public class TemplatedWorkbookLoader implements IWorkbookLoader { private InputStream templateStream; /** * @param templateStream */ public TemplatedWorkbookLoader(InputStream templateStream) { super(); this.templateStream = templateStream; } public IWorkbook loadWorkbook(IStorage storage, IEncryptionHandler encryptionHandler, IProgressMonitor monitor) throws IOException, CoreException, org.eclipse.core.runtime.CoreException { if (templateStream == null) { return WorkbookFactory.createEmptyWorkbook(); } try { return Core.getWorkbookBuilder().loadFromStream(templateStream, storage, encryptionHandler); } finally { templateStream = null; } } }