package sk.stuba.fiit.perconik.activity.serializers.ui.text;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.source.ISourceViewer;
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.text.SourceViewerSerializer.putSourceViewer;
import static sk.stuba.fiit.perconik.activity.serializers.ui.text.TextViewerSerializer.putTextViewer;
abstract class AbstractTextViewerSerializer<T extends ITextViewer> extends AbstractConfigurableMultiSerializer<T> {
AbstractTextViewerSerializer(final Option ... options) {
super(options);
}
AbstractTextViewerSerializer(final Iterable<Option> options) {
super(options);
}
@Override
protected final void put(final StructuredContent content, final T viewer) {
putObjectIdentity(content, viewer);
putTextViewer(content, viewer, this.options);
if (viewer instanceof ISourceViewer) {
putSourceViewer(content, (ISourceViewer) viewer, this.options);
}
}
}