public class Datatype {
// Derived datatypes
public Datatype contiguous(int count, Datatype oldtype) {...}
public Datatype vector(int count, int blocklength, int stride) {...}
public Datatype hvector(int count, int blocklength, int stride) {...}
public Datatype indexed(int [] arrayOfBlocklengths,
int [] arrayOfDisplacements) {...}
public Datatype hindexed(int [] arrayOfBlocklengths,
int [] arrayOfDisplacements) {...}
public static Datatype struct(int [] arrayOfBlocklengths,
int [] arrayOfDisplacements,
Datatype [] arrayOfTypes) {...}
public int extent() {...}
public int size() {...}
public int lb() {...}
public int ub() {...}
public void commit() {...}
public void finalize() {...}
...
}