/** * ============================================================================= * * ORCID (R) Open Source * http://orcid.org * * Copyright (c) 2012-2014 ORCID, Inc. * Licensed under an MIT-Style License (MIT) * http://orcid.org/open-source-license * * This copyright and license information (including a link to the full license) * shall be included in its entirety in all copies or substantial portion of * the software. * * ============================================================================= */ package org.orcid.frontend.web.forms; import java.util.ArrayList; import java.util.List; import org.orcid.jaxb.model.message.OrcidProfile; import org.orcid.jaxb.model.message.OrcidWork; import org.orcid.jaxb.model.message.OrcidWorks; import org.springframework.util.AutoPopulatingList; /** * * @author Will Simpson * */ public class CrossRefPublicationsForm { private AutoPopulatingList<Publication> publications; private String orcid; public List<Publication> getPublications() { return publications; } public void setPublications(List<Publication> publications) { this.publications = new AutoPopulatingList<Publication>(publications, Publication.class); } public String getOrcid() { return orcid; } public void setOrcidIdentifier(String orcid) { this.orcid = orcid; } public OrcidProfile getOrcidProfile() { OrcidProfile profile = new OrcidProfile(); profile.setOrcidIdentifier(orcid); OrcidWorks orcidWorks = new OrcidWorks(); profile.setOrcidWorks(orcidWorks); orcidWorks.getOrcidWork().addAll(getOrcidWorks()); return profile; } private List<OrcidWork> getOrcidWorks() { List<Publication> selectedPublications = getSelectedPublications(); List<OrcidWork> orcidWorks = new ArrayList<OrcidWork>(selectedPublications.size()); for (Publication publication : selectedPublications) { orcidWorks.add(publication.getOrcidWork()); } return orcidWorks; } public List<Publication> getSelectedPublications() { List<Publication> selectedPublications = new ArrayList<Publication>(publications.size()); for (Publication publication : publications) { if (publication.isSelected()) { selectedPublications.add(publication); } } return selectedPublications; } }