Interface StructureMarkup<T>

Type Parameters:
T - structure mapped class
All Known Implementing Classes:
GoArrayType, GoChanType, GoFuncData, GoFuncType, GoIMethod, GoInterfaceType, GoItab, GoMapType, GoMethod, GoModuledata, GoName, GoPlainType, GoPointerType, GoSlice, GoSliceType, GoString, GoStructType, GoType

public interface StructureMarkup<T>
Optional interface that structure mapped classes can implement that allows them to control how their class is marked up.

TODO: possibly refactor these methods to take a StructureContext parameter, which will allow removing the getStructureContext method.

  • Method Details

    • getStructureContext

      StructureContext<T> getStructureContext()
    • getStructureName

      default String getStructureName() throws IOException
      Returns the name of the instance, typically retrieved from data found inside the instance.
      Returns:
      string name, or null if this instance does not have a name
      Throws:
      IOException - if error getting name
    • getStructureLabel

      default String getStructureLabel() throws IOException
      Returns a string that can be used to place a label on the instance.

      This default implementation will query the getStructureName() method, and if it provides a value, will produce a string that looks like "name___mappingstructname", where "mappingstructname" will be the structureName value in the @StructureMapping annotation.

      Returns:
      string to be used as a label, or null if there is not a valid label for the instance
      Throws:
      IOException - if error getting label
    • getStructureNamespace

      default String getStructureNamespace() throws IOException
      Returns the namespace that any labels should be placed in.
      Returns:
      name of namespace to place the label for this structure mapped type, or null
      Throws:
      IOException - if error generating namespace name
    • additionalMarkup

      default void additionalMarkup(MarkupSession session) throws IOException, CancelledException
      Called to allow the implementor to perform custom markup of itself.
      Parameters:
      session - state and methods to assist marking up the program
      Throws:
      IOException - if error during markup
      CancelledException - if cancelled
    • getExternalInstancesToMarkup

      default List<?> getExternalInstancesToMarkup() throws IOException
      Returns a list of items that should be recursively marked up.
      Returns:
      list of structure mapped object instances that should be marked up
      Throws:
      IOException - if error getting instances