package serializers.wobly.simple;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import serializers.Serializer;
import data.media.Image;
import data.media.Media;
import data.media.MediaContent;
import data.media.MediaTransformer;
public class WoblySimpleUtils {
public static WMedia forwardMedia(Media a) {
return new WMedia(a.uri, a.title, a.width, a.height, a.format, a.duration, a.size, a.bitrate, a.persons, a.player, a.copyright);
}
public static Media reverseMedia(WMedia a) {
return new Media(a.uri, a.title, a.width, a.height, a.format, a.duration, a.size, a.bitrate, true, a.persons, a.player, a.copyright);
}
public static WImage forwardImage(Image a) {
return new WImage(a.uri, a.title, a.width, a.height, a.size);
}
public static Image reverseImage(WImage a) {
return new Image(a.uri, a.title, a.width, a.height, a.size);
}
public static List<WImage> forwardImages(List<Image> a) {
ArrayList<WImage> images = new ArrayList<WImage>(a.size());
for (Image image : a) {
images.add(forwardImage(image));
}
return images;
}
public static List<Image> reverseImages(List<WImage> a) {
ArrayList<Image> images = new ArrayList<Image>(a.size());
for (WImage image : a) {
images.add(reverseImage(image));
}
return images;
}
public static final class WoblyTransformer extends MediaTransformer<WMediaContent>
{
@Override
public WMediaContent[] resultArray(int size) { return new WMediaContent[size]; }
@Override
public WMediaContent forward(MediaContent a) {
return new WMediaContent(forwardImages(a.images), forwardMedia(a.media));
}
@Override
public MediaContent reverse(WMediaContent a) {
return new MediaContent(reverseMedia(a.media), reverseImages(a.images));
}
@Override
public MediaContent shallowReverse(WMediaContent a) {
return new MediaContent(reverseMedia(a.media), Collections.<Image>emptyList());
}
}
public static final class WoblySerializer extends Serializer<WMediaContent>
{
@Override
public WMediaContent deserialize(byte[] array)
throws Exception {
return WMediaContent.read(array);
}
@Override
public byte[] serialize(WMediaContent content)
throws Exception {
return content.toByteArray();
}
@Override
public String getName() {
return "wobly";
}
}
}