< prev index next >

src/java.base/share/classes/java/lang/module/ModuleDescriptor.java

Print this page
rev 53275 : 8216307: StackTraceElement::fill_in can use existing Module name and version
Reviewed-by: XXX


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.


< prev index next >