Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2

    
3
import eu.dnetlib.goldoa.domain.Journal;
4
import eu.dnetlib.goldoa.domain.Vocabulary;
5
import eu.dnetlib.goldoa.service.dao.JournalDAO;
6
import eu.dnetlib.goldoa.service.dao.PublisherDAO;
7
import org.apache.commons.codec.digest.DigestUtils;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.dao.EmptyResultDataAccessException;
10
import org.springframework.stereotype.Service;
11
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
@Service
20
public class JournalManagerImpl implements JournalManager {
21

    
22
	@Autowired
23
	private JournalDAO journalDAO;
24
	@Autowired
25
	private PublisherDAO publisherDAO;
26

    
27
	@Override
28
	public List<Vocabulary> search(String term) {
29
		return journalDAO.search(term);
30
	}
31

    
32
	@Override
33
	public Journal getJournal(String journalId) {
34
		Journal journal = journalDAO.getJournal(journalId);
35

    
36
		if (journal.getPublisher() != null)
37
			journal.setPublisher(publisherDAO.getPublisher(journal.getPublisher().getId()));
38

    
39
		return journal;
40
	}
41

    
42
	@Override
43
	public Journal getJournalByTitle(String title) {
44
		try {
45
			Journal journal = journalDAO.getJournalByTitle(title);
46

    
47
			if (journal.getPublisher() != null)
48
				journal.setPublisher(publisherDAO.getPublisher(journal.getPublisher().getId()));
49

    
50
			return journal;
51
		} catch (EmptyResultDataAccessException e) {
52

    
53
		}
54

    
55
		return null;
56
	}
57

    
58
	@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

    
65
		return journalDAO.saveJournal(journal);
66
	}
67

    
68
	public JournalDAO getJournalDAO() {
69
		return journalDAO;
70
	}
71

    
72
	public void setJournalDAO(JournalDAO journalDAO) {
73
		this.journalDAO = journalDAO;
74
	}
75

    
76
	public PublisherDAO getPublisherDAO() {
77
		return publisherDAO;
78
	}
79

    
80
	public void setPublisherDAO(PublisherDAO publisherDAO) {
81
		this.publisherDAO = publisherDAO;
82
	}
83
}
(14-14/29)