- 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:
withName
in 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:
withoutName
in 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:
withBitAlignment
in interfaceMemoryLayoutPREVIEW
- Parameters:
bitAlignment
- the layout alignment constraint, expressed in bits.- Returns:
- a memory layout with the given alignment constraint.
-
GroupLayout
when preview features are enabled.