package org.inria.myriads.snoozenode.localcontroller.imagemanager;
import org.inria.myriads.snoozenode.configurator.imagerepository.DiskHostingType;
import org.inria.myriads.snoozenode.configurator.imagerepository.ImageRepositorySettings;
import org.inria.myriads.snoozenode.localcontroller.imagemanager.api.ImageManager;
import org.inria.myriads.snoozenode.localcontroller.imagemanager.api.impl.BackingImageManager;
import org.inria.myriads.snoozenode.localcontroller.imagemanager.api.impl.LocalBackingImageManager;
/**
*
* Image manager factory.
*
* @author msimonin
*
*/
public final class ImageManagerFactory
{
/**
* Hide the consturctor.
*/
private ImageManagerFactory()
{
throw new UnsupportedOperationException();
}
/**
*
* creates a new Image manager.
*
* @param settings The image repository settings.
* @return the Image Manager (default to backing).
*/
public static ImageManager newImageManager(ImageRepositorySettings settings)
{
DiskHostingType diskType = settings.getDiskType();
switch(diskType)
{
case backing:
return new BackingImageManager(settings);
case localBacking:
return new LocalBackingImageManager(settings);
default:
return new BackingImageManager(settings);
}
}
}