Interface MemoryLayout.PathElement
- Enclosing interface:
MemoryLayout
public static sealed interface MemoryLayout.PathElement
-
group path elements, used to select a member layout within a
GroupLayout, either by name or by index; -
sequence path elements, used to select one or more sequence element layouts within a
SequenceLayout; and - dereference path elements, used to dereference an address layout as its target layout.
- Implementation Requirements:
- Implementations of this interface are immutable, thread-safe and value-based.
- Since:
- 22
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
static MemoryLayout.PathElement |
dereferenceElement() |
Returns a path element that selects the target layout of an address layout (where set). |
static MemoryLayout.PathElement |
groupElement |
Returns a path element that selects a member layout with the given index in a group layout. |
static MemoryLayout.PathElement |
groupElement |
Returns a path element which selects a member layout with the given name in a group layout. |
static MemoryLayout.PathElement |
sequenceElement() |
Returns an open path element that selects an unspecified element layout in a sequence layout. |
static MemoryLayout.PathElement |
sequenceElement |
Returns a path element which selects the element layout at the specified index in a sequence layout. |
static MemoryLayout.PathElement |
sequenceElement |
Returns an open path element that selects the element layout in a range of positions in a sequence layout. |
Method Details
groupElement
static MemoryLayout.PathElement groupElement(String name)
- Implementation Requirements:
- in case multiple group elements with a matching name exist, the path element returned by this method will select the first one; that is, the group element with the lowest offset from the current path is selected. In such cases, using
groupElement(long)might be preferable. - Parameters:
-
name- the name of the member layout to be selected - Returns:
- a path element which selects a member layout with the given name in a group layout
groupElement
static MemoryLayout.PathElement groupElement(long index)
- Parameters:
-
index- the index of the member layout element to be selected - Returns:
- a path element that selects a member layout with the given index in a group layout
- Throws:
-
IllegalArgumentException- ifindex < 0
sequenceElement
static MemoryLayout.PathElement sequenceElement(long index)
- Parameters:
-
index- the index of the sequence element to be selected - Returns:
- a path element which selects the element layout at the specified index in a sequence layout
- Throws:
-
IllegalArgumentException- ifindex < 0
sequenceElement
static MemoryLayout.PathElement sequenceElement(long start, long step)
S and step factor (which can also be negative) F. The exact sequence element selected by this layout is expressed as an index I. If C is the sequence element count, it follows that 0 <= I < B, where B is computed as follows:
- if
F > 0, thenB = ceilDiv(C - S, F) - if
F < 0, thenB = ceilDiv(S + 1, -F)
B.- Parameters:
-
start- the index of the first sequence element to be selected -
step- the step factor at which subsequence sequence elements are to be selected - Returns:
- a path element that selects the sequence element layout with the given index.
- Throws:
-
IllegalArgumentException- ifstart < 0, orstep == 0
sequenceElement
static MemoryLayout.PathElement sequenceElement()
The exact sequence element selected by this layout is expressed as an index I. If C is the sequence element count, it follows that 0 <= I < C. That is, C is the size of the returned open path element.
- Returns:
- an open path element that selects an unspecified element layout in a sequence layout
dereferenceElement
static MemoryLayout.PathElement dereferenceElement()
- Returns:
- a path element that selects the target layout of an address layout (where set)
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/foreign/MemoryLayout.PathElement.html