package gov.samhsa.consent2share.service.consentexport;
import gov.samhsa.consent.ConsentDto;
import gov.samhsa.consent.ConsentDtoFactory;
import gov.samhsa.consent2share.domain.consent.Consent;
import gov.samhsa.consent2share.domain.consent.ConsentRepository;
import org.modelmapper.ModelMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class ConsentDtoFactoryImpl.
*/
public class ConsentDtoFactoryImpl implements ConsentDtoFactory {
/** The logger. */
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/** The consent repository. */
ConsentRepository consentRepository;
/** The model mapper. */
ModelMapper modelMapper;
/** The consent export mapper. */
private ConsentExportMapper consentExportMapper;
/**
* Instantiates a new consent dto factory impl.
*
* @param consentRepository
* the consent repository
* @param modelMapper
* the model mapper
* @param consentExportMapper
* the consent export mapper
*/
public ConsentDtoFactoryImpl(ConsentRepository consentRepository,
ModelMapper modelMapper, ConsentExportMapper consentExportMapper) {
super();
this.consentRepository = consentRepository;
this.modelMapper = modelMapper;
this.consentExportMapper = consentExportMapper;
}
/*
* (non-Javadoc)
*
* @see gov.samhsa.consent.ConsentDtoFactory#createConsentDto(long)
*/
@Override
public ConsentDto createConsentDto(long consentId) {
Consent consent = consentRepository.findOne(consentId);
ConsentDto consentDto = consentExportMapper.map(consent);
return consentDto;
}
/*
* (non-Javadoc)
*
* @see
* gov.samhsa.consent.ConsentDtoFactory#createConsentDto(java.lang.Object)
*/
@Override
public ConsentDto createConsentDto(Object obj) {
ConsentDto consentDto = null;
if (obj != null) {
if (obj instanceof Long) {
long consentId = ((Long) obj).longValue();
Consent consent = consentRepository.findOne(consentId);
consentDto = consentExportMapper.map(consent);
} else if (obj instanceof Consent) {
consentDto = consentExportMapper.map((Consent) obj);
}
}
return consentDto;
}
}