/** * sets the corresponding fields in data only if they are not null * * @param data PartData object to converted to Entry * @param entry if null, a new entry is created otherwise entry is used * @return converted PartData object */ public static Entry updateEntryField(PartData data, Entry entry) { EntryType type = data.getType(); if (type == null) return entry; switch (type) { case PLASMID: entry = setPlasmidFields(data.getPlasmidData(), entry); break; case STRAIN: entry = setStrainFields(data.getStrainData(), entry); break; case PART: break; case ARABIDOPSIS: entry = setSeedFields(data.getArabidopsisSeedData(), entry); break; } entry = setCommon(entry, data); return entry; }
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; }
private static Entry setCommon(Entry entry, PartData info) { if (entry == null || info == null) return null; if (info.getName() != null) entry.setName(info.getName()); if (info.getSelectionMarkers() != null) { Set<SelectionMarker> markers = getSelectionMarkers(info.getSelectionMarkers(), entry); entry.setSelectionMarkers(markers); } if (info.getReferences() != null) entry.setReferences(info.getReferences()); if (StringUtils.isBlank(entry.getPartNumber())) entry.setPartNumber(info.getPartId()); Date currentTime = new Date(); if (entry.getCreationTime() == null) entry.setCreationTime(currentTime); entry.setModificationTime(currentTime); if (info.getOwnerEmail() != null) { entry.setOwnerEmail(info.getOwnerEmail()); } if (info.getOwner() != null) entry.setOwner(info.getOwner()); if (info.getCreatorEmail() != null) { entry.setCreatorEmail(info.getCreatorEmail()); } if (info.getCreator() != null) entry.setCreator(info.getCreator()); if (info.getStatus() == null) { if (StringUtils.isBlank(entry.getStatus())) entry.setStatus(""); } else entry.setStatus(info.getStatus()); if (info.getAlias() != null) entry.setAlias(info.getAlias()); if (info.getBioSafetyLevel() == null) { if (entry.getBioSafetyLevel() == null) entry.setBioSafetyLevel(0); } else entry.setBioSafetyLevel(info.getBioSafetyLevel()); if (info.getShortDescription() != null) entry.setShortDescription(info.getShortDescription()); if (info.getLongDescription() != null) entry.setLongDescription(info.getLongDescription()); if (info.getIntellectualProperty() != null) entry.setIntellectualProperty(info.getIntellectualProperty()); Set<Link> links = getLinks(info.getLinks(), entry); entry.setLinks(links); Visibility visibility = info.getVisibility(); if (visibility != null) entry.setVisibility(visibility.getValue()); // checking for null instead of blank since it could be cleared if (info.getFundingSource() != null) entry.setFundingSource(info.getFundingSource()); if (info.getPrincipalInvestigator() != null) entry.setPrincipalInvestigator(info.getPrincipalInvestigator()); if (info.getPrincipalInvestigatorEmail() != null) entry.setPrincipalInvestigatorEmail(info.getPrincipalInvestigatorEmail()); if (info.getKeywords() != null) entry.setKeywords(info.getKeywords()); // parameters List<Parameter> parameters = getParameters(info.getCustomFields(), entry); entry.setParameters(parameters); return entry; }