- All Superinterfaces:
MemoryLayoutPREVIEW
- All Known Subinterfaces:
StructLayoutPREVIEW,UnionLayoutPREVIEW
public sealed interface GroupLayout
extends MemoryLayoutPREVIEW
permits StructLayoutPREVIEW, UnionLayoutPREVIEW
GroupLayout is a preview API of the Java platform.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A compound layout that is an aggregation of multiple, heterogeneous member layouts. There are two ways in which member layouts
can be combined: if member layouts are laid out one after the other, the resulting group layout is a
struct layoutPREVIEW; conversely, if all member layouts are laid out at the same starting offset,
the resulting group layout is a union layoutPREVIEW.
- Implementation Requirements:
- This class is immutable, thread-safe and value-based.
- Sealed Class Hierarchy Graph:
- Since:
- 19
-
Nested Class Summary
Nested classes/interfaces declared in interface java.lang.foreign.MemoryLayoutPREVIEW
MemoryLayout.PathElementPREVIEW -
Method Summary
Modifier and TypeMethodDescriptionReturns the member layouts of this group layout.withByteAlignment(long byteAlignment) Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).Returns a memory layout with the same characteristics as this layout, but with the given name.Returns a memory layout with the same characteristics as this layout, but with no name.Methods declared in interface java.lang.foreign.MemoryLayoutPREVIEW
byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle
-
Method Details
-
memberLayouts
List<MemoryLayoutPREVIEW> memberLayouts()Returns the member layouts of this group layout.- API Note:
- the order in which member layouts are returned is the same order in which member layouts have
been passed to one of the group layout factory methods (see
MemoryLayout.structLayout(MemoryLayout...)PREVIEW,MemoryLayout.unionLayout(MemoryLayout...)PREVIEW). - Returns:
- the member layouts of this group layout
-
withName
Returns a memory layout with the same characteristics as this layout, but with the given name.- Specified by:
withNamein interfaceMemoryLayoutPREVIEW- Parameters:
name- the layout name.- Returns:
- a memory layout with the same characteristics as this layout, but with the given name
- See Also:
-
withoutName
GroupLayoutPREVIEW withoutName()Returns a memory layout with the same characteristics as this layout, but with no name.- Specified by:
withoutNamein interfaceMemoryLayoutPREVIEW- Returns:
- a memory layout with the same characteristics as this layout, but with no name
- See Also:
-
withByteAlignment
Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).- Specified by:
withByteAlignmentin interfaceMemoryLayoutPREVIEW- Parameters:
byteAlignment- the layout alignment constraint, expressed in bytes.- Returns:
- a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes)
- Throws:
IllegalArgumentException- ifbyteAlignmentis not a power of two.IllegalArgumentException- ifbyteAlignmentis less thanM, whereMis the maximum alignment constraint in any of the member layouts associated with this group layout.
-
GroupLayoutwhen preview features are enabled.