class UniversalDiscCache implements Cache {

	@Override
	public Entry get(String key) {
		if (key == null) {
			return null;
		}

		File file = this.delegate.get(key);
		if (file == null || !file.exists()) {
			return null;
		}
		CountingInputStream cis = null;
		try {
			cis = new CountingInputStream(new FileInputStream(file));

			CacheHeader header = CacheHeader.readHeader(cis); // eat header
			byte[] data = StreamUtils.streamToBytes(cis,
					(int) (file.length() - cis.bytesRead));

			return header.toCacheEntry(data);
		} catch (IOException e) {
			VolleyLog.e(e, "Exception in file path %s", file.getAbsolutePath());
			remove(key);
			return null;
		} finally {
			IoUtils.closeQuietly(cis);
		}
	}

	public  UniversalDiscCache(DiscCacheAware delegate);

}