Module java.base

Interface GroupLayout

All Superinterfaces:
MemoryLayout
All Known Subinterfaces:
StructLayout, UnionLayout

public sealed interface GroupLayout extends MemoryLayout permits 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.
Since:
22
Implementation Requirements:
This class is immutable, thread-safe and value-based.
Sealed Graph:
  • Method Details

    • memberLayouts

      List<MemoryLayout> memberLayouts()
      Returns the member layouts of this group layout.
      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...)).
    • withName

      GroupLayout withName(String name)
      Returns a memory layout with the same characteristics as this layout, but with the given name.
      Specified by:
      withName in interface MemoryLayout
      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:
      withoutName in interface MemoryLayout
      Returns:
      a memory layout with the same characteristics as this layout, but with no name
      See Also:
    • withByteAlignment

      GroupLayout withByteAlignment(long byteAlignment)
      Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).
      Specified by:
      withByteAlignment in interface MemoryLayout
      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 - if byteAlignment is not a power of two.
      IllegalArgumentException - if byteAlignment is less than M, where M is the maximum alignment constraint in any of the member layouts associated with this group layout.