Package com.io7m.smfj.validation.api

## Interface SMFSchemaType

- All Known Implementing Classes:
    `SMFSchema`

      @Immutable
      public interface SMFSchemaType

  The type of schemas.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default SMFSchemaAllowExtraAttributes` | `allowExtraAttributes()` |
    `default void` | `checkPreconditions()` | Check preconditions for the type.
    `java.util.Map<SMFAttributeName,​SMFSchemaAttribute>` | `optionalAttributes()` | A schema may define optional attributes.
    `java.util.Map<SMFAttributeName,​SMFSchemaAttribute>` | `requiredAttributes()` | A schema may define required attributes.
    `java.util.Optional<SMFCoordinateSystem>` | `requiredCoordinateSystem()` |
    `default SMFSchemaRequireTriangles` | `requireTriangles()` |
    `default SMFSchemaRequireVertices` | `requireVertices()` |
    `SMFSchemaIdentifier` | `schemaIdentifier()` |

- - ### Method Detail

    - #### schemaIdentifier

          @Parameter
          SMFSchemaIdentifier schemaIdentifier()

      Returns:
        The unique schema identifier

    - #### requiredAttributes

          @Parameter
          java.util.Map<SMFAttributeName,​SMFSchemaAttribute> requiredAttributes()

      A schema may define required attributes. An attribute is not allowed to be both required and optional at the same time.
      Returns:
        The required attributes

    - #### optionalAttributes

          @Parameter
          java.util.Map<SMFAttributeName,​SMFSchemaAttribute> optionalAttributes()

      A schema may define optional attributes. An attribute is not allowed to be both required and optional at the same time.
      Returns:
        The optional attributes

    - #### requiredCoordinateSystem

          @Parameter
          java.util.Optional<SMFCoordinateSystem> requiredCoordinateSystem()

      Returns:
        The required coordinate system, if any

    - #### allowExtraAttributes

          @Parameter
          @Default
          default SMFSchemaAllowExtraAttributes allowExtraAttributes()

      Returns:
        `SMFSchemaAllowExtraAttributes.SMF_EXTRA_ATTRIBUTES_ALLOWED` if the mesh is allowed to contain attributes that are not given in `requiredAttributes()`

    - #### requireTriangles

          @Parameter
          @Default
          default SMFSchemaRequireTriangles requireTriangles()

      Returns:
        `SMFSchemaRequireTriangles.SMF_TRIANGLES_REQUIRED` if a non-zero triangle count is required

    - #### requireVertices

          @Parameter
          @Default
          default SMFSchemaRequireVertices requireVertices()

      Returns:
        `SMFSchemaRequireVertices.SMF_VERTICES_REQUIRED` if a non-zero vertex count is required

    - #### checkPreconditions

          @Check
          default void checkPreconditions()

      Check preconditions for the type.