1 package org.simantics.export.core.intf;
\r
3 import org.eclipse.jface.resource.ImageDescriptor;
\r
4 import org.simantics.export.core.error.ExportException;
\r
7 * Description of a file format.
\r
9 * @author toni.kalajainen@semantum.fi
\r
11 public interface Format extends FormatClass {
\r
15 * @return format identifier
\r
20 * File extension of this format
\r
26 * Defines the writer class that the exporter extension will use for writing the content of this format.
\r
28 * @throws ClassNotFoundException
\r
30 Class<?> writerClass() throws ClassNotFoundException;
\r
33 * The class the importer will use for reading the associated content type.
\r
35 * @throws ClassNotFoundException
\r
37 Class<?> readerClass() throws ClassNotFoundException;
\r
40 * Create action factory for the file format.
\r
42 * @return action factory
\r
43 * @throws ExportException
\r
45 FormatClass formatActions() throws ExportException;
\r
54 * The label in plural form
\r
63 ImageDescriptor icon();
\r
66 * Set to true, if the format supports merging of multiple items of content of one type.
\r
67 * @return true if this is group format
\r
69 boolean isGroupFormat();
\r
72 * Set to true, if the format can contain multiple content items of any types.
\r
73 * @return true if this is container format
\r
75 boolean isContainerFormat();
\r
78 * This attribute determines if the format is attachable to another format of group type.
\r
80 * @return true if this is attachable format.
\r
82 boolean isAttachable();
\r
85 * This property determines - if true - that the content must always be published and cannot be hidden inside container file.
\r
87 * @return if, true that the content must always be published and cannot be hidden inside container file.
\r
89 boolean isAlwaysPublished();
\r
92 * If true, this format is can contain links to other files.
\r
93 * @return true, this format is can contain links to other files.
\r
95 boolean isLinkContainer();
\r
98 * The default selection for merge the group.
\r
101 boolean mergeGroupFormatDefault();
\r