/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package project.latex.balloon.writer;
import project.latex.balloon.writer.camera.CameraDataWriter;
import java.io.File;
import java.util.List;
import project.latex.balloon.DataFolderResource;
/**
*
* @author dgorst
*/
public class CameraFileWriter implements CameraDataWriter {
private File savedImagesDirectory;
final static String imagesDirectoryName = "images";
public CameraFileWriter() {
}
public CameraFileWriter(DataFolderResource dataFolderResource) {
if (dataFolderResource == null) {
throw new IllegalArgumentException("Null data folder resource");
}
setSavedImagesDirectoryFromBaseFolder(dataFolderResource.getDataFolder());
}
private void setSavedImagesDirectoryFromBaseFolder(File baseFolder) {
if (baseFolder == null || !baseFolder.isDirectory()) {
throw new IllegalArgumentException("Base folder is not a directory");
}
this.savedImagesDirectory = new File(baseFolder.getPath() + File.separator + imagesDirectoryName);
if (!this.savedImagesDirectory.exists()) {
this.savedImagesDirectory.mkdir();
}
}
public File getSavedImagesDirectory() {
return this.savedImagesDirectory;
}
@Override
public void writeImageFiles(List<File> imageFiles) throws DataWriteFailedException {
if (imageFiles == null) {
throw new IllegalArgumentException("Null list of images passed to camera file writer");
}
for (File imageFile : imageFiles) {
File movedFile = new File(this.savedImagesDirectory.getPath() + File.separator + imageFile.getName());
if (!imageFile.renameTo(movedFile)) {
throw new DataWriteFailedException("Failed to move file " + imageFile.getPath());
}
}
}
}