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