[foreign-memaccess] RFR 8223768: Rethink relationship between Sequence vs. Group layouts
    Maurizio Cimadamore 
    maurizio.cimadamore at oracle.com
       
    Mon May 13 12:14:47 UTC 2019
    
    
  
Hi,
as discussed previously, the relationship between sequences and groups 
is a bit shaky, as there are sequences that cannot be expressed as 
groups (sequences whose size is unbound).
This patch models groups and sequences independently:
* they all have a (minimal) common supertype called Compound (which 
supports only a Stream<Layout> elements() method)
* Group implements Iterable, always has a size, and you can access 
elements by index
* Sequence doesn't implement Iterable, has an optional size, and has an 
accessor to retrieve the element layout (there's only one of them, 
regardless of the size)
I think this is much saner.
Webrev:
http://cr.openjdk.java.net/~mcimadamore/panama/8223768/
P.S.
of course Compound should be renamed to CompoundLayout in a later webrev 
(as for all other layout names).
P.P.S.
in a separate patch I'll explore generalizing this method:
LayoutPath::groupElement(long index)
with this:
LayoutPath::compoundElement(long index)
Since now we should be able to implement indexed access on both group 
and sequences.
Maurizio
    
    
More information about the panama-dev
mailing list