use of org.eclipse.mylyn.docs.epub.ocf.RootFiles in project mylyn.docs by eclipse.
the class TestEPUB method testPackFail.
/**
* Test method for {@link org.eclipse.mylyn.docs.epub.core.EPUB#pack(java.io.File)}.
* <ul>
* <li>Shall throw exception when unknown publication type is added.</li>
* </ul>
*
* @throws Exception
*/
@Test
public final void testPackFail() throws Exception {
EPUB epub = new EPUB();
File drawing = new File("testdata/drawing.svg");
epub.add(drawing, "image/svg+xml");
Container container = epub.getContainer();
RootFiles rootfiles = container.getRootfiles();
EList<RootFile> files = rootfiles.getRootfiles();
files.get(0).setPublication(null);
try {
epub.pack(epubFile);
fail();
} catch (Exception e) {
}
}
use of org.eclipse.mylyn.docs.epub.ocf.RootFiles in project mylyn.docs by eclipse.
the class TestEPUB method testAddOPSPublication.
/**
* Test method for {@link org.eclipse.mylyn.docs.epub.core.EPUB#add(org.eclipse.mylyn.docs.epub.core.Publication)} .
* <ul>
* <li>Container shall hold more than one OPS publication</li>
* <li>OPS structures shall follow naming conventions.</li>
* <li>OPS MIME-type shall be correct</li>
* <li>Rootfile object shall be correct.</li>
* </ul>
*
* @throws Exception
*/
@Test
public final void testAddOPSPublication() throws Exception {
EPUB epub = new EPUB();
Publication oebps1 = new OPSPublication();
Publication oebps2 = new OPSPublication();
epub.add(oebps1);
epub.add(oebps2);
Container container = epub.getContainer();
RootFiles rootfiles = container.getRootfiles();
EList<RootFile> files = rootfiles.getRootfiles();
assertEquals(true, files.get(0).getFullPath().equals("OEBPS/content.opf"));
assertEquals(true, files.get(1).getFullPath().equals("OEBPS_1/content.opf"));
assertEquals(true, files.get(0).getMediaType().equals("application/oebps-package+xml"));
assertEquals(true, files.get(1).getMediaType().equals("application/oebps-package+xml"));
assertEquals(true, files.get(0).getPublication() == oebps1);
assertEquals(true, files.get(1).getPublication() == oebps2);
}
use of org.eclipse.mylyn.docs.epub.ocf.RootFiles in project mylyn.docs by eclipse.
the class EPUB method add.
/**
* Adds a new publication (or root file) to the EPUB. Use {@link #add(Publication)} when adding an OEBPS
* publication.
* <p>
* Note that while an {@link EPUB} can technically contain multiple instances of an {@link Publication}, in practice
* reading systems does not support this.
* </p>
*
* @param file
* the publication to add
* @param type
* the MIME type of the publication
* @see #add(Publication)
*/
public void add(File file, String type) {
String name = type.substring(type.lastIndexOf('/') + 1, type.length()).toUpperCase();
RootFiles rootFiles = ocfContainer.getRootfiles();
int count = rootFiles.getRootfiles().size();
if (count >= 1) {
// $NON-NLS-1$
log("Multiple root files is unsupported by most reading systems!", Severity.WARNING);
}
// $NON-NLS-1$
String rootFileName = count > 0 ? name + "_" + count : name;
rootFileName += File.separator + file.getName();
RootFile rootFile = OCFFactory.eINSTANCE.createRootFile();
rootFile.setFullPath(rootFileName);
rootFile.setMediaType(type);
rootFile.setPublication(file);
rootFiles.getRootfiles().add(rootFile);
log(// $NON-NLS-1$
MessageFormat.format(// $NON-NLS-1$
Messages.getString("EPUB.1"), // $NON-NLS-1$
rootFile.getFullPath(), rootFile.getMediaType()), Severity.VERBOSE);
}
use of org.eclipse.mylyn.docs.epub.ocf.RootFiles in project mylyn.docs by eclipse.
the class TestEPUB method testAddFileString.
/**
* Test method for {@link org.eclipse.mylyn.docs.epub.core.EPUB#add(java.io.File, java.lang.String)} .
* <ul>
* <li>Publication MIME-type shall be correct</li>
* <li>Rootfile path shall be correct</li>
* <li>Rootfile object shall be correct.</li>
* </ul>
*
* @throws Exception
*/
@Test
public final void testAddFileString() throws Exception {
EPUB epub = new EPUB();
File drawing = new File("testdata/drawing.svg");
epub.add(drawing, "image/svg+xml");
Container container = epub.getContainer();
RootFiles rootfiles = container.getRootfiles();
EList<RootFile> files = rootfiles.getRootfiles();
assertEquals(true, files.get(0).getFullPath().equals("SVG+XML/drawing.svg"));
assertEquals(true, files.get(0).getMediaType().equals("image/svg+xml"));
assertEquals(true, files.get(0).getPublication() == drawing);
}
use of org.eclipse.mylyn.docs.epub.ocf.RootFiles in project mylyn.docs by eclipse.
the class EPUB method add.
/**
* Adds a new OEBPS publication to the EPUB. Use {@link #add(File, String)} to add other types of content.
* <p>
* Note that while an {@link EPUB} can technically contain multiple instances of an {@link Publication}, in practice
* reading systems does not support this.
* </p>
*
* @param oebps
* the publication to add.
* @since 2.0
*/
public void add(Publication oebps) {
RootFiles rootFiles = ocfContainer.getRootfiles();
int count = rootFiles.getRootfiles().size();
if (count >= 1) {
// $NON-NLS-1$
log("Multiple root files is unsupported by most reading systems!", Severity.WARNING);
}
// $NON-NLS-1$ //$NON-NLS-2$
String rootFileName = count > 0 ? "OEBPS_" + count : "OEBPS";
// $NON-NLS-1$
rootFileName += "/content.opf";
RootFile rootFile = OCFFactory.eINSTANCE.createRootFile();
rootFile.setFullPath(rootFileName);
rootFile.setMediaType(MIMETYPE_OEBPS);
rootFile.setPublication(oebps);
rootFiles.getRootfiles().add(rootFile);
log(// $NON-NLS-1$
MessageFormat.format(// $NON-NLS-1$
Messages.getString("EPUB.0"), // $NON-NLS-1$
rootFile.getFullPath(), rootFile.getMediaType()), Severity.VERBOSE);
}
Aggregations