# Interface CATypePackageResolverType

All Known Implementing Classes:
  `CADatabaseTypePackageResolver`

public interface CATypePackageResolverType
A resolver for various package elements.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<CATypePackage>`
  `findTypePackage(CATypePackageIdentifier identifier)`
  Find a package with the given identifier.
  `Optional<CATypePackageIdentifier>`
  `findTypePackageId(com.io7m.lanark.core.RDottedName name, com.io7m.verona.core.VersionRange versionRange)`
  Find a package with the given name that satisfies the given version range.
  `default Optional<CATypeRecord>`
  `findTypeRecord(CATypeRecordIdentifier name)`
  Find the record type with the given fully qualified name.
  `default Optional<CATypeScalarType>`
  `findTypeScalar(CATypeScalarIdentifier name)`
  Find the scalar type with the given fully qualified name.

- ## Method Details

  - ### findTypeScalar

    default Optional<CATypeScalarType> findTypeScalar(CATypeScalarIdentifier name)
    Find the scalar type with the given fully qualified name.
    Parameters:
      `name` - The name
    Returns:
      The type, if any

  - ### findTypeRecord

    default Optional<CATypeRecord> findTypeRecord(CATypeRecordIdentifier name)
    Find the record type with the given fully qualified name.
    Parameters:
      `name` - The name
    Returns:
      The type, if any

  - ### findTypePackageId

    Optional<CATypePackageIdentifier> findTypePackageId(com.io7m.lanark.core.RDottedName name, com.io7m.verona.core.VersionRange versionRange)
    Find a package with the given name that satisfies the given version range.
    Parameters:
      `name` - The name
      `versionRange` - The version range
    Returns:
      The package identifier, if any

  - ### findTypePackage

    Optional<CATypePackage> findTypePackage(CATypePackageIdentifier identifier)
    Find a package with the given identifier.
    Parameters:
      `identifier` - The identifier
    Returns:
      The package, if any