Search in sources :

Example 16 with FundingList

use of org.orcid.jaxb.model.message.FundingList in project ORCID-Source by ORCID.

the class OrcidProfileManagerImpl method addFundings.

/**
     * Adds a new {@link List<org.orcid.jaxb.model.message.FundingList<}
     * to the {@link} OrcidProfile} and returns the updated values
     * 
     * @param updatedOrcidProfile
     * @return
     */
@Override
@Transactional
public void addFundings(OrcidProfile updatedOrcidProfile) {
    String orcid = updatedOrcidProfile.getOrcidIdentifier().getPath();
    OrcidProfile existingProfile = retrieveOrcidProfile(orcid);
    if (existingProfile == null) {
        throw new IllegalArgumentException("No record found for " + orcid);
    }
    String amenderOrcid = sourceManager.retrieveSourceOrcid();
    FundingList existingFundingList = existingProfile.retrieveFundings();
    // updates the amount format to the right format according to the
    // current locale
    setFundingAmountsWithTheCorrectFormat(updatedOrcidProfile);
    FundingList updatedFundingList = updatedOrcidProfile.retrieveFundings();
    Visibility workVisibilityDefault = existingProfile.getOrcidInternal().getPreferences().getActivitiesVisibilityDefault().getValue();
    Boolean claimed = existingProfile.getOrcidHistory().isClaimed();
    setFundingPrivacy(updatedFundingList, workVisibilityDefault, claimed == null ? false : claimed);
    updatedFundingList = dedupeFundings(updatedFundingList);
    addSourceToFundings(updatedFundingList, amenderOrcid);
    List<Funding> updatedList = updatedFundingList.getFundings();
    checkForAlreadyExistingFundings(existingFundingList, updatedList);
    persistAddedFundings(orcid, updatedList);
    profileDao.flush();
    boolean notificationsEnabled = existingProfile.getOrcidInternal().getPreferences().getNotificationsEnabled();
    if (notificationsEnabled) {
        notificationManager.sendAmendEmail(existingProfile, AmendedSection.FUNDING);
    }
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) FundingList(org.orcid.jaxb.model.message.FundingList) Funding(org.orcid.jaxb.model.message.Funding) Visibility(org.orcid.jaxb.model.message.Visibility) Transactional(org.springframework.transaction.annotation.Transactional)

Example 17 with FundingList

use of org.orcid.jaxb.model.message.FundingList in project ORCID-Source by ORCID.

the class OrcidProfileManagerImpl method updateFundings.

@Override
@Transactional
public OrcidProfile updateFundings(OrcidProfile updatedOrcidProfile) {
    OrcidProfile existingProfile = retrieveOrcidProfile(updatedOrcidProfile.getOrcidIdentifier().getPath());
    if (existingProfile == null) {
        return null;
    }
    FundingList updatedFundingList = updatedOrcidProfile.retrieveFundings();
    if (updatedFundingList == null) {
        return null;
    } else {
        // Parse the amount in the new funding
        setFundingAmountsWithTheCorrectFormat(updatedOrcidProfile);
        // Update the funding list with the new values
        updatedFundingList = updatedOrcidProfile.retrieveFundings();
    }
    OrcidActivities existingActivities = existingProfile.getOrcidActivities();
    if (existingActivities == null) {
        existingActivities = new OrcidActivities();
        existingProfile.setOrcidActivities(existingActivities);
    }
    FundingList existingFundingList = existingActivities.getFundings();
    if (existingFundingList == null) {
        existingFundingList = new FundingList();
        existingActivities.setFundings(existingFundingList);
    }
    orcidJaxbCopyManager.copyFundingListToExistingPreservingVisibility(existingFundingList, updatedFundingList);
    OrcidProfile profileToReturn = updateOrcidProfile(existingProfile, UpdateOptions.FUNDINGS_ONLY);
    notificationManager.sendAmendEmail(profileToReturn, AmendedSection.FUNDING);
    return profileToReturn;
}
Also used : OrcidProfile(org.orcid.jaxb.model.message.OrcidProfile) FundingList(org.orcid.jaxb.model.message.FundingList) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities) Transactional(org.springframework.transaction.annotation.Transactional)

Example 18 with FundingList

use of org.orcid.jaxb.model.message.FundingList in project ORCID-Source by ORCID.

the class OrcidMessageUtil method setSourceName.

public void setSourceName(OrcidProfile orcidProfile) {
    if (orcidProfile != null) {
        if (orcidProfile.getOrcidActivities() != null) {
            OrcidActivities orcidActivities = orcidProfile.getOrcidActivities();
            if (orcidActivities.getAffiliations() != null) {
                Affiliations affs = orcidActivities.getAffiliations();
                List<Affiliation> affList = affs.getAffiliation();
                if (affList != null) {
                    for (Affiliation aff : affList) {
                        setSourceName(aff);
                    }
                }
            }
            if (orcidActivities.getFundings() != null) {
                FundingList fundingList = orcidActivities.getFundings();
                List<Funding> fundings = fundingList.getFundings();
                if (fundings != null) {
                    for (Funding funding : fundings) {
                        setSourceName(funding);
                    }
                }
            }
            if (orcidActivities.getOrcidWorks() != null) {
                OrcidWorks orcidWorks = orcidActivities.getOrcidWorks();
                List<OrcidWork> works = orcidWorks.getOrcidWork();
                if (works != null) {
                    for (OrcidWork work : works) {
                        setSourceName(work);
                    }
                }
            }
        }
        if (orcidProfile.getOrcidBio() != null) {
            OrcidBio orcidBio = orcidProfile.getOrcidBio();
            if (orcidBio.getContactDetails() != null) {
                Address address = orcidBio.getContactDetails().getAddress();
                if (address != null) {
                    setSourceName(address);
                }
            }
            if (orcidBio.getExternalIdentifiers() != null) {
                ExternalIdentifiers extIds = orcidBio.getExternalIdentifiers();
                List<ExternalIdentifier> extIdsList = extIds.getExternalIdentifier();
                if (extIdsList != null) {
                    for (ExternalIdentifier extId : extIdsList) {
                        setSourceName(extId);
                    }
                }
            }
            if (orcidBio.getKeywords() != null) {
                Keywords keywords = orcidBio.getKeywords();
                List<Keyword> keywordList = keywords.getKeyword();
                if (keywordList != null) {
                    for (Keyword keyword : keywordList) {
                        setSourceName(keyword);
                    }
                }
            }
            if (orcidBio.getPersonalDetails() != null) {
                OtherNames otherNames = orcidBio.getPersonalDetails().getOtherNames();
                if (otherNames != null) {
                    List<OtherName> otherNameList = otherNames.getOtherName();
                    if (otherNameList != null) {
                        for (OtherName otherName : otherNameList) {
                            setSourceName(otherName);
                        }
                    }
                }
            }
            if (orcidBio.getResearcherUrls() != null) {
                ResearcherUrls rUrls = orcidBio.getResearcherUrls();
                List<ResearcherUrl> rUrlList = rUrls.getResearcherUrl();
                if (rUrlList != null) {
                    for (ResearcherUrl rUrl : rUrlList) {
                        setSourceName(rUrl);
                    }
                }
            }
        }
    }
}
Also used : Keywords(org.orcid.jaxb.model.message.Keywords) OrcidBio(org.orcid.jaxb.model.message.OrcidBio) Address(org.orcid.jaxb.model.message.Address) Keyword(org.orcid.jaxb.model.message.Keyword) Funding(org.orcid.jaxb.model.message.Funding) ExternalIdentifier(org.orcid.jaxb.model.message.ExternalIdentifier) OtherNames(org.orcid.jaxb.model.message.OtherNames) OrcidWork(org.orcid.jaxb.model.message.OrcidWork) OtherName(org.orcid.jaxb.model.message.OtherName) OrcidActivities(org.orcid.jaxb.model.message.OrcidActivities) OrcidWorks(org.orcid.jaxb.model.message.OrcidWorks) FundingList(org.orcid.jaxb.model.message.FundingList) Affiliations(org.orcid.jaxb.model.message.Affiliations) ResearcherUrls(org.orcid.jaxb.model.message.ResearcherUrls) ResearcherUrl(org.orcid.jaxb.model.message.ResearcherUrl) ExternalIdentifiers(org.orcid.jaxb.model.message.ExternalIdentifiers) Affiliation(org.orcid.jaxb.model.message.Affiliation)

Aggregations

FundingList (org.orcid.jaxb.model.message.FundingList)18 Funding (org.orcid.jaxb.model.message.Funding)12 OrcidProfile (org.orcid.jaxb.model.message.OrcidProfile)10 OrcidActivities (org.orcid.jaxb.model.message.OrcidActivities)9 OrcidWorks (org.orcid.jaxb.model.message.OrcidWorks)7 FundingTitle (org.orcid.jaxb.model.message.FundingTitle)6 Title (org.orcid.jaxb.model.message.Title)6 Affiliations (org.orcid.jaxb.model.message.Affiliations)5 OrcidWork (org.orcid.jaxb.model.message.OrcidWork)5 WorkTitle (org.orcid.jaxb.model.message.WorkTitle)5 CreditName (org.orcid.jaxb.model.message.CreditName)3 ExternalIdentifier (org.orcid.jaxb.model.message.ExternalIdentifier)3 ExternalIdentifiers (org.orcid.jaxb.model.message.ExternalIdentifiers)3 FundingExternalIdentifier (org.orcid.jaxb.model.message.FundingExternalIdentifier)3 FundingExternalIdentifiers (org.orcid.jaxb.model.message.FundingExternalIdentifiers)3 OrcidBio (org.orcid.jaxb.model.message.OrcidBio)3 OrcidMessage (org.orcid.jaxb.model.message.OrcidMessage)3 Organization (org.orcid.jaxb.model.message.Organization)3 OrganizationAddress (org.orcid.jaxb.model.message.OrganizationAddress)3 OtherName (org.orcid.jaxb.model.message.OtherName)3