Skip to content
Snippets Groups Projects
Commit 878ea18a authored by dre0059's avatar dre0059
Browse files

Save orderNumber of reference, and http link if exists

parent 046b0bf6
Branches
No related merge requests found
......@@ -58,8 +58,8 @@ public class FileUploadController {
headerService.processHeader(header);
referenceService.extractReferences(references);
System.out.println(header);
//System.out.println(references);
//System.out.println(header);
System.out.println(references);
tmpFile.delete();
......
......@@ -28,8 +28,9 @@ public class Dokument {
//@Column(name = "abstractText", columnDefinition = "TEXT")
//private String abstractText;
private Integer pages;
private String status; // if the value is PDF - the whole document was uploaded, otherwise the document was just mentioned in references
private String publisher;
private String target; // http link
@OneToMany(mappedBy = "fromDocument", cascade = CascadeType.ALL)
private List<Reference> references = new ArrayList<>();
......@@ -46,13 +47,12 @@ public class Dokument {
public Dokument() {}
public Dokument(String title, Integer year, String doi, /*String abstractText,*/ Integer pages, String publisher) {
public Dokument(String title, Integer year, String doi,String publisher, String status) {
this.title = title;
this.publicationYear = year;
this.doi = doi;
//this.abstractText = abstractText;
this.pages = pages;
this.publisher = publisher;
this.status = status;
}
public Long getId() { return id; }
......@@ -60,7 +60,7 @@ public class Dokument {
public Integer getYear() { return publicationYear; }
public String getDoi() { return doi; }
//public String getAbstractText() { return abstractText; }
public Integer getPages() { return pages; }
public String getStatus() { return status; }
public String getPublisher() { return publisher; }
public List<Reference> getReferences() { return references; }
public List<Author> getAuthors() { return authors; }
......@@ -68,6 +68,7 @@ public class Dokument {
public void setAuthors(List<Author> authors) { this.authors = authors; }
public void setTitle(String title) { this.title = title; }
public void setTarget(String target) { this.target = target; }
public void setPublicationYear(Integer publicationYear) {
this.publicationYear = publicationYear;
......@@ -77,8 +78,8 @@ public class Dokument {
this.doi = doi;
}
public void setPages(Integer pages) {
this.pages = pages;
public void setStatus(String status) {
this.status = status;
}
public void setPublisher(String publisher) {
......
......@@ -21,8 +21,8 @@ public class Reference {
private Dokument toDocument;
public Reference() {}
public Reference(String orderNumber, Dokument fromDocument, Dokument toDocument) {
this.orderNumber = orderNumber;
public Reference(/*String orderNumber,*/ Dokument fromDocument, Dokument toDocument) {
//this.orderNumber = orderNumber;
this.fromDocument = fromDocument;
this.toDocument = toDocument;
}
......
......@@ -84,7 +84,7 @@ public class HeaderService {
}
List<Author> savedAuthors = authorRepository.saveAll(authorList);
Dokument dokument = new Dokument(title, year, doi, pages, publisher);
Dokument dokument = new Dokument(title, year, doi, publisher, "PDF");
dokument.setAuthors(savedAuthors);
this.documentRepository.save(dokument);
......
......@@ -87,6 +87,9 @@ public class ReferenceService {
// Extract title - toDocument
String title = xpath.evaluate(".//tei:title[@level='m' or @level='a']", biblNode);
if(title.isBlank()){
title = xpath.evaluate(".//tei:title[@level='j']", biblNode);
}
referencedDocument.setTitle(title);
// Extract year of publication
......@@ -103,6 +106,10 @@ public class ReferenceService {
String publisher = xpath.evaluate(".//tei:publisher", biblNode);
referencedDocument.setPublisher(publisher);
// Extract publisher
String target = xpath.evaluate(".//tei:ptr/@target", biblNode);
referencedDocument.setTarget(target);
// Extract authors
NodeList authorNodes = (NodeList) xpath.evaluate(".//tei:author/tei:persName", biblNode, XPathConstants.NODESET);
List<Author> authors = new ArrayList<>();
......@@ -128,7 +135,6 @@ public class ReferenceService {
referencedDocument.setAuthors(authors);
List<String> authorLastNames= authors.stream().map(Author::getLastname).toList();
// check if document exists in dbs
boolean exists = documentRepository.existsByTitleAndAuthorsIn(title, authorLastNames);
......@@ -145,12 +151,19 @@ public class ReferenceService {
System.out.println("Document already exists in database : " + referencedDocument.getTitle() + " with ID : " + referencedDocument.getId());
} else {
// create new dokument
referencedDocument.setStatus("Referenced");
this.setToDocument(referencedDocument);
this.documentRepository.save(toDocument);
this.authorRepository.saveAll(authors);
}
Reference reference = new Reference("[i]", fromDocument, toDocument);
Reference reference = new Reference(/*referenceID,*/ fromDocument, toDocument);
// extract ID from the document
String referenceID = xpath.evaluate("@*[local-name()='id']", biblNode);
System.out.println("referenceID: " + referenceID);
reference.setOrderNumber(referenceID);
referenceRepository.save(reference);
}
} catch (Exception e) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment