package gw.billing.caching /** * Cachable is an interface expected by an object which will provide data from the original source to a CacheWrapper */ interface Cachable { /** * This method populates the cache, storing the data with the given key * * @param key an object used to retrieve and compare cache contents * @return V the values associated with the key from the data source */ function retrieveFromSource(key: K) : V }