1 /* 2 * Copyright (c) 2008-2019 Emmanuel Dupuy. 3 * This project is distributed under the GPLv3 license. 4 * This is a Copyleft license that gives the user the right to use, 5 * copy and modify the code freely for non-commercial purposes. 6 */ 7 8 package org.jd.gui.service.fileloader; 9 10 import org.jd.gui.api.API; 11 import org.jd.gui.service.extension.ExtensionService; 12 import org.jd.gui.spi.FileLoader; 13 14 import java.io.File; 15 import java.util.Collection; 16 import java.util.HashMap; 17 18 public class FileLoaderService { 19 protected static final FileLoaderService FILE_LOADER_SERVICE = new FileLoaderService(); 20 getInstance()21 public static FileLoaderService getInstance() { return FILE_LOADER_SERVICE; } 22 23 protected final Collection<FileLoader> providers = ExtensionService.getInstance().load(FileLoader.class); 24 25 protected HashMap<String, FileLoader> mapProviders = new HashMap<>(); 26 FileLoaderService()27 protected FileLoaderService() { 28 for (FileLoader provider : providers) { 29 for (String extension : provider.getExtensions()) { 30 mapProviders.put(extension, provider); 31 } 32 } 33 } 34 get(API api, File file)35 public FileLoader get(API api, File file) { 36 String name = file.getName(); 37 int lastDot = name.lastIndexOf('.'); 38 String extension = name.substring(lastDot+1); 39 FileLoader provider = mapProviders.get(extension); 40 return provider; 41 } 42 getMapProviders()43 public HashMap<String, FileLoader> getMapProviders() { 44 return mapProviders; 45 } 46 } 47