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.container; 9 10 import org.jd.gui.api.API; 11 import org.jd.gui.service.extension.ExtensionService; 12 import org.jd.gui.spi.ContainerFactory; 13 14 import java.nio.file.Path; 15 import java.util.Collection; 16 17 public class ContainerFactoryService { 18 protected static final ContainerFactoryService CONTAINER_FACTORY_SERVICE = new ContainerFactoryService(); 19 getInstance()20 public static ContainerFactoryService getInstance() { return CONTAINER_FACTORY_SERVICE; } 21 22 protected final Collection<ContainerFactory> providers = ExtensionService.getInstance().load(ContainerFactory.class); 23 get(API api, Path rootPath)24 public ContainerFactory get(API api, Path rootPath) { 25 for (ContainerFactory containerFactory : providers) { 26 if (containerFactory.accept(api, rootPath)) { 27 return containerFactory; 28 } 29 } 30 31 return null; 32 } 33 } 34