Package com.io7m.cedarbridge.schema.compiled

# Interface CBTypeDeclarationType

All Known Subinterfaces:
  `CBExternalType`, `CBRecordType`, `CBVariantType`

All Known Implementing Classes:
  `CBTypeDeclarationExternal`, `CBTypeDeclarationRecord`, `CBTypeDeclarationVariant`

public interface CBTypeDeclarationType
The base type of type declarations.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default int`
  `arity()`
  `List<String>`
  `documentation()`
  `Optional<CBExternalName>`
  `external()`
  `UUID`
  `id()`
  `default UUID`
  `idForType(String type)`
  `String`
  `name()`
  `CBPackageType`
  `owner()`
  `List<CBTypeParameterType>`
  `parameters()`
  `default Map<String,CBTypeParameterType>`
  `parametersByName()`

- ## Method Details

  - ### owner

    CBPackageType owner()
    Returns:
      The package that owns this declaration

  - ### name

    String name()
    Returns:
      The package-unique declaration name

  - ### arity

    default int arity()
    Returns:
      The number of type parameters

  - ### parameters

    List<CBTypeParameterType> parameters()
    Returns:
      The type parameters, if any, in declaration order

  - ### parametersByName

    default Map<String,CBTypeParameterType> parametersByName()
    Returns:
      The type parameters of the type by name

  - ### external

    Optional<CBExternalName> external()
    Returns:
      The external name, if any

  - ### id

    UUID id()
    Returns:
      The unique ID of the type

  - ### documentation

    List<String> documentation()
    Returns:
      Documentation for the type declaration

  - ### idForType

    default UUID idForType(String type)
    Parameters:
      `type` - The "type" of type declaration (record, variant, etc)
    Returns:
      The unique ID of the type