Ejemplo n.º 1
0
  public Funding toFunding() {
    Funding result = new Funding();
    Amount orcidAmount = new Amount();
    if (!PojoUtil.isEmpty(amount)) orcidAmount.setContent(amount.getValue());
    if (!PojoUtil.isEmpty(currencyCode)) orcidAmount.setCurrencyCode(currencyCode.getValue());
    result.setAmount(orcidAmount);
    if (!PojoUtil.isEmpty(description)) result.setDescription(description.getValue());
    if (!PojoUtil.isEmpty(startDate)) result.setStartDate(new FuzzyDate(startDate.toFuzzyDate()));
    if (!PojoUtil.isEmpty(endDate)) result.setEndDate(new FuzzyDate(endDate.toFuzzyDate()));
    if (!PojoUtil.isEmpty(putCode)) result.setPutCode(Long.valueOf(putCode.getValue()));
    if (fundingTitle != null) {
      result.setTitle(fundingTitle.toFundingTitle());
    }
    if (!PojoUtil.isEmpty(fundingType))
      result.setType(FundingType.fromValue(fundingType.getValue()));

    if (organizationDefinedFundingSubType != null
        && !PojoUtil.isEmpty(organizationDefinedFundingSubType.getSubtype()))
      result.setOrganizationDefinedType(
          new OrganizationDefinedFundingSubType(
              organizationDefinedFundingSubType.getSubtype().getValue()));

    if (!PojoUtil.isEmpty(url)) result.setUrl(new Url(url.getValue()));
    else result.setUrl(new Url(""));
    if (visibility != null)
      result.setVisibility(
          org.orcid.jaxb.model.common_rc2.Visibility.fromValue(visibility.getVisibility().value()));

    // Set Organization
    Organization organization = new Organization();
    if (!PojoUtil.isEmpty(fundingName)) organization.setName(fundingName.getValue());
    OrganizationAddress organizationAddress = new OrganizationAddress();
    organization.setAddress(organizationAddress);
    if (!PojoUtil.isEmpty(city)) organizationAddress.setCity(city.getValue());
    if (!PojoUtil.isEmpty(region)) {
      organizationAddress.setRegion(region.getValue());
    }
    if (!PojoUtil.isEmpty(country)) {
      organizationAddress.setCountry(Iso3166Country.fromValue(country.getValue()));
    }
    if (!PojoUtil.isEmpty(disambiguatedFundingSourceId)) {
      organization.setDisambiguatedOrganization(new DisambiguatedOrganization());
      organization
          .getDisambiguatedOrganization()
          .setDisambiguatedOrganizationIdentifier(disambiguatedFundingSourceId.getValue());
      organization
          .getDisambiguatedOrganization()
          .setDisambiguationSource(disambiguationSource.getValue());
    }
    result.setOrganization(organization);

    // Set contributors
    if (contributors != null && !contributors.isEmpty()) {
      FundingContributors fContributors = new FundingContributors();
      for (Contributor contributor : contributors) {
        if (!PojoUtil.isEmtpy(contributor))
          fContributors.getContributor().add(contributor.toFundingContributor());
      }
      result.setContributors(fContributors);
    }
    // Set external identifiers
    if (externalIdentifiers != null && !externalIdentifiers.isEmpty()) {
      FundingExternalIdentifiers fExternalIdentifiers = new FundingExternalIdentifiers();
      for (FundingExternalIdentifierForm fExternalIdentifier : externalIdentifiers) {
        if (!PojoUtil.isEmtpy(fExternalIdentifier))
          fExternalIdentifiers
              .getExternalIdentifier()
              .add(fExternalIdentifier.toFundingExternalIdentifier());
      }
      result.setExternalIdentifiers(fExternalIdentifiers);
    }

    return result;
  }