public static Entry infoToEntry(PartData info) { EntryType type = info.getType(); Entry entry; switch (type) { case PLASMID: entry = setPlasmidFields(info.getPlasmidData(), new Plasmid()); break; case STRAIN: entry = setStrainFields(info.getStrainData(), new Strain()); break; case ARABIDOPSIS: entry = setSeedFields(info.getArabidopsisSeedData(), new ArabidopsisSeed()); break; case PART: default: entry = new Part(); break; } if (entry == null) return null; // common fields if (StringUtils.isEmpty(info.getRecordId())) entry.setRecordId(UUID.randomUUID().toString()); else entry.setRecordId(info.getRecordId()); entry.setVersionId(entry.getRecordId()); if (info.getCreationTime() == 0) entry.setCreationTime(new Date()); else entry.setCreationTime(new Date(info.getCreationTime())); entry.setModificationTime(entry.getCreationTime()); entry = setCommon(entry, info); return entry; }