public static Integer intValue(String value) { for (BioSafetyOption option : BioSafetyOption.values()) { if (option.displayName.equalsIgnoreCase(value) || option.getValue().equals(value)) { return Integer.valueOf(option.getValue()); } } return null; }
public static boolean isValidOption(Integer integer) { if (integer == null) return false; for (BioSafetyOption option : BioSafetyOption.values()) { Integer intValue = intValue(option.toString()); if (intValue != null && integer.intValue() == intValue) return true; } return false; }
/** * Updates the entry based on the field that is specified. Mainly created for use by the bulk * import auto update * * @param entry entry to be updated * @param plasmid should be set if updating strain with plasmid * @param value value to be set * @param field to set * @return updated entry array containing both entry and plasmid. if plasmid is null only entry is * returned */ public static Entry[] infoToEntryForField( Entry entry, Entry plasmid, String value, EntryField field) { switch (field) { case PI: { entry.setPrincipalInvestigator(value); if (plasmid != null) plasmid.setPrincipalInvestigator(value); break; } case PI_EMAIL: { entry.setPrincipalInvestigatorEmail(value); break; } case FUNDING_SOURCE: { entry.setFundingSource(value); if (plasmid != null) plasmid.setFundingSource(value); break; } case IP: entry.setIntellectualProperty(value); if (plasmid != null) plasmid.setIntellectualProperty(value); break; case BIO_SAFETY_LEVEL: Integer level = BioSafetyOption.intValue(value); if (level == null) { if (value.contains("1")) level = 1; else if (value.contains("2")) level = 2; else break; } entry.setBioSafetyLevel(level); if (plasmid != null) { plasmid.setBioSafetyLevel(level); } break; case NAME: entry.setName(value); break; case ALIAS: entry.setAlias(value); break; case KEYWORDS: entry.setKeywords(value); break; case SUMMARY: entry.setShortDescription(value); break; case NOTES: entry.setLongDescription(value); break; case REFERENCES: entry.setReferences(value); break; case LINKS: HashSet<Link> links = new HashSet<>(); Link link = new Link(); link.setLink(value); link.setEntry(entry); links.add(link); entry.setLinks(links); break; case STATUS: entry.setStatus(value); if (plasmid != null) plasmid.setStatus(value); break; case SELECTION_MARKERS: HashSet<SelectionMarker> markers = new HashSet<>(); SelectionMarker marker = new SelectionMarker(value, entry); markers.add(marker); entry.setSelectionMarkers(markers); break; case PARENTAL_STRAIN: case GENOTYPE_OR_PHENOTYPE: case PLASMIDS: entry = infoToStrainForField(entry, value, field); break; case BACKBONE: case ORIGIN_OF_REPLICATION: case CIRCULAR: case PROMOTERS: case REPLICATES_IN: entry = infoToPlasmidForField(entry, value, field); break; case HOMOZYGOSITY: case ECOTYPE: case HARVEST_DATE: case GENERATION: case SENT_TO_ABRC: case PLANT_TYPE: case PARENTS: entry = infoToSeedForField(entry, value, field); break; default: break; } if (plasmid == null) return new Entry[] {entry}; return new Entry[] {entry, plasmid}; }