diff --git a/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java b/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java index cad50b0..b592873 100644 --- a/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java @@ -27,6 +27,7 @@ public class ModuleInfo extends ModuleSpec { final Set requiresStaticTransitive = new LinkedHashSet<>(); final Map> ignoreServiceProviders = new LinkedHashMap<>(); final Set uses = new LinkedHashSet<>(); + final Map> providers = new LinkedHashMap<>(); boolean exportAllPackages; boolean requireAllDefinedDependencies; @@ -92,6 +93,22 @@ public void requiresStaticTransitive(String requiresStaticTransitive) { addOrThrow(this.requiresStaticTransitive, requiresStaticTransitive); } + /** + * @param provides corresponds to the directive in a 'module-info.java' file + * @param with specifys the package(s) containing provided service classes + */ + public void provides(String provides, String... with) { + addOrThrow(this.providers, provides, with); + } + + /** + * Getter for the providers map (needed for the transformation logic) + * @return + */ + public Map> getProviders() { + return providers; + } + /** * @param uses corresponds to the directive in a 'module-info.java' file */