/**
* =============================================================================
*
* 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 org.apache.commons.lang3.StringUtils;
import org.orcid.jaxb.model.message.Contributor;
import org.orcid.jaxb.model.message.ContributorAttributes;
import org.orcid.jaxb.model.message.ContributorEmail;
import org.orcid.jaxb.model.message.ContributorOrcid;
import org.orcid.jaxb.model.message.ContributorRole;
import org.orcid.jaxb.model.message.CreditName;
import org.orcid.jaxb.model.message.SequenceType;
public class CurrentWorkContributor {
private String orcid;
private String creditName;
private String email;
private String role;
private String sequence;
public CurrentWorkContributor() {
}
public CurrentWorkContributor(Contributor contributor) {
ContributorOrcid contributorOrcid = contributor.getContributorOrcid();
if (contributorOrcid != null) {
orcid = contributorOrcid.getPath();
}
if (contributor != null && contributor.getCreditName() != null) {
creditName = contributor.getCreditName().getContent();
}
ContributorAttributes contributorAttributes = contributor.getContributorAttributes();
if (contributorAttributes != null) {
ContributorRole contributorRole = contributorAttributes.getContributorRole();
if (contributorRole != null) {
role = contributorRole.value();
}
SequenceType sequenceType = contributorAttributes.getContributorSequence();
if (sequenceType != null) {
sequence = sequenceType.value();
}
}
}
public Contributor getContributor() {
Contributor contributor = new Contributor();
if (StringUtils.isNotBlank(orcid)) {
contributor.setContributorOrcid(new ContributorOrcid(orcid));
}
if (StringUtils.isNotBlank(creditName)) {
contributor.setCreditName(new CreditName(creditName));
}
if (StringUtils.isNotBlank(email)) {
contributor.setContributorEmail(new ContributorEmail(email));
}
if (StringUtils.isNotBlank(role)) {
ContributorAttributes attributes = retrieveContributorAttributes(contributor);
ContributorRole contributorRole = ContributorRole.fromValue(role);
attributes.setContributorRole(contributorRole);
}
if (StringUtils.isNotBlank(sequence)) {
ContributorAttributes attributes = retrieveContributorAttributes(contributor);
SequenceType sequenceType = SequenceType.fromValue(sequence);
attributes.setContributorSequence(sequenceType);
}
return contributor;
}
private ContributorAttributes retrieveContributorAttributes(Contributor contributor) {
ContributorAttributes attributes = contributor.getContributorAttributes();
if (attributes == null) {
attributes = new ContributorAttributes();
contributor.setContributorAttributes(attributes);
}
return attributes;
}
public String getOrcid() {
return orcid;
}
public void setOrcid(String orcid) {
this.orcid = orcid;
}
public String getCreditName() {
return creditName;
}
public void setCreditName(String creditName) {
this.creditName = creditName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getSequence() {
return sequence;
}
public void setSequence(String sequence) {
this.sequence = sequence;
}
}