- All Superinterfaces:
MemoryLayout
- All Known Subinterfaces:
StructLayout,UnionLayout
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 layout; conversely, if all member layouts are laid out at the same starting offset,
the resulting group layout is a union layout.
- Implementation Requirements:
- This class is immutable, thread-safe and value-based.
- Sealed Class Hierarchy Graph:
- Since:
- 22
-
Nested Class Summary
Nested classes/interfaces declared in interface java.lang.foreign.MemoryLayout
MemoryLayout.PathElement -
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.MemoryLayout
byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle
-
Method Details
-
memberLayouts
List<MemoryLayout> 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...),MemoryLayout.unionLayout(MemoryLayout...)). - 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 interfaceMemoryLayout- Parameters:
name- the layout name.- Returns:
- a memory layout with the same characteristics as this layout, but with the given name
- See Also:
-
withoutName
GroupLayout withoutName()Returns a memory layout with the same characteristics as this layout, but with no name.- Specified by:
withoutNamein interfaceMemoryLayout- 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 interfaceMemoryLayout- 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.
-