private static DcsFile getFile(SolrDocument doc) {
DcsFile file = new DcsFile();
file.setId(getFirst(doc, EntityField.ID));
file.setFixity(getFixitySet(doc));
file.setFormats(getFormatSet(doc));
file.setExtant((Boolean) doc.getFirstValue(FileField.EXTANT.solrName()));
if (has(doc, FileField.VALID)) {
file.setValid((Boolean) doc.getFirstValue(FileField.VALID
.solrName()));
}
if (has(doc, FileField.NAME)) {
file.setName(getFirst(doc, FileField.NAME));
}
if (has(doc, FileField.SOURCE)) {
file.setSource(getFirst(doc, FileField.SOURCE));
}
long size = (Long) doc.getFirstValue(FileField.SIZE.solrName());
if (size > 0) {
file.setSizeBytes(size);
}
file.setMetadata(getMetadataSet(doc));
file.setMetadataRef(getMetadataRefSet(doc, EntityField.METADATA_REF));
file.setAlternateIds(getResourceIdentifierSet(doc));
return file;
}