package sk.stuba.fiit.perconik.activity.serializers;
import java.util.Arrays;
import javax.annotation.Nullable;
import sk.stuba.fiit.perconik.data.content.Content;
import sk.stuba.fiit.perconik.eclipse.swt.widgets.DisplayTask;
public final class Serializers {
private Serializers() {}
public static <T> DisplayTask<Content> asDisplayTask(final Serializer<? super T> serializer, @Nullable final T object) {
return new DisplayTask<Content>() {
public Content call() throws Exception {
return serializer.serialize(object);
}
};
}
public static <T> MultiSerializer<T> compound(final AbstractSerializer<? super T> primary, final AbstractSerializer<? super T> secondary) {
return compound(Arrays.<AbstractSerializer<? super T>>asList(primary, secondary));
}
public static <T> MultiSerializer<T> compound(final Iterable<? extends AbstractSerializer<? super T>> serializers) {
return new CompoundSerializer<>(serializers);
}
}