/**
* =============================================================================
*
* 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.core.adapter.impl;
import org.orcid.core.adapter.Jaxb2JpaAdapter;
import org.orcid.core.adapter.Jpa2JaxbAdapter;
import org.orcid.core.adapter.JpaJaxbEntityAdapter;
import org.orcid.core.manager.LoadOptions;
import org.orcid.core.manager.UpdateOptions;
import org.orcid.jaxb.model.clientgroup.OrcidClient;
import org.orcid.jaxb.model.clientgroup.OrcidClientGroup;
import org.orcid.jaxb.model.message.DisambiguatedOrganization;
import org.orcid.jaxb.model.message.OrcidProfile;
import org.orcid.persistence.jpa.entities.ClientDetailsEntity;
import org.orcid.persistence.jpa.entities.OrgDisambiguatedEntity;
import org.orcid.persistence.jpa.entities.ProfileEntity;
/**
* orcid-persistence - Dec 7, 2011 - JpaJaxbEntityAdapterImpl
*
* @author Declan Newman (declan)
**/
public class JpaJaxbEntityAdapterImpl implements JpaJaxbEntityAdapter {
private Jpa2JaxbAdapter jpa2JaxbAdapter;
private Jaxb2JpaAdapter jaxb2JpaAdapter;
public JpaJaxbEntityAdapterImpl(Jpa2JaxbAdapter jpa2JaxbAdapter, Jaxb2JpaAdapter jaxb2JpaAdapter) {
this.jpa2JaxbAdapter = jpa2JaxbAdapter;
this.jaxb2JpaAdapter = jaxb2JpaAdapter;
}
@Override
public OrcidProfile toOrcidProfile(ProfileEntity profileEntity) {
return toOrcidProfile(profileEntity, LoadOptions.ALL);
}
@Override
public OrcidProfile toOrcidProfile(ProfileEntity profileEntity, LoadOptions loadOptions) {
return jpa2JaxbAdapter.toOrcidProfile(profileEntity, loadOptions);
}
@Override
public ProfileEntity toProfileEntity(OrcidProfile profile) {
return jaxb2JpaAdapter.toProfileEntity(profile, null);
}
@Override
public ProfileEntity toProfileEntity(OrcidProfile profile, ProfileEntity existingProfileEntity) {
return jaxb2JpaAdapter.toProfileEntity(profile, existingProfileEntity);
}
@Override
public ProfileEntity toProfileEntity(OrcidProfile profile, ProfileEntity existingProfileEntity, UpdateOptions updateOptions) {
return jaxb2JpaAdapter.toProfileEntity(profile, existingProfileEntity, updateOptions);
}
@Override
public OrcidClient toOrcidClient(ClientDetailsEntity clientDetailsEntity){
return jpa2JaxbAdapter.toOrcidClient(clientDetailsEntity);
}
@Override
public OrcidClientGroup toOrcidClientGroup(ProfileEntity profileEntity) {
return jpa2JaxbAdapter.toOrcidClientGroup(profileEntity);
}
@Override
public ProfileEntity toProfileEntity(OrcidClientGroup orcidClientGroup) {
// TODO Auto-generated method stub
return null;
}
@Override
public DisambiguatedOrganization getDisambiguatedOrganization(OrgDisambiguatedEntity orgDisambiguatedEntity) {
return jpa2JaxbAdapter.getDisambiguatedOrganization(orgDisambiguatedEntity);
}
}