package be.msyben.vinylManager.tools.importexport;

import be.msyben.vinylManager.entities.Album;
import be.msyben.vinylManager.entities.Collection;
import be.msyben.vinylManager.exceptions.VinylManagerException;
import be.msyben.vinylManager.properties.Language;
import be.msyben.vinylManager.tools.SerialAndZip;
import be.msyben.vinylManager.tools.Tools;
import java.io.File;

/**
 * Export vers un fichier vm plus petit pour les versions android qui ont du mal avec les gros fichier et les grosses images.
 * @author Mathieu Syben
 */
public final class VmAndroidExport {

    private VmAndroidExport() {

    }

    /**
     * Export au format lite.
     * @param f Le fichier de destination.
     * @param collection la collection.
     * @throws VinylManagerException En cas d'erreur.
     */
    public static void exportVmAndroid(File f, Collection collection) throws VinylManagerException {
        Collection toSerial;
        try {
            toSerial = collection.clone();
        } catch (CloneNotSupportedException ex) {
            throw new VinylManagerException(Language.getInstance().get("error.export.vm.lite"));
        }
        if (toSerial == null) {
            throw new VinylManagerException(Language.getInstance().get("error.export.vm.lite"));
        }

        for (Album a : toSerial.getAlbums()) {
            if (a.getImage() != null) {
                if (a.getImage().getContenu() != null) {
                    a.getImage().setContenu(Tools.getReducedImageForAndroid(a.getImage().getContenu()));
                }
            }
        }
        SerialAndZip.save(toSerial, f);
        toSerial = null;
    }

}
