001/*
002 * Forge Mod Loader
003 * Copyright (c) 2012-2013 cpw.
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser Public License v2.1
006 * which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
008 * 
009 * Contributors:
010 *     cpw - implementation
011 */
012
013package cpw.mods.fml.common;
014
015import java.io.File;
016import java.security.cert.Certificate;
017import java.util.List;
018import java.util.Set;
019
020import com.google.common.eventbus.EventBus;
021
022import cpw.mods.fml.common.versioning.ArtifactVersion;
023import cpw.mods.fml.common.versioning.VersionRange;
024
025public class InjectedModContainer implements ModContainer
026{
027    private File source;
028    private ModContainer wrappedContainer;
029
030    public InjectedModContainer(ModContainer mc, File source)
031    {
032        this.source = source;
033        this.wrappedContainer = mc;
034    }
035
036    public String getModId()
037    {
038        return wrappedContainer.getModId();
039    }
040
041    public String getName()
042    {
043        return wrappedContainer.getName();
044    }
045
046    public String getVersion()
047    {
048        return wrappedContainer.getVersion();
049    }
050
051    public File getSource()
052    {
053        return source;
054    }
055
056    public ModMetadata getMetadata()
057    {
058        return wrappedContainer.getMetadata();
059    }
060
061    public void bindMetadata(MetadataCollection mc)
062    {
063        wrappedContainer.bindMetadata(mc);
064    }
065
066    public void setEnabledState(boolean enabled)
067    {
068        wrappedContainer.setEnabledState(enabled);
069    }
070
071    public Set<ArtifactVersion> getRequirements()
072    {
073        return wrappedContainer.getRequirements();
074    }
075
076    public List<ArtifactVersion> getDependencies()
077    {
078        return wrappedContainer.getDependencies();
079    }
080
081    public List<ArtifactVersion> getDependants()
082    {
083        return wrappedContainer.getDependants();
084    }
085
086    public String getSortingRules()
087    {
088        return wrappedContainer.getSortingRules();
089    }
090
091    public boolean registerBus(EventBus bus, LoadController controller)
092    {
093        return wrappedContainer.registerBus(bus, controller);
094    }
095
096    public boolean matches(Object mod)
097    {
098        return wrappedContainer.matches(mod);
099    }
100
101    public Object getMod()
102    {
103        return wrappedContainer.getMod();
104    }
105
106    public ArtifactVersion getProcessedVersion()
107    {
108        return wrappedContainer.getProcessedVersion();
109    }
110
111    @Override
112    public boolean isNetworkMod()
113    {
114        return wrappedContainer.isNetworkMod();
115    }
116    @Override
117    public boolean isImmutable()
118    {
119        return true;
120    }
121
122    @Override
123    public String getDisplayVersion()
124    {
125        return wrappedContainer.getDisplayVersion();
126    }
127
128    @Override
129    public VersionRange acceptableMinecraftVersionRange()
130    {
131        return wrappedContainer.acceptableMinecraftVersionRange();
132    }
133
134    public WorldAccessContainer getWrappedWorldAccessContainer()
135    {
136        if (wrappedContainer instanceof WorldAccessContainer)
137        {
138            return (WorldAccessContainer) wrappedContainer;
139        }
140        else
141        {
142            return null;
143        }
144    }
145
146    @Override
147    public Certificate getSigningCertificate()
148    {
149        return wrappedContainer.getSigningCertificate();
150    }
151}