8337219: AccessFlags factories do not require necessary arguments

Reviewed-by: asotona
This commit is contained in:
Chen Liang 2024-07-30 17:41:49 +00:00
parent 6154a2129b
commit 93c19ac73c
21 changed files with 131 additions and 140 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -64,52 +64,4 @@ public sealed interface AccessFlags
* method, or field}
*/
AccessFlag.Location location();
/**
* {@return an {@linkplain AccessFlags} for a class}
* @param mask the flags to be set, as a bit mask
*/
static AccessFlags ofClass(int mask) {
return new AccessFlagsImpl(AccessFlag.Location.CLASS, mask);
}
/**
* {@return an {@linkplain AccessFlags} for a class}
* @param flags the flags to be set
*/
static AccessFlags ofClass(AccessFlag... flags) {
return new AccessFlagsImpl(AccessFlag.Location.CLASS, flags);
}
/**
* {@return an {@linkplain AccessFlags} for a field}
* @param mask the flags to be set, as a bit mask
*/
static AccessFlags ofField(int mask) {
return new AccessFlagsImpl(AccessFlag.Location.FIELD, mask);
}
/**
* {@return an {@linkplain AccessFlags} for a field}
* @param flags the flags to be set
*/
static AccessFlags ofField(AccessFlag... flags) {
return new AccessFlagsImpl(AccessFlag.Location.FIELD, flags);
}
/**
* {@return an {@linkplain AccessFlags} for a method}
* @param mask the flags to be set, as a bit mask
*/
static AccessFlags ofMethod(int mask) {
return new AccessFlagsImpl(AccessFlag.Location.METHOD, mask);
}
/**
* {@return an {@linkplain AccessFlags} for a method}
* @param flags the flags to be set
*/
static AccessFlags ofMethod(AccessFlag... flags) {
return new AccessFlagsImpl(AccessFlag.Location.METHOD, flags);
}
}

View file

@ -34,6 +34,8 @@ import java.util.function.Consumer;
import java.lang.classfile.constantpool.ClassEntry;
import java.lang.classfile.constantpool.Utf8Entry;
import jdk.internal.classfile.impl.AccessFlagsImpl;
import jdk.internal.classfile.impl.ChainedClassBuilder;
import jdk.internal.classfile.impl.DirectClassBuilder;
import jdk.internal.classfile.impl.Util;
@ -73,7 +75,7 @@ public sealed interface ClassBuilder
* @return this builder
*/
default ClassBuilder withFlags(int flags) {
return with(AccessFlags.ofClass(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.CLASS, flags));
}
/**
@ -82,7 +84,7 @@ public sealed interface ClassBuilder
* @return this builder
*/
default ClassBuilder withFlags(AccessFlag... flags) {
return with(AccessFlags.ofClass(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.CLASS, flags));
}
/**

View file

@ -26,6 +26,8 @@
package java.lang.classfile;
import java.lang.classfile.constantpool.Utf8Entry;
import jdk.internal.classfile.impl.AccessFlagsImpl;
import jdk.internal.classfile.impl.ChainedFieldBuilder;
import jdk.internal.classfile.impl.TerminalFieldBuilder;
import java.lang.reflect.AccessFlag;
@ -55,7 +57,7 @@ public sealed interface FieldBuilder
* @return this builder
*/
default FieldBuilder withFlags(int flags) {
return with(AccessFlags.ofField(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.FIELD, flags));
}
/**
@ -64,7 +66,7 @@ public sealed interface FieldBuilder
* @return this builder
*/
default FieldBuilder withFlags(AccessFlag... flags) {
return with(AccessFlags.ofField(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.FIELD, flags));
}
}

View file

@ -28,6 +28,8 @@ package java.lang.classfile;
import java.util.function.Consumer;
import java.lang.classfile.constantpool.Utf8Entry;
import jdk.internal.classfile.impl.AccessFlagsImpl;
import jdk.internal.classfile.impl.ChainedMethodBuilder;
import jdk.internal.classfile.impl.TerminalMethodBuilder;
import java.lang.reflect.AccessFlag;
@ -55,7 +57,7 @@ public sealed interface MethodBuilder
* @return this builder
*/
default MethodBuilder withFlags(int flags) {
return with(AccessFlags.ofMethod(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.METHOD, flags));
}
/**
@ -64,7 +66,7 @@ public sealed interface MethodBuilder
* @return this builder
*/
default MethodBuilder withFlags(AccessFlag... flags) {
return with(AccessFlags.ofMethod(flags));
return with(new AccessFlagsImpl(AccessFlag.Location.METHOD, flags));
}
/**