本文整理汇总了Java中java.lang.module.ModuleDescriptor.isAutomatic方法的典型用法代码示例。如果您正苦于以下问题:Java ModuleDescriptor.isAutomatic方法的具体用法?Java ModuleDescriptor.isAutomatic怎么用?Java ModuleDescriptor.isAutomatic使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.lang.module.ModuleDescriptor
的用法示例。
在下文中一共展示了ModuleDescriptor.isAutomatic方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: toBuilder
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
private static Builder toBuilder(ModuleDescriptor descriptor) {
String name = descriptor.name();
Set<Modifier> modifiers = descriptor.isAutomatic()? Set.of(Modifier.AUTOMATIC):
descriptor.isOpen()? Set.of(Modifier.OPEN): Set.of();
Builder builder = ModuleDescriptor.newModule(name, modifiers);
descriptor.requires().forEach(builder::requires);
descriptor.exports().forEach(builder::exports);
descriptor.opens().forEach(builder::opens);
HashSet<String> packages = new HashSet<>(descriptor.packages());
descriptor.exports().forEach(export -> packages.remove(export.source()));
descriptor.opens().forEach(open -> packages.remove(open.source()));
builder.packages(packages);
descriptor.uses().forEach(builder::uses);
descriptor.provides().forEach(builder::provides);
return builder;
}
示例2: Module
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
/**
* Creates a new named Module. The resulting Module will be defined to the
* VM but will not read any other modules, will not have any exports setup
* and will not be registered in the service catalog.
*/
Module(ModuleLayer layer,
ClassLoader loader,
ModuleDescriptor descriptor,
URI uri)
{
this.layer = layer;
this.name = descriptor.name();
this.loader = loader;
this.descriptor = descriptor;
// define module to VM
boolean isOpen = descriptor.isOpen() || descriptor.isAutomatic();
Version version = descriptor.version().orElse(null);
String vs = Objects.toString(version, null);
String loc = Objects.toString(uri, null);
String[] packages = descriptor.packages().toArray(new String[0]);
defineModule0(this, isOpen, vs, loc, packages);
}
示例3: isOpen
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
/**
* Returns true if the given module opens the given package
* unconditionally.
*
* @implNote This method currently iterates over each of the open
* packages. This will be replaced once the ModuleDescriptor.Opens
* API is updated.
*/
private boolean isOpen(ModuleReference mref, String pn) {
ModuleDescriptor descriptor = mref.descriptor();
if (descriptor.isOpen() || descriptor.isAutomatic())
return true;
for (ModuleDescriptor.Opens opens : descriptor.opens()) {
String source = opens.source();
if (!opens.isQualified() && source.equals(pn)) {
return true;
}
}
return false;
}
示例4: showModule
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
/**
* Prints a single line with the module name, version and modifiers
*/
private static void showModule(ModuleReference mref) {
ModuleDescriptor md = mref.descriptor();
ostream.print(md.toNameAndVersion());
mref.location()
.filter(uri -> !isJrt(uri))
.ifPresent(uri -> ostream.format(" %s", uri));
if (md.isOpen())
ostream.print(" open");
if (md.isAutomatic())
ostream.print(" automatic");
ostream.println();
}
示例5: printModule
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
/**
* Prints the module location and name.
*/
private void printModule(ModuleReference mref) {
mref.location()
.filter(uri -> !isJrt(uri))
.ifPresent(uri -> ostream.print(uri + " "));
ModuleDescriptor descriptor = mref.descriptor();
ostream.print(descriptor.name());
if (descriptor.isAutomatic())
ostream.print(" automatic");
ostream.println();
}
示例6: ModuleDescriptorBuilder
import java.lang.module.ModuleDescriptor; //导入方法依赖的package包/类
ModuleDescriptorBuilder(ModuleDescriptor md, Set<String> packages, int index) {
if (md.isAutomatic()) {
throw new InternalError("linking automatic module is not supported");
}
this.md = md;
this.packages = packages;
this.index = index;
}