package org.rr.jeborker.converter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.rr.commons.mufs.IResourceHandler; import org.rr.commons.utils.ReflectionUtils; import org.rr.jeborker.app.JeboorkerConstants; public class ConverterFactory { public static List<IEBookConverter> getConverter(IResourceHandler resource) { if(resource != null && JeboorkerConstants.SUPPORTED_MIMES.MIME_CBZ.getMime().equals(resource.getMimeType(true))) { ArrayList<IEBookConverter> result = new ArrayList<>(); result.add(new CbzToEpubConverter(resource)); result.add(new CbzToPdfConverter(resource)); result.add(new CbzToCbrConverter(resource)); result.add(new CbzToCbzConverter(resource)); return result; } else if(resource != null && JeboorkerConstants.SUPPORTED_MIMES.MIME_CBR.getMime().equals(resource.getMimeType(true))) { ArrayList<IEBookConverter> result = new ArrayList<>(); result.add(new CbrToEpubConverter(resource)); result.add(new CbrToPdfConverter(resource)); result.add(new CbrToCbzConverter(resource)); result.add(new CbrToCbrConverter(resource)); return result; } else if(resource != null && JeboorkerConstants.SUPPORTED_MIMES.MIME_PDF.getMime().equals(resource.getMimeType(true))) { ArrayList<IEBookConverter> result = new ArrayList<>(); result.add(new PdfToCBZConverter(resource)); result.add(new PdfToTxtConverter(resource)); result.add(new PdfToPdfConverter(resource)); return result; } return Collections.emptyList(); } public static IEBookConverter getConverterbyClass(Class<?> converterClass, IResourceHandler resource) { IEBookConverter converter = (IEBookConverter) ReflectionUtils.getObjectInstance(converterClass, new Object[] {resource}); return converter; } }