1228 private final Set<Requires> requires;
1229 private final Set<Exports> exports;
1230 private final Set<Opens> opens;
1231 private final Set<String> uses;
1232 private final Set<Provides> provides;
1233 private final Set<String> packages;
1234 private final String mainClass;
1235
1236 private ModuleDescriptor(String name,
1237 Version version,
1238 String rawVersionString,
1239 Set<Modifier> modifiers,
1240 Set<Requires> requires,
1241 Set<Exports> exports,
1242 Set<Opens> opens,
1243 Set<String> uses,
1244 Set<Provides> provides,
1245 Set<String> packages,
1246 String mainClass)
1247 {
1248 assert version == null || rawVersionString == null;
1249 this.name = name;
1250 this.version = version;
1251 this.rawVersionString = rawVersionString;
1252 this.modifiers = Set.copyOf(modifiers);
1253 this.open = modifiers.contains(Modifier.OPEN);
1254 this.automatic = modifiers.contains(Modifier.AUTOMATIC);
1255 assert (requires.stream().map(Requires::name).distinct().count()
1256 == requires.size());
1257 this.requires = Set.copyOf(requires);
1258 this.exports = Set.copyOf(exports);
1259 this.opens = Set.copyOf(opens);
1260 this.uses = Set.copyOf(uses);
1261 this.provides = Set.copyOf(provides);
1262
1263 this.packages = Set.copyOf(packages);
1264 this.mainClass = mainClass;
1265 }
1266
1267 /**
1268 * Creates a module descriptor from its components.
|
1228 private final Set<Requires> requires;
1229 private final Set<Exports> exports;
1230 private final Set<Opens> opens;
1231 private final Set<String> uses;
1232 private final Set<Provides> provides;
1233 private final Set<String> packages;
1234 private final String mainClass;
1235
1236 private ModuleDescriptor(String name,
1237 Version version,
1238 String rawVersionString,
1239 Set<Modifier> modifiers,
1240 Set<Requires> requires,
1241 Set<Exports> exports,
1242 Set<Opens> opens,
1243 Set<String> uses,
1244 Set<Provides> provides,
1245 Set<String> packages,
1246 String mainClass)
1247 {
1248 // Either one, and only one should be set.
1249 assert ((version != null) ^ (rawVersionString != null));
1250 this.name = name;
1251 this.version = version;
1252 this.rawVersionString = rawVersionString;
1253 this.modifiers = Set.copyOf(modifiers);
1254 this.open = modifiers.contains(Modifier.OPEN);
1255 this.automatic = modifiers.contains(Modifier.AUTOMATIC);
1256 assert (requires.stream().map(Requires::name).distinct().count()
1257 == requires.size());
1258 this.requires = Set.copyOf(requires);
1259 this.exports = Set.copyOf(exports);
1260 this.opens = Set.copyOf(opens);
1261 this.uses = Set.copyOf(uses);
1262 this.provides = Set.copyOf(provides);
1263
1264 this.packages = Set.copyOf(packages);
1265 this.mainClass = mainClass;
1266 }
1267
1268 /**
1269 * Creates a module descriptor from its components.
|