mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8334714: Implement JEP 484: Class-File API
Reviewed-by: liach, vromero
This commit is contained in:
parent
6cdebf0e4c
commit
84ffb64cd7
165 changed files with 312 additions and 799 deletions
|
@ -27,8 +27,6 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.AnnotationValue;
|
||||
import java.lang.constant.ConstantDesc;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* A constant pool entry that may be used by annotation constant values,
|
||||
* which includes the four kinds of primitive constants and UTF8 constants.
|
||||
|
@ -43,9 +41,8 @@ import jdk.internal.javac.PreviewFeature;
|
|||
*
|
||||
* @see AnnotationValue.OfConstant
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface AnnotationConstantValueEntry extends PoolEntry
|
||||
permits DoubleEntry, FloatEntry, IntegerEntry, LongEntry, Utf8Entry {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -28,16 +28,14 @@ import java.lang.constant.ClassDesc;
|
|||
import java.lang.constant.ConstantDesc;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Class_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.1 The CONSTANT_Class_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ClassEntry
|
||||
extends LoadableConstantEntry
|
||||
permits AbstractPoolEntry.ClassEntryImpl {
|
||||
|
|
|
@ -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
|
||||
|
@ -31,16 +31,14 @@ import java.lang.constant.DynamicConstantDesc;
|
|||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Dynamic_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.10 The CONSTANT_Dynamic_info and CONSTANT_InvokeDynamic_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ConstantDynamicEntry
|
||||
extends DynamicConstantPoolEntry, LoadableConstantEntry
|
||||
permits AbstractPoolEntry.ConstantDynamicEntryImpl {
|
||||
|
|
|
@ -30,17 +30,14 @@ import java.lang.classfile.ClassReader;
|
|||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Provides read access to the constant pool and bootstrap method table of a
|
||||
* classfile.
|
||||
* @jvms 4.4 The Constant Pool
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ConstantPool extends Iterable<PoolEntry>
|
||||
permits ClassReader, ConstantPoolBuilder {
|
||||
|
||||
|
@ -70,7 +67,6 @@ public sealed interface ConstantPool extends Iterable<PoolEntry>
|
|||
* @param cls the entry type
|
||||
* @throws ConstantPoolException if the index is out of range of the
|
||||
* constant pool, or the entry is not of the given type
|
||||
* @since 23
|
||||
*/
|
||||
<T extends PoolEntry> T entryByIndex(int index, Class<T> cls);
|
||||
|
||||
|
|
|
@ -35,7 +35,6 @@ import jdk.internal.classfile.impl.ClassReaderImpl;
|
|||
import jdk.internal.classfile.impl.SplitConstantPool;
|
||||
import jdk.internal.classfile.impl.TemporaryConstantPool;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
|
@ -48,9 +47,8 @@ import static java.util.Objects.requireNonNull;
|
|||
* The {@linkplain ConstantPoolBuilder} also provides access to some of the
|
||||
* state of the {@linkplain ClassBuilder}, such as classfile processing options.
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ConstantPoolBuilder
|
||||
extends ConstantPool
|
||||
permits SplitConstantPool, TemporaryConstantPool {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2023, 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,15 +24,13 @@
|
|||
*/
|
||||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Thrown to indicate that requested entry cannot be obtained from the constant
|
||||
* pool.
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public class ConstantPoolException extends IllegalArgumentException {
|
||||
|
||||
@java.io.Serial
|
||||
|
|
|
@ -27,17 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.Attributes;
|
||||
import java.lang.constant.ConstantDesc;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a constant pool entry that can be used as the constant in a
|
||||
* {@link Attributes#constantValue() ConstantValue} attribute; this includes the four
|
||||
* primitive constant types and {@linkplain String} constants.
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ConstantValueEntry extends LoadableConstantEntry
|
||||
permits DoubleEntry, FloatEntry, IntegerEntry, LongEntry, StringEntry {
|
||||
|
||||
|
|
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.TypeKind;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Double_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.5 The CONSTANT_Long_info and CONSTANT_Double_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface DoubleEntry
|
||||
extends AnnotationConstantValueEntry, ConstantValueEntry
|
||||
permits AbstractPoolEntry.DoubleEntryImpl {
|
||||
|
|
|
@ -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
|
||||
|
@ -26,17 +26,14 @@ package java.lang.classfile.constantpool;
|
|||
|
||||
import java.lang.classfile.BootstrapMethodEntry;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a dynamic constant pool entry, which is either {@link ConstantDynamicEntry}
|
||||
* or {@link InvokeDynamicEntry}.
|
||||
* @jvms 4.4.10 The CONSTANT_Dynamic_info and CONSTANT_InvokeDynamic_info Structures
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface DynamicConstantPoolEntry extends PoolEntry
|
||||
permits ConstantDynamicEntry, InvokeDynamicEntry {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -28,16 +28,14 @@ import java.lang.constant.ClassDesc;
|
|||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Fieldref_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.2 The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface FieldRefEntry extends MemberRefEntry
|
||||
permits AbstractPoolEntry.FieldRefEntryImpl {
|
||||
|
||||
|
|
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.TypeKind;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Float_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.4 The CONSTANT_Integer_info and CONSTANT_Float_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface FloatEntry
|
||||
extends AnnotationConstantValueEntry, ConstantValueEntry
|
||||
permits AbstractPoolEntry.FloatEntryImpl {
|
||||
|
|
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.TypeKind;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Integer_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.4 The CONSTANT_Integer_info and CONSTANT_Float_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface IntegerEntry
|
||||
extends AnnotationConstantValueEntry, ConstantValueEntry
|
||||
permits AbstractPoolEntry.IntegerEntryImpl {
|
||||
|
|
|
@ -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
|
||||
|
@ -28,16 +28,14 @@ import java.lang.constant.MethodTypeDesc;
|
|||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_InterfaceMethodRef_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.2 The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface InterfaceMethodRefEntry
|
||||
extends MemberRefEntry
|
||||
permits AbstractPoolEntry.InterfaceMethodRefEntryImpl {
|
||||
|
|
|
@ -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,15 +30,13 @@ import java.lang.constant.MethodTypeDesc;
|
|||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a constant pool entry for a dynamic call site.
|
||||
* @jvms 4.4.10 The CONSTANT_Dynamic_info and CONSTANT_InvokeDynamic_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface InvokeDynamicEntry
|
||||
extends DynamicConstantPoolEntry
|
||||
permits AbstractPoolEntry.InvokeDynamicEntryImpl {
|
||||
|
|
|
@ -27,16 +27,13 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.TypeKind;
|
||||
import java.lang.constant.ConstantDesc;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Marker interface for constant pool entries suitable for loading via the
|
||||
* {@code LDC} instructions.
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface LoadableConstantEntry extends PoolEntry
|
||||
permits ClassEntry, ConstantDynamicEntry, ConstantValueEntry, MethodHandleEntry, MethodTypeEntry {
|
||||
|
||||
|
|
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.classfile.TypeKind;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Long_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.5 The CONSTANT_Long_info and CONSTANT_Double_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface LongEntry
|
||||
extends AnnotationConstantValueEntry, ConstantValueEntry
|
||||
permits AbstractPoolEntry.LongEntryImpl {
|
||||
|
|
|
@ -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,16 +25,14 @@
|
|||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a member reference constant in the constant pool of a classfile,
|
||||
* which includes references to fields, methods, and interface methods.
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface MemberRefEntry extends PoolEntry
|
||||
permits FieldRefEntry, InterfaceMethodRefEntry, MethodRefEntry, AbstractPoolEntry.AbstractMemberRefEntry {
|
||||
/**
|
||||
|
|
|
@ -28,16 +28,14 @@ import java.lang.constant.ConstantDesc;
|
|||
import java.lang.constant.DirectMethodHandleDesc;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_MethodHandle_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.8 The CONSTANT_MethodHandle_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface MethodHandleEntry
|
||||
extends LoadableConstantEntry
|
||||
permits AbstractPoolEntry.MethodHandleEntryImpl {
|
||||
|
|
|
@ -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
|
||||
|
@ -28,16 +28,14 @@ import java.lang.constant.MethodTypeDesc;
|
|||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.classfile.impl.Util;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_MethodRef_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.2 The CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info Structures
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface MethodRefEntry extends MemberRefEntry
|
||||
permits AbstractPoolEntry.MethodRefEntryImpl {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -28,16 +28,14 @@ import java.lang.constant.ConstantDesc;
|
|||
import java.lang.constant.MethodTypeDesc;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_MethodType_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.9 The CONSTANT_MethodType_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface MethodTypeEntry
|
||||
extends LoadableConstantEntry
|
||||
permits AbstractPoolEntry.MethodTypeEntryImpl {
|
||||
|
|
|
@ -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
|
||||
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.constant.ModuleDesc;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Module_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.11 The CONSTANT_Module_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface ModuleEntry extends PoolEntry
|
||||
permits AbstractPoolEntry.ModuleEntryImpl {
|
||||
/**
|
||||
|
|
|
@ -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,16 +25,14 @@
|
|||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_NameAndType_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.6 The CONSTANT_NameAndType_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface NameAndTypeEntry extends PoolEntry
|
||||
permits AbstractPoolEntry.NameAndTypeEntryImpl {
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -27,16 +27,14 @@ package java.lang.classfile.constantpool;
|
|||
import java.lang.constant.PackageDesc;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_Package_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.12 The CONSTANT_Package_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface PackageEntry extends PoolEntry
|
||||
permits AbstractPoolEntry.PackageEntryImpl {
|
||||
/**
|
||||
|
|
|
@ -24,15 +24,12 @@
|
|||
*/
|
||||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models an entry in the constant pool of a classfile.
|
||||
*
|
||||
* @sealedGraph
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface PoolEntry
|
||||
permits AnnotationConstantValueEntry, DynamicConstantPoolEntry,
|
||||
LoadableConstantEntry, MemberRefEntry, ModuleEntry, NameAndTypeEntry,
|
||||
|
|
|
@ -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,16 +25,14 @@
|
|||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_String_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.3 The CONSTANT_String_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface StringEntry
|
||||
extends ConstantValueEntry
|
||||
permits AbstractPoolEntry.StringEntryImpl {
|
||||
|
|
|
@ -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,16 +25,14 @@
|
|||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.classfile.impl.AbstractPoolEntry;
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
||||
/**
|
||||
* Models a {@code CONSTANT_UTF8_info} constant in the constant pool of a
|
||||
* classfile.
|
||||
* @jvms 4.4.7 The CONSTANT_Utf8_info Structure
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
public sealed interface Utf8Entry
|
||||
extends CharSequence, AnnotationConstantValueEntry
|
||||
permits AbstractPoolEntry.Utf8EntryImpl {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2023, 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
|
||||
|
@ -28,9 +28,7 @@
|
|||
*
|
||||
* The {@code java.lang.classfile.constantpool} package contains interfaces describing classfile constant pool entries.
|
||||
*
|
||||
* @since 22
|
||||
* @since 24
|
||||
*/
|
||||
@PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
|
||||
package java.lang.classfile.constantpool;
|
||||
|
||||
import jdk.internal.javac.PreviewFeature;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue