/**
* =============================================================================
*
* 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 ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.ObjectFactory;
import org.orcid.jaxb.model.notification.permission_v2.Item;
import org.orcid.persistence.dao.WorkDao;
import org.orcid.persistence.jpa.entities.NotificationWorkEntity;
import org.orcid.persistence.jpa.entities.WorkEntity;
/**
* @author Will Simpson
*/
public class WorkEntityFactory implements ObjectFactory<NotificationWorkEntity> {
private WorkDao workDao;
public WorkEntityFactory(WorkDao workDao) {
this.workDao = workDao;
}
@Override
public NotificationWorkEntity create(Object source, MappingContext mappingContext) {
mappingContext.getSourceObjects();
NotificationWorkEntity nwe = new NotificationWorkEntity();
String putCode = ((Item) source).getPutCode();
if (putCode != null) {
WorkEntity work = workDao.find(Long.valueOf(putCode));
nwe.setWork(work);
}
return nwe;
}
}