Higgins supports multiple kinds of i-cards with differing characteristics. It does so by using multiple kinds of i-card providers, each of which implements one specific class of i-card. Although all i-cards implement the base "ICard" interface, some may implement one or more of the optional interfaces, and thus provide more or different characteristics.
An I-Card Provider is responsible for:
- Instantiating I-Cards that implement the I-Card Interfaces
- Managing the persistence of i-cards (e.g. to/from working storage)
- Supporting the I-Card Registry in importing I-Cards from one of the supported card data formats.
- I-Card Providers implements a canImportICard method that declares what formats it can support
- Supporting the I-Card Registry in exporting I-Cards to one of the supported card data formats.