< prev index next >
src/java.base/share/classes/jdk/internal/module/ModuleInfoExtender.java
Print this page
*** 41,50 ****
--- 41,51 ----
import jdk.internal.org.objectweb.asm.ClassVisitor;
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.Opcodes;
import static jdk.internal.module.ClassFileAttributes.*;
+ import static jdk.internal.module.WarnIfResolvedReason.NONE;
/**
* Utility class to extend a module-info.class with additional attributes.
*/
*** 68,77 ****
--- 69,82 ----
private String osVersion;
// the hashes for the Hashes attribute
private ModuleHashes hashes;
+ // ModuleResolution flags
+ private boolean doNotResolveByDefault;
+ private WarnIfResolvedReason warnIfResolvedReason = NONE;
+
private ModuleInfoExtender(InputStream in) {
this.in = in;
}
/**
*** 119,128 ****
--- 124,143 ----
this.hashes = hashes;
return this;
}
/**
+ * Sets the value for the ModuleResolution attribute.
+ */
+ public ModuleInfoExtender moduleResolution(boolean doNotResolveByDefault,
+ WarnIfResolvedReason reason) {
+ this.doNotResolveByDefault = doNotResolveByDefault;
+ this.warnIfResolvedReason = reason;
+ return this;
+ }
+
+ /**
* A ClassVisitor that supports adding class file attributes. If an
* attribute already exists then the first occurence of the attribute
* is replaced.
*/
private static class AttributeAddingClassVisitor extends ClassVisitor {
*** 189,198 ****
--- 204,217 ----
cv.addAttribute(new ModuleMainClassAttribute(mainClass));
if (osName != null || osArch != null || osVersion != null)
cv.addAttribute(new ModuleTargetAttribute(osName, osArch, osVersion));
if (hashes != null)
cv.addAttribute(new ModuleHashesAttribute(hashes));
+ if (doNotResolveByDefault || warnIfResolvedReason != NONE)
+ cv.addAttribute(new ModuleResolution(doNotResolveByDefault,
+ warnIfResolvedReason));
+
List<Attribute> attrs = new ArrayList<>();
// prototypes of attributes that should be parsed
attrs.add(new ModuleAttribute());
< prev index next >