package eu.dnetlib.dhp.eosc.model; import java.io.Serializable; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; /** * @author miriam.baglioni * @Date 29/07/22 */ public class Result implements Serializable { @JsonSchema(description = "Describes a reference to the EOSC Interoperability Framework (IF) Guidelines") private List eoscIF; @JsonSchema(description = "The subject dumped by type associated to the result") private Map> subject; @JsonSchema(description = "The list of keywords associated to the result") private List keywords; @JsonSchema(description = "The list of organizations the result is affiliated to") private List affiliation; @JsonSchema(description = "The indicators for this result") private Indicator indicator; @JsonSchema(description = "List of projects (i.e. grants) that (co-)funded the production ofn the research results") private List projects; @JsonSchema( description = "Reference to a relevant research infrastructure, initiative or community (RI/RC) among those collaborating with OpenAIRE. Please see https://connect.openaire.eu") private List context; @JsonSchema(description = "Information about the sources from which the result has been collected") @JsonInclude(JsonInclude.Include.NON_NULL) protected List collectedfrom; @JsonSchema( description = "Each instance is one specific materialisation or version of the result. For example, you can have one result with three instance: one is the pre-print, one is the post-print, one is te published version") private List instance; private List author; // resulttype allows subclassing results into publications | datasets | software @JsonSchema( description = "Type of the result: one of 'publication', 'dataset', 'software', 'other' (see also https://api.openaire.eu/vocabularies/dnet:result_typologies)") private String type; // resulttype // common fields private Language language; @JsonSchema(description = "The list of countries associated to this result") private List country; @JsonSchema( description = "A name or title by which a scientific result is known. May be the title of a publication, of a dataset or the name of a piece of software.") private String maintitle; @JsonSchema(description = "Explanatory or alternative name by which a scientific result is known.") private String subtitle; private List description; @JsonSchema( description = "Main date of the research product: typically the publication or issued date. In case of a research result with different versions with different dates, the date of the result is selected as the most frequent well-formatted date. If not available, then the most recent and complete date among those that are well-formatted. For statistics, the year is extracted and the result is counted only among the result of that year. Example: Pre-print date: 2019-02-03, Article date provided by repository: 2020-02, Article date provided by Crossref: 2020, OpenAIRE will set as date 2019-02-03, because it’s the most recent among the complete and well-formed dates. If then the repository updates the metadata and set a complete date (e.g. 2020-02-12), then this will be the new date for the result because it becomes the most recent most complete date. However, if OpenAIRE then collects the pre-print from another repository with date 2019-02-03, then this will be the “winning date” because it becomes the most frequent well-formatted date.") private String publicationdate; // dateofacceptance; @JsonSchema( description = "The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.") private String publisher; @JsonSchema(description = "Date when the embargo ends and this result turns Open Access") private String embargoenddate; @JsonSchema(description = "See definition of Dublin Core field dc:source") private List source; private List format; @JsonSchema(description = "Contributors for the result") private List contributor; private List coverage; @JsonSchema(description = "The openest of the access rights of this result.") private BestAccessRight bestaccessright; @JsonSchema( description = "Container has information about the conference or journal where the result has been presented or published") private Container container;// Journal @JsonSchema(description = "Only for results with type 'software': URL to the software documentation") private List documentationUrl; // software @JsonSchema(description = "Only for results with type 'software': the URL to the repository with the source code") private String codeRepositoryUrl; // software @JsonSchema(description = "Only for results with type 'software': the programming language") private String programmingLanguage; // software @JsonSchema( description = "Only for results with type 'software': Information on the person responsible for providing further information regarding the resource") private List contactperson; // orp @JsonSchema( description = "Only for results with type 'software': Information on the group responsible for providing further information regarding the resource") private List contactgroup; // orp @JsonSchema( description = "Only for results with type 'other': tool useful for the interpretation and/or re-used of the research product") private List tool; // orp @JsonSchema(description = "Only for results with type 'dataset': the declared size of the dataset") private String size; // dataset @JsonSchema(description = "Version of the result") private String version; // dataset @JsonSchema(description = "Geolocation information") private List geolocation; // dataset @JsonSchema(description = "The OpenAIRE identifiers for this result") private String id; @JsonSchema(description = "Identifiers of the record at the original sources") private List originalId; @JsonSchema(description = "Persistent identifiers of the result") private List pid; @JsonSchema(description = "When OpenAIRE collected the record the last time") private String dateofcollection; @JsonSchema(description = "Timestamp of last update of the record in OpenAIRE") private Long lastupdatetimestamp; @JsonSchema(description = "The set of relations associated to this result") private List relations; @JsonSchema(description = "The direct link to the full-text as collected from the data source") private List fulltext; public List getFulltext() { return fulltext; } public void setFulltext(List fulltext) { this.fulltext = fulltext; } public Long getLastupdatetimestamp() { return lastupdatetimestamp; } public void setLastupdatetimestamp(Long lastupdatetimestamp) { this.lastupdatetimestamp = lastupdatetimestamp; } public String getId() { return id; } public void setId(String id) { this.id = id; } public List getOriginalId() { return originalId; } public void setOriginalId(List originalId) { this.originalId = originalId; } public List getPid() { return pid; } public void setPid(List pid) { this.pid = pid; } public String getDateofcollection() { return dateofcollection; } public void setDateofcollection(String dateofcollection) { this.dateofcollection = dateofcollection; } public List getAuthor() { return author; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Container getContainer() { return container; } public void setContainer(Container container) { this.container = container; } public void setAuthor(List author) { this.author = author; } public Language getLanguage() { return language; } public void setLanguage(Language language) { this.language = language; } public List getCountry() { return country; } public void setCountry(List country) { this.country = country; } public String getMaintitle() { return maintitle; } public void setMaintitle(String maintitle) { this.maintitle = maintitle; } public String getSubtitle() { return subtitle; } public void setSubtitle(String subtitle) { this.subtitle = subtitle; } public List getDescription() { return description; } public void setDescription(List description) { this.description = description; } public String getPublicationdate() { return publicationdate; } public void setPublicationdate(String publicationdate) { this.publicationdate = publicationdate; } public String getPublisher() { return publisher; } public void setPublisher(String publisher) { this.publisher = publisher; } public String getEmbargoenddate() { return embargoenddate; } public void setEmbargoenddate(String embargoenddate) { this.embargoenddate = embargoenddate; } public List getSource() { return source; } public void setSource(List source) { this.source = source; } public List getFormat() { return format; } public void setFormat(List format) { this.format = format; } public List getContributor() { return contributor; } public void setContributor(List contributor) { this.contributor = contributor; } public List getCoverage() { return coverage; } public void setCoverage(List coverage) { this.coverage = coverage; } public BestAccessRight getBestaccessright() { return bestaccessright; } public void setBestaccessright(BestAccessRight bestaccessright) { this.bestaccessright = bestaccessright; } public List getDocumentationUrl() { return documentationUrl; } public void setDocumentationUrl(List documentationUrl) { this.documentationUrl = documentationUrl; } public String getCodeRepositoryUrl() { return codeRepositoryUrl; } public void setCodeRepositoryUrl(String codeRepositoryUrl) { this.codeRepositoryUrl = codeRepositoryUrl; } public String getProgrammingLanguage() { return programmingLanguage; } public void setProgrammingLanguage(String programmingLanguage) { this.programmingLanguage = programmingLanguage; } public List getContactperson() { return contactperson; } public void setContactperson(List contactperson) { this.contactperson = contactperson; } public List getContactgroup() { return contactgroup; } public void setContactgroup(List contactgroup) { this.contactgroup = contactgroup; } public List getTool() { return tool; } public void setTool(List tool) { this.tool = tool; } public String getSize() { return size; } public void setSize(String size) { this.size = size; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public List getGeolocation() { return geolocation; } public void setGeolocation(List geolocation) { this.geolocation = geolocation; } public List getInstance() { return instance; } public void setInstance(List instance) { this.instance = instance; } public List getCollectedfrom() { return collectedfrom; } public void setCollectedfrom(List collectedfrom) { this.collectedfrom = collectedfrom; } public List getProjects() { return projects; } public void setProjects(List projects) { this.projects = projects; } public List getContext() { return context; } public void setContext(List context) { this.context = context; } public List getRelations() { return relations; } public void setRelations(List relations) { this.relations = relations; } public Indicator getIndicator() { return indicator; } public void setIndicator(Indicator indicator) { this.indicator = indicator; } public List getKeywords() { return keywords; } public void setKeywords(List keywords) { this.keywords = keywords; } public List getEoscIF() { return eoscIF; } public void setEoscIF(List eoscIF) { this.eoscIF = eoscIF; } public Map> getSubject() { return subject; } public void setSubject(Map> subject) { this.subject = subject; } public List getAffiliation() { return affiliation; } public void setAffiliation(List affiliation) { this.affiliation = affiliation; } }