package tc.oc.pgm.map; import java.util.logging.Logger; import javax.annotation.Nullable; import org.jdom2.Document; import tc.oc.pgm.xml.InvalidXMLException; /** * An interface used by legacy map parsing code */ public interface MapModuleParser<M extends MapModule> { /** * Create a {@link MapModule} from the given XML document, * or return null to indicate that the module is not needed. * * If a module is returned, it's members are injected automatically, * which means this method must NOT inject anything into the module * itself. */ @Nullable M parse(MapModuleContext context, Logger logger, Document doc) throws InvalidXMLException; }