Revision 45460
Added by Panagiotis Kanakakis over 7 years ago
PublicationManagerImpl.java | ||
---|---|---|
1 |
/* |
|
2 | 1 |
package eu.dnetlib.goldoa.service; |
3 | 2 |
|
4 | 3 |
import com.fasterxml.jackson.databind.JsonNode; |
5 | 4 |
import com.fasterxml.jackson.databind.ObjectMapper; |
6 |
import eu.dnetlib.goldoa.domain.Affiliation;
|
|
5 |
import eu.dnetlib.goldoa.domain.*;
|
|
7 | 6 |
import eu.dnetlib.goldoa.domain.BankAccount; |
8 | 7 |
import eu.dnetlib.goldoa.domain.Currency; |
9 |
import eu.dnetlib.goldoa.domain.Journal; |
|
10 |
import eu.dnetlib.goldoa.domain.ManagerException; |
|
11 |
import eu.dnetlib.goldoa.domain.OrganizationManagerException; |
|
12 |
import eu.dnetlib.goldoa.domain.Person; |
|
13 |
import eu.dnetlib.goldoa.domain.PersonManagerException; |
|
14 |
import eu.dnetlib.goldoa.domain.Publication; |
|
15 |
import eu.dnetlib.goldoa.domain.PublicationIdentifier; |
|
16 |
import eu.dnetlib.goldoa.domain.Publisher; |
|
8 |
import eu.dnetlib.goldoa.domain.User; |
|
9 |
import eu.dnetlib.goldoa.domain.Identifier; |
|
17 | 10 |
import eu.dnetlib.goldoa.service.dao.PublicationDAO; |
18 | 11 |
import org.apache.commons.codec.digest.DigestUtils; |
19 | 12 |
import org.apache.log4j.Logger; |
20 | 13 |
import org.springframework.beans.factory.annotation.Autowired; |
14 |
import org.springframework.stereotype.Service; |
|
21 | 15 |
import org.springframework.transaction.annotation.Transactional; |
22 | 16 |
|
23 | 17 |
import java.io.InputStream; |
... | ... | |
29 | 23 |
import java.util.List; |
30 | 24 |
import java.util.TimeZone; |
31 | 25 |
|
32 |
*/ |
|
26 |
|
|
33 | 27 |
/** |
34 | 28 |
* Created by antleb on 3/13/15. |
35 |
*//* |
|
36 |
|
|
29 |
*/ |
|
37 | 30 |
@Transactional |
31 |
@Service |
|
38 | 32 |
public class PublicationManagerImpl implements PublicationManager { |
39 | 33 |
|
40 | 34 |
private static Logger logger = Logger.getLogger(PublicationManagerImpl.class); |
... | ... | |
52 | 46 |
|
53 | 47 |
@Override |
54 | 48 |
public Publication getPublication(String publicationId) { |
55 |
Publication publication = publicationDAO.getPublication(publicationId); |
|
56 |
|
|
57 |
loadPublicationRelations(publication); |
|
58 |
|
|
59 |
if (publication.getJournal() != null && publication.getJournal().getId() != null) |
|
60 |
publication.setJournal(journalManager.getJournal(publication.getJournal().getId())); |
|
61 |
else |
|
62 |
publication.setJournal(null); |
|
63 |
|
|
64 |
if (publication.getPublisher() != null && publication.getPublisher().getId() != null) |
|
65 |
publication.setPublisher(publisherManager.getPublisher(publication.getPublisher().getId())); |
|
66 |
else |
|
67 |
publication.setPublisher(null); |
|
68 |
|
|
69 |
return publication; |
|
49 |
return publicationDAO.getPublication(publicationId); |
|
70 | 50 |
} |
71 | 51 |
|
72 | 52 |
private void loadPublicationRelations(Publication publication) { |
... | ... | |
82 | 62 |
} |
83 | 63 |
|
84 | 64 |
publicationDAO.savePublication(publication); |
65 |
/* |
|
85 | 66 |
deletePublicationRelations(publication); |
67 |
|
|
86 | 68 |
try { |
87 | 69 |
insertPublicationRelations(publication); |
88 | 70 |
} catch (PersonManagerException e) { |
... | ... | |
111 | 93 |
|
112 | 94 |
publication.setPublisher(publisherManager.getPublisher(publication.getPublisher().getId())); |
113 | 95 |
} |
114 |
|
|
96 |
*/ |
|
115 | 97 |
return publication; |
116 | 98 |
} |
117 | 99 |
|
118 | 100 |
private void insertPublicationRelations(Publication publication) throws PersonManagerException, OrganizationManagerException { |
119 |
publicationDAO.insertIdentifiers(publication); |
|
101 |
/*publicationDAO.insertIdentifiers(publication);
|
|
120 | 102 |
|
121 | 103 |
if (publication.getAuthors() != null) |
122 | 104 |
for (Affiliation aff : publication.getAuthors()) { |
... | ... | |
156 | 138 |
} |
157 | 139 |
} |
158 | 140 |
|
159 |
publicationDAO.saveAffiliations(publication); |
|
141 |
publicationDAO.saveAffiliations(publication);*/
|
|
160 | 142 |
} |
161 | 143 |
|
162 | 144 |
private void deletePublicationRelations(Publication publication) { |
163 |
publicationDAO.deleteIdentifiers(publication); |
|
164 |
publicationDAO.deleteAffiliations(publication); |
|
145 |
//publicationDAO.deleteIdentifiers(publication);
|
|
146 |
//publicationDAO.deleteAffiliations(publication);
|
|
165 | 147 |
} |
166 | 148 |
|
167 | 149 |
@Override |
... | ... | |
187 | 169 |
else |
188 | 170 |
publication.setType(Publication.Type.MONOGRAPH); |
189 | 171 |
|
190 |
publication.setPublicationDate(this.parsePublicationDate(root.path("message").path("issued")));
|
|
172 |
publication.setDate(this.parsePublicationDate(root.path("message").path("issued"))); |
|
191 | 173 |
publication.setJournal(this.parseJournal(root.path("message").path("container-title"), root.path("message").path("ISSN"))); |
192 | 174 |
publication.getJournal().setPublisher(this.parsePublisher(root.path("message").path("publisher"))); |
193 | 175 |
|
194 |
publication.setAuthors(new ArrayList<Affiliation>());
|
|
176 |
publication.setAffiliations(new ArrayList<Affiliation>());
|
|
195 | 177 |
for (JsonNode author : root.path("message").path("author")) { |
196 |
publication.getAuthors().add(this.parseAffiliation(author));
|
|
178 |
publication.getAffiliations().add(this.parseAffiliation(author));
|
|
197 | 179 |
} |
198 | 180 |
|
199 | 181 |
publication.setLicense(root.path("message").path("license").path(0).path("URL").textValue()); |
200 | 182 |
|
201 |
publication.setIdentifiers(new ArrayList<PublicationIdentifier>());
|
|
202 |
publication.getIdentifiers().add(new PublicationIdentifier("doi", doi));
|
|
183 |
publication.setPublicationIdentifiers(new ArrayList<Identifier>());
|
|
184 |
publication.getPublicationIdentifiers().add(new Identifier("doi", doi));
|
|
203 | 185 |
} else { |
204 | 186 |
throw new ManagerException(ManagerException.ErrorCause.NOT_EXISTS); |
205 | 187 |
} |
... | ... | |
267 | 249 |
|
268 | 250 |
journal.setIssn(sb.toString()); |
269 | 251 |
|
270 |
journal.setCurrency(Currency.EUR); |
|
252 |
journal.setApcCurrency(Currency.EUR);
|
|
271 | 253 |
journal.setSource("crossref"); |
272 | 254 |
journal.setId("crossref::" + DigestUtils.md5Hex(journal.getTitle())); |
273 | 255 |
} |
... | ... | |
289 | 271 |
|
290 | 272 |
return c.getTime(); |
291 | 273 |
} |
292 |
} |
|
293 |
*/ |
|
274 |
} |
Also available in: Unified diff