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