001 package cpw.mods.fml.common.discovery;
002
003 import java.util.List;
004
005 import com.google.common.base.Throwables;
006
007 import cpw.mods.fml.common.ModContainer;
008
009 public enum ContainerType
010 {
011 JAR(JarDiscoverer.class),
012 DIR(DirectoryDiscoverer.class);
013
014 private ITypeDiscoverer discoverer;
015
016 private ContainerType(Class<? extends ITypeDiscoverer> discovererClass)
017 {
018 try
019 {
020 this.discoverer = discovererClass.newInstance();
021 }
022 catch (Exception e)
023 {
024 throw Throwables.propagate(e);
025 }
026 }
027
028 public List<ModContainer> findMods(ModCandidate candidate, ASMDataTable table)
029 {
030 return discoverer.discover(candidate, table);
031 }
032 }