예제 #1
0
  /**
   * 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;
  }
예제 #2
0
  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;
  }
예제 #3
0
  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;
  }