/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
/**
*
* @author gdurand
*/
public class BibtexCitation {
private List<String> authors = new ArrayList();
private String title;
private String year;
private GlobalId persistentId;
private String publisher;
public BibtexCitation(DatasetVersion dsv) {
//authors
dsv.getDatasetAuthors().stream().forEach((author) -> {
authors.add(author.getName().getDisplayValue());
});
// year
year = dsv.getVersionYear();
// title
title = dsv.getTitle();
// The Global Identifier:
persistentId = new GlobalId(dsv.getDataset());
// publisher
publisher = dsv.getRootDataverseNameforCitation();
}
public List<String> getAuthors() {
return authors;
}
public String getTitle() {
return title;
}
public String getYear() {
return year;
}
public GlobalId getPersistentId() {
return persistentId;
}
public String getPublisher() {
return publisher;
}
@Override
public String toString() {
StringBuilder citation = new StringBuilder("@data{");
citation.append(persistentId.getIdentifier() + "_" + year + "," + "\r\n");
citation.append("author = {").append(String.join(" and ", authors)).append("},\r\n");
citation.append("publisher = {").append(publisher).append("},\r\n");
citation.append("title = {").append(title).append("},\r\n");
citation.append("year = {").append(year).append("},\r\n");
citation.append("doi = {").append(persistentId.getAuthority()).append("/").append(persistentId.getIdentifier()).append("},\r\n");
citation.append("url = {").append(persistentId.toURL().toString()).append("}\r\n");
citation.append("}");
return citation.toString();
}
}