--- old/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java Wed Oct 20 09:30:58 2010 +++ new/make/tools/classanalyzer/src/com/sun/classanalyzer/ModuleConfig.java Wed Oct 20 09:30:58 2010 @@ -33,10 +33,10 @@ import java.util.Set; import java.util.TreeSet; import java.util.regex.Pattern; - -import com.sun.classanalyzer.Module.RequiresModule; +import java.util.EnumSet; import java.util.LinkedHashMap; import java.util.Map; +import com.sun.classanalyzer.ModuleInfo.Dependence; /** * @@ -45,9 +45,9 @@ public class ModuleConfig { private final Set roots; - private final Set includes; - private final Set permits; - private final Map requires; + protected final Set includes; + protected final Set permits; + protected final Map requires; private final Filter filter; private List members; private String mainClass; @@ -62,7 +62,7 @@ this.roots = new TreeSet(); this.includes = new TreeSet(); this.permits = new TreeSet(); - this.requires = new LinkedHashMap(); + this.requires = new LinkedHashMap(); this.filter = new Filter(this); this.mainClass = mainClass; } @@ -85,10 +85,24 @@ return permits; } - Collection requires() { + Collection requires() { return requires.values(); } + void export(Module m) { + Dependence d = requires.get(m.name()); + if (d == null) { + d = new Dependence(m, EnumSet.of(Dependence.Modifier.PUBLIC)); + } else if (!d.isPublic()){ + throw new RuntimeException(module + " should require public " + m.name()); + } + requires.put(m.name(), d); + } + + void addPermit(Module m) { + permits.add(m.name()); + } + String mainClass() { return mainClass; } @@ -564,8 +578,8 @@ throw new RuntimeException(file + ", line " + lineNumber + " requires: \"" + s + "\" must be local"); } - RequiresModule rm = new RequiresModule(s, optional, reexport, local); - config.requires.put(s, rm); + Dependence d = new Dependence(s, optional, reexport, local); + config.requires.put(s, d); } } } @@ -628,7 +642,7 @@ sb.append(format("allow", filter.allow)); sb.append(format("exclude", filter.exclude)); Set reqs = new TreeSet(); - for (RequiresModule rm : requires.values()) { + for (Dependence rm : requires.values()) { reqs.add(rm.toString()); } sb.append(format("requires", reqs));