package sk.stuba.fiit.perconik.activity.serializers.ui;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPart;
import sk.stuba.fiit.perconik.activity.serializers.AbstractConfigurableMultiSerializer;
import sk.stuba.fiit.perconik.data.content.StructuredContent;
import static sk.stuba.fiit.perconik.activity.serializers.Serializations.putObjectIdentity;
import static sk.stuba.fiit.perconik.activity.serializers.ui.EditorSerializer.putEditor;
import static sk.stuba.fiit.perconik.activity.serializers.ui.PartSerializer.putPart;
import static sk.stuba.fiit.perconik.activity.serializers.ui.ViewSerializer.putView;
abstract class AbstractPartSerializer<T extends IWorkbenchPart> extends AbstractConfigurableMultiSerializer<T> {
AbstractPartSerializer(final Option ... options) {
super(options);
}
AbstractPartSerializer(final Iterable<Option> options) {
super(options);
}
@Override
protected final void put(final StructuredContent content, final IWorkbenchPart part) {
putObjectIdentity(content, part);
putPart(content, part);
if (part instanceof IViewPart) {
putView(content, (IViewPart) part);
}
if (part instanceof IEditorPart) {
putEditor(content, (IEditorPart) part, this.options);
}
}
}