001    package cpw.mods.fml.common.discovery;
002    
003    import java.io.File;
004    import java.util.List;
005    
006    import com.google.common.collect.Lists;
007    
008    import cpw.mods.fml.common.ModContainer;
009    
010    
011    public class ModCandidate
012    {
013        private File classPathRoot;
014        private File modContainer;
015        private ContainerType sourceType;
016        private boolean classpath;
017        private List<String> baseModTypes = Lists.newArrayList();
018        private boolean isMinecraft;
019    
020        public ModCandidate(File classPathRoot, File modContainer, ContainerType sourceType)
021        {
022            this(classPathRoot, modContainer, sourceType, false, false);
023        }
024        public ModCandidate(File classPathRoot, File modContainer, ContainerType sourceType, boolean isMinecraft, boolean classpath)
025        {
026            this.classPathRoot = classPathRoot;
027            this.modContainer = modContainer;
028            this.sourceType = sourceType;
029            this.isMinecraft = isMinecraft;
030            this.classpath = classpath;
031        }
032    
033        public File getClassPathRoot()
034        {
035            return classPathRoot;
036        }
037    
038        public File getModContainer()
039        {
040            return modContainer;
041        }
042    
043        public ContainerType getSourceType()
044        {
045            return sourceType;
046        }
047        public List<ModContainer> explore(ASMDataTable table)
048        {
049            return sourceType.findMods(this, table);
050        }
051    
052        public boolean isClasspath()
053        {
054            return classpath;
055        }
056        public void rememberBaseModType(String className)
057        {
058            baseModTypes.add(className);
059        }
060        public List<String> getRememberedBaseMods()
061        {
062            return baseModTypes;
063        }
064        public boolean isMinecraftJar()
065        {
066            return isMinecraft;
067        }
068    }