The most important classes and interfaces of the Structure Checker API are:
chemaxon.checkers.StructureChecker interface and its implementations: contain the code to detect issues in structures;
chemaxon.checkers.result.StructureCheckerResult interface and its implementations: represent the result of a structure check, and contain information about the problems;
chemaxon.fixers.StructureFixer interface and its implementations: contain the code to fix a certain issue represented by a StructureCheckerResult.
Figure 1. Logic of Structure Checker's checkers and fixers
Configuration, metadata and persistence
A list of checkers (optionally with preferred fixers) can be executed on a structure using an implementation of chemaxon.checkers.runner.StructureCheckerRunner. BasicCheckerRunner is meant for checking, and it has basic fixing capabilities, AdvancedCheckerRunner is more robust, and has better fixing method, like running more iterations and fixer priorities.
A list of checkers can be saved and restored with ConfigurationReader and ConfigurationWriter implementations located in chemaxon.checkers.runner.configuration.reader (and writer) packages. Implementations for XML and Action String representation are available.
Checker and Fixer metadata is kept in the @CheckerInfo and @FixerInfo annotations of the corresponding class.