long createTimestamp = decoder.readLong();
byte[] encodedHash = decoder.readBinary();
BigInteger hash = new BigInteger(encodedHash);
if (!isMissing) {
File file = new File(decoder.readString());
return new DefaultCachedArtifact(file, createTimestamp, hash);
} else {
int size = decoder.readSmallInt();
List<String> attempted = new ArrayList<String>(size);
for (int i = 0; i < size; i++) {
attempted.add(decoder.readString());
}
return new DefaultCachedArtifact(attempted, createTimestamp, hash);
}
}