Project

General

Profile

1 35288 antonis.le
package eu.dnetlib.goldoa.service;
2
3 35468 antonis.le
import eu.dnetlib.goldoa.domain.Journal;
4 35288 antonis.le
import eu.dnetlib.goldoa.domain.Vocabulary;
5 35468 antonis.le
import eu.dnetlib.goldoa.service.dao.JournalDAO;
6 35478 antonis.le
import eu.dnetlib.goldoa.service.dao.PublisherDAO;
7 35521 antonis.le
import org.apache.commons.codec.digest.DigestUtils;
8 35478 antonis.le
import org.springframework.beans.factory.annotation.Autowired;
9 37622 antonis.le
import org.springframework.dao.EmptyResultDataAccessException;
10 45489 panagiotis
import org.springframework.stereotype.Service;
11 35288 antonis.le
import org.springframework.transaction.annotation.Transactional;
12
13
import java.util.List;
14
15
/**
16
 * Created by antleb on 3/11/15.
17
 */
18
@Transactional
19 46139 panagiotis
@Service("journalManager")
20 35288 antonis.le
public class JournalManagerImpl implements JournalManager {
21
22 39076 antonis.le
	@Autowired
23
	private JournalDAO journalDAO;
24
	@Autowired
25
	private PublisherDAO publisherDAO;
26 35288 antonis.le
27 39076 antonis.le
	@Override
28
	public List<Vocabulary> search(String term) {
29
		return journalDAO.search(term);
30
	}
31 35288 antonis.le
32 39076 antonis.le
	@Override
33
	public Journal getJournal(String journalId) {
34
		Journal journal = journalDAO.getJournal(journalId);
35 35478 antonis.le
36 39076 antonis.le
		if (journal.getPublisher() != null)
37
			journal.setPublisher(publisherDAO.getPublisher(journal.getPublisher().getId()));
38 35478 antonis.le
39 39076 antonis.le
		return journal;
40
	}
41 35288 antonis.le
42 39076 antonis.le
	@Override
43
	public Journal getJournalByTitle(String title) {
44
		try {
45
			Journal journal = journalDAO.getJournalByTitle(title);
46 37622 antonis.le
47 39076 antonis.le
			if (journal.getPublisher() != null)
48
				journal.setPublisher(publisherDAO.getPublisher(journal.getPublisher().getId()));
49 37622 antonis.le
50 39076 antonis.le
			return journal;
51
		} catch (EmptyResultDataAccessException e) {
52 37622 antonis.le
53 39076 antonis.le
		}
54 37622 antonis.le
55 39076 antonis.le
		return null;
56
	}
57 37622 antonis.le
58 39076 antonis.le
	@Override
59
	public Journal saveJournal(Journal journal) {
60
		if (journal.getId() == null) {
61
			journal.setId("portal::" + DigestUtils.md5Hex(journal.getTitle()));
62
			journal.setSource("portal");
63
		}
64 35521 antonis.le
65 39076 antonis.le
		return journalDAO.saveJournal(journal);
66
	}
67 35468 antonis.le
68 39076 antonis.le
	public JournalDAO getJournalDAO() {
69
		return journalDAO;
70
	}
71 35468 antonis.le
72 39076 antonis.le
	public void setJournalDAO(JournalDAO journalDAO) {
73
		this.journalDAO = journalDAO;
74
	}
75 35478 antonis.le
76 39076 antonis.le
	public PublisherDAO getPublisherDAO() {
77
		return publisherDAO;
78
	}
79 35478 antonis.le
80 39076 antonis.le
	public void setPublisherDAO(PublisherDAO publisherDAO) {
81
		this.publisherDAO = publisherDAO;
82
	}
83 35288 antonis.le
}