8335938: Review XxxBuilder.original and XxxModel.parent
Reviewed-by: asotona
This commit is contained in:
parent
aabec4a947
commit
22914e0774
@ -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
|
||||
@ -30,7 +30,6 @@ import java.lang.constant.ClassDesc;
|
||||
import java.lang.constant.MethodTypeDesc;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.lang.classfile.constantpool.ClassEntry;
|
||||
@ -58,12 +57,6 @@ public sealed interface ClassBuilder
|
||||
extends ClassFileBuilder<ClassElement, ClassBuilder>
|
||||
permits ChainedClassBuilder, DirectClassBuilder {
|
||||
|
||||
/**
|
||||
* {@return the {@link ClassModel} representing the class being transformed,
|
||||
* if this class builder represents the transformation of some {@link ClassModel}}
|
||||
*/
|
||||
Optional<ClassModel> original();
|
||||
|
||||
/**
|
||||
* Sets the classfile version.
|
||||
* @param major the major version number
|
||||
|
@ -128,12 +128,6 @@ public sealed interface CodeBuilder
|
||||
extends ClassFileBuilder<CodeElement, CodeBuilder>
|
||||
permits CodeBuilder.BlockCodeBuilder, ChainedCodeBuilder, TerminalCodeBuilder, NonterminalCodeBuilder {
|
||||
|
||||
/**
|
||||
* {@return the {@link CodeModel} representing the method body being transformed,
|
||||
* if this code builder represents the transformation of some {@link CodeModel}}
|
||||
*/
|
||||
Optional<CodeModel> original();
|
||||
|
||||
/** {@return a fresh unbound label} */
|
||||
Label newLabel();
|
||||
|
||||
|
@ -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
|
||||
@ -30,7 +30,6 @@ import jdk.internal.classfile.impl.ChainedFieldBuilder;
|
||||
import jdk.internal.classfile.impl.TerminalFieldBuilder;
|
||||
import java.lang.reflect.AccessFlag;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
@ -68,9 +67,4 @@ public sealed interface FieldBuilder
|
||||
return with(AccessFlags.ofField(flags));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@return the {@link FieldModel} representing the field being transformed,
|
||||
* if this field builder represents the transformation of some {@link FieldModel}}
|
||||
*/
|
||||
Optional<FieldModel> original();
|
||||
}
|
||||
|
@ -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
|
||||
@ -25,7 +25,6 @@
|
||||
|
||||
package java.lang.classfile;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.lang.classfile.constantpool.Utf8Entry;
|
||||
@ -50,12 +49,6 @@ public sealed interface MethodBuilder
|
||||
extends ClassFileBuilder<MethodElement, MethodBuilder>
|
||||
permits ChainedMethodBuilder, TerminalMethodBuilder {
|
||||
|
||||
/**
|
||||
* {@return the {@link MethodModel} representing the method being transformed,
|
||||
* if this method builder represents the transformation of some {@link MethodModel}}
|
||||
*/
|
||||
Optional<MethodModel> original();
|
||||
|
||||
/**
|
||||
* Sets the method access flags.
|
||||
* @param flags the access flags, as a bit mask
|
||||
|
@ -24,10 +24,8 @@
|
||||
*/
|
||||
package jdk.internal.classfile.impl;
|
||||
|
||||
import java.lang.classfile.constantpool.ConstantPool;
|
||||
import java.util.Optional;
|
||||
|
||||
import java.lang.classfile.Attribute;
|
||||
import java.lang.classfile.constantpool.ConstantPool;
|
||||
|
||||
public class AbstractDirectBuilder<M> {
|
||||
protected final SplitConstantPool constantPool;
|
||||
@ -48,10 +46,6 @@ public class AbstractDirectBuilder<M> {
|
||||
return constantPool().canWriteDirect(source);
|
||||
}
|
||||
|
||||
public Optional<M> original() {
|
||||
return Optional.ofNullable(original);
|
||||
}
|
||||
|
||||
public void setOriginal(M original) {
|
||||
this.original = original;
|
||||
}
|
||||
|
@ -70,11 +70,6 @@ public final class BufferedCodeBuilder
|
||||
elements.add(startLabel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<CodeModel> original() {
|
||||
return Optional.ofNullable(original);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Label newLabel() {
|
||||
return new LabelImpl(this, -1);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022, 2023, 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
|
||||
@ -41,19 +41,16 @@ public final class BufferedFieldBuilder
|
||||
private final Utf8Entry desc;
|
||||
private final List<FieldElement> elements = new ArrayList<>();
|
||||
private AccessFlags flags;
|
||||
private final FieldModel original;
|
||||
|
||||
public BufferedFieldBuilder(SplitConstantPool constantPool,
|
||||
ClassFileImpl context,
|
||||
Utf8Entry name,
|
||||
Utf8Entry type,
|
||||
FieldModel original) {
|
||||
Utf8Entry type) {
|
||||
this.constantPool = constantPool;
|
||||
this.context = context;
|
||||
this.name = name;
|
||||
this.desc = type;
|
||||
this.flags = AccessFlags.ofField();
|
||||
this.original = original;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -61,11 +58,6 @@ public final class BufferedFieldBuilder
|
||||
return constantPool;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<FieldModel> original() {
|
||||
return Optional.ofNullable(original);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldBuilder with(FieldElement element) {
|
||||
elements.add(element);
|
||||
@ -91,8 +83,7 @@ public final class BufferedFieldBuilder
|
||||
|
||||
@Override
|
||||
public Optional<ClassModel> parent() {
|
||||
FieldModel fm = original().orElse(null);
|
||||
return fm == null? Optional.empty() : fm.parent();
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -91,11 +91,6 @@ public final class BufferedMethodBuilder
|
||||
return constantPool;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<MethodModel> original() {
|
||||
return Optional.ofNullable(original);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Utf8Entry methodName() {
|
||||
return name;
|
||||
@ -172,7 +167,7 @@ public final class BufferedMethodBuilder
|
||||
|
||||
@Override
|
||||
public Optional<ClassModel> parent() {
|
||||
return original().flatMap(MethodModel::parent);
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,7 +24,6 @@
|
||||
*/
|
||||
package jdk.internal.classfile.impl;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.lang.classfile.*;
|
||||
@ -51,15 +50,10 @@ public final class ChainedClassBuilder
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<ClassModel> original() {
|
||||
return terminal.original();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassBuilder withField(Utf8Entry name, Utf8Entry descriptor, Consumer<? super FieldBuilder> handler) {
|
||||
consumer.accept(new BufferedFieldBuilder(terminal.constantPool, terminal.context,
|
||||
name, descriptor, null)
|
||||
name, descriptor)
|
||||
.run(handler)
|
||||
.toModel());
|
||||
return this;
|
||||
@ -68,8 +62,7 @@ public final class ChainedClassBuilder
|
||||
@Override
|
||||
public ClassBuilder transformField(FieldModel field, FieldTransform transform) {
|
||||
BufferedFieldBuilder builder = new BufferedFieldBuilder(terminal.constantPool, terminal.context,
|
||||
field.fieldName(), field.fieldType(),
|
||||
field);
|
||||
field.fieldName(), field.fieldType());
|
||||
builder.transform(field, transform);
|
||||
consumer.accept(builder.toModel());
|
||||
return this;
|
||||
|
@ -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
|
||||
@ -24,12 +24,10 @@
|
||||
*/
|
||||
package jdk.internal.classfile.impl;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.lang.classfile.FieldBuilder;
|
||||
import java.lang.classfile.FieldElement;
|
||||
import java.lang.classfile.FieldModel;
|
||||
import java.lang.classfile.constantpool.ConstantPoolBuilder;
|
||||
|
||||
public final class ChainedFieldBuilder implements FieldBuilder {
|
||||
@ -50,11 +48,6 @@ public final class ChainedFieldBuilder implements FieldBuilder {
|
||||
return terminal.constantPool();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<FieldModel> original() {
|
||||
return terminal.original();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldBuilder with(FieldElement element) {
|
||||
consumer.accept(element);
|
||||
|
@ -24,7 +24,6 @@
|
||||
*/
|
||||
package jdk.internal.classfile.impl;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.lang.classfile.CodeBuilder;
|
||||
@ -32,7 +31,6 @@ import java.lang.classfile.CodeModel;
|
||||
import java.lang.classfile.CodeTransform;
|
||||
import java.lang.classfile.MethodBuilder;
|
||||
import java.lang.classfile.MethodElement;
|
||||
import java.lang.classfile.MethodModel;
|
||||
import java.lang.classfile.constantpool.ConstantPoolBuilder;
|
||||
|
||||
public final class ChainedMethodBuilder implements MethodBuilder {
|
||||
@ -75,9 +73,4 @@ public final class ChainedMethodBuilder implements MethodBuilder {
|
||||
return terminal.constantPool();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<MethodModel> original() {
|
||||
return terminal.original();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
@ -24,10 +24,7 @@
|
||||
*/
|
||||
package jdk.internal.classfile.impl;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import java.lang.classfile.CodeBuilder;
|
||||
import java.lang.classfile.CodeModel;
|
||||
import java.lang.classfile.Label;
|
||||
import java.lang.classfile.constantpool.ConstantPoolBuilder;
|
||||
|
||||
@ -59,11 +56,6 @@ public abstract sealed class NonterminalCodeBuilder implements CodeBuilder
|
||||
return terminal.constantPool();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<CodeModel> original() {
|
||||
return terminal.original();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Label newLabel() {
|
||||
return terminal.newLabel();
|
||||
|
Loading…
x
Reference in New Issue
Block a user