- 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 aggregates multiple 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 said to be a struct layout
(see
MemoryLayout.structLayout(MemoryLayout...)PREVIEW); conversely, if all member layouts are laid out at the same starting offset,
the resulting group layout is said to be a union layout (see MemoryLayout.unionLayout(MemoryLayout...)PREVIEW).- Implementation Requirements:
- This class is immutable, thread-safe and value-based.
- Since:
- 19
-
Nested Class Summary
Nested classes/interfaces inherited from interface java.lang.foreign.MemoryLayoutPREVIEW
MemoryLayout.PathElementPREVIEW -
Method Summary
Modifier and TypeMethodDescriptionReturns the member layouts associated with this group.withBitAlignment(long bitAlignment) Returns a memory layout of the same type with the same size and name as this layout, but with the specified alignment constraint (in bits).Returns a memory layout of the same type with the same size and alignment constraint as this layout, but with the specified name.Returns a memory layout of the same type with the same size and alignment constraint as this layout, but without a name.Methods inherited from interface java.lang.foreign.MemoryLayoutPREVIEW
bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle
-
Method Details
-
memberLayouts
List<MemoryLayoutPREVIEW> memberLayouts()Returns the member layouts associated with this group.- 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 associated with this group.
-
withName
Returns a memory layout of the same type with the same size and alignment constraint as this layout, but with the specified name.- Specified by:
withNamein interfaceMemoryLayoutPREVIEW- Parameters:
name- the layout name.- Returns:
- a memory layout with the given name.
- See Also:
-
withoutName
GroupLayoutPREVIEW withoutName()Returns a memory layout of the same type with the same size and alignment constraint as this layout, but without a name.This can be useful to compare two layouts that have different names, but are otherwise equal.
- Specified by:
withoutNamein interfaceMemoryLayoutPREVIEW- Returns:
- a memory layout without a name.
- See Also:
-
withBitAlignment
Returns a memory layout of the same type with the same size and name as this layout, but with the specified alignment constraint (in bits).- Specified by:
withBitAlignmentin interfaceMemoryLayoutPREVIEW- Parameters:
bitAlignment- the layout alignment constraint, expressed in bits.- Returns:
- a memory layout with the given alignment constraint.
-
GroupLayoutwhen preview features are enabled.