Class TypeManager.StructType

java.lang.Object
de.inetsoftware.jwebassembly.module.TypeManager.StructType
All Implemented Interfaces:
AnyType
Direct Known Subclasses:
ArrayType
Enclosing class:
TypeManager

public static class TypeManager.StructType extends Object implements AnyType
A reference to a type.
Author:
Volker Berlin
  • Constructor Details

  • Method Details

    • getCode

      public int getCode()
      The type code(typeidx) in WebAssembly. Predefined types have an negative typeidx. Custom types have the positive index in the type section.
      Specified by:
      getCode in interface AnyType
      Returns:
      the code
    • isRefType

      public boolean isRefType()
      If the type is a reference type. A GC reference to the heap.
      Specified by:
      isRefType in interface AnyType
      Returns:
      true, is GC type
    • isSubTypeOf

      public boolean isSubTypeOf(AnyType type)
      Check if this is a sub type of given type.
      Specified by:
      isSubTypeOf in interface AnyType
      Parameters:
      type - type to check
      Returns:
      true, if both are identical or this is a sub type of other. Or if other is a parent type of this.
    • getKind

      public TypeManager.StructTypeKind getKind()
      Get kind of the StructType
      Returns:
      the type kind
    • getName

      public String getName()
      Get the name of the Java type
      Returns:
      the name
    • getClassIndex

      public int getClassIndex()
      The running index of the class/type for class meta data, instanceof and interface calls.
      Returns:
      the unique index
    • getComponentClassIndex

      protected int getComponentClassIndex()
      The running index of the component/array class/type for class meta data, instanceof and interface calls.
      Returns:
      the unique index or -1 id not an array
    • getFields

      public List<NamedStorageType> getFields()
      Get the fields of this struct
      Returns:
      the fields
    • writeToStream

      public void writeToStream(ByteArrayOutputStream dataStream, ToIntFunction<FunctionName> getFunctionsID, WasmOptions options) throws IOException
      Write the struct/class meta data to the datastream and set the offset position.
      Parameters:
      dataStream - the target stream
      getFunctionsID - source for function IDs
      options - the compiler options
      Throws:
      IOException - should never occur
      See Also:
    • getVTable

      public int getVTable()
      Get the vtable offset.
      Returns:
      the offset
    • toString

      public String toString()
      Overrides:
      toString in class Object