Package com.io7m.cedarbridge.schema.compiled.internal

# Class CBTypeDeclarationExternal

java.lang.Object
com.io7m.cedarbridge.schema.compiled.internal.CBTypeDeclarationExternal

All Implemented Interfaces:
  `CBExternalType`, `CBTypeDeclarationType`

public final class CBTypeDeclarationExternal extends Object implements CBExternalType
An external type declaration.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CBTypeDeclarationExternal(String inName, String inExternalPackage, String inExternalType)`
  Construct an external type.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addTypeParameter(CBTypeParameter parameter)`
  Add a type parameter to the declaration.
  `List<String>`
  `documentation()`
  `Optional<CBExternalName>`
  `external()`
  `String`
  `name()`
  `CBPackageType`
  `owner()`
  `List<CBTypeParameterType>`
  `parameters()`
  `void`
  `setDocumentation(List<String> text)`
  Set the documentation.
  `void`
  `setOwner(CBPackage newOwner)`
  Set the owner of the type declaration.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface com.io7m.cedarbridge.schema.compiled.CBExternalType

  `id`

  ### Methods inherited from interface com.io7m.cedarbridge.schema.compiled.CBTypeDeclarationType

  `arity, idForType, parametersByName`

- ## Constructor Details

  - ### CBTypeDeclarationExternal

    public CBTypeDeclarationExternal(String inName, String inExternalPackage, String inExternalType)
    Construct an external type.
    Parameters:
      `inName` - The name
      `inExternalPackage` - The external package name
      `inExternalType` - The external package type

- ## Method Details

  - ### addTypeParameter

    public void addTypeParameter(CBTypeParameter parameter)
    Add a type parameter to the declaration.
    Parameters:
      `parameter` - A parameter

  - ### owner

    public CBPackageType owner()
    Specified by:
      `owner` in interface `CBTypeDeclarationType`
    Returns:
      The package that owns this declaration

  - ### name

    public String name()
    Specified by:
      `name` in interface `CBTypeDeclarationType`
    Returns:
      The package-unique declaration name

  - ### parameters

    public List<CBTypeParameterType> parameters()
    Specified by:
      `parameters` in interface `CBTypeDeclarationType`
    Returns:
      The type parameters, if any, in declaration order

  - ### external

    public Optional<CBExternalName> external()
    Specified by:
      `external` in interface `CBTypeDeclarationType`
    Returns:
      The external name, if any

  - ### documentation

    public List<String> documentation()
    Specified by:
      `documentation` in interface `CBTypeDeclarationType`
    Returns:
      Documentation for the type declaration

  - ### setOwner

    public void setOwner(CBPackage newOwner)
    Set the owner of the type declaration.
    Parameters:
      `newOwner` - The owner

  - ### setDocumentation

    public void setDocumentation(List<String> text)
    Set the documentation.
    Parameters:
      `text` - The text