Interface CifFile

  • All Known Implementing Classes:
    BinaryFile, TextFile

    public interface CifFile

    The instance of a parsed CifFile. No difference between binary and text files is exposed. This class does not represent a parsed data model. Rather all source data is neatly wrapped into a type-safe hierarchy of Block, Category, and Column entities. Parsing (for text data) or decoding (for binary data) is only done, when the content of particular categories or columns is requested. Otherwise the goal is to keep interaction with the source data to a bare minimum: just enough to provide this view of the data model.

    CifFiles have the following hierarchy:

    • 1 CifFile contains 1...n Blocks
    • 1 Block contains 1...n Categories
    • 1 Category contains 1...n Columns
    • 1 Column contains 1...n rows of raw values (int, double, or String)

    Prominent Categories and Columns are provided in a type-safe manner based on the mmCIF dictionary. Missing categories and columns will still be accessible, though the report being undefined and have a row count of 0. Most values in the data structure will be available, but some are missing or unknown. This property of individual values is reported by the ValueKind property of a Column.

    • Method Detail

      • getBlocks

        List<Block> getBlocks()
        Access to all blocks of this file.
        Returns:
        a list of present blocks
      • getFirstBlock

        default Block getFirstBlock()
        Convenience method to access the first block.
        Returns:
        the first block of this file
      • blocks

        default Stream<Block> blocks()
        Convenience method to access all blocks as Stream.
        Returns:
        a Stream of all blocks