2021-04-23 12:15:36 +02:00
package eu.dnetlib.dhp.schema.dump.oaf ;
2021-11-18 09:16:59 +01:00
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema ;
2021-04-23 12:15:36 +02:00
import java.io.Serializable ;
import java.util.List ;
/ * *
* To represent the dumped result . It will be extended in the dump for Research Communities - Research
2021-11-18 09:16:59 +01:00
* Initiative / Infrastructures . It has the following parameters :
* - author of type
2021-04-23 12:15:36 +02:00
* List < eu . dnetlib . dhpschema . dump . oaf . Author > to describe the authors of a result . For each author in the result
2021-11-18 09:16:59 +01:00
* represented in the internal model one author in the esternal model is produced .
* - type of type String to represent
2021-04-23 12:15:36 +02:00
* the category of the result . Possible values are publication , dataset , software , other . It corresponds to
2021-11-18 09:16:59 +01:00
* resulttype . classname of the dumped result
* - language of type eu . dnetlib . dhp . schema . dump . oaf . Language to store
2021-04-23 12:15:36 +02:00
* information about the language of the result . It is dumped as - code corresponds to language . classid - value
2021-11-18 09:16:59 +01:00
* corresponds to language . classname
* - country of type List < eu . dnetlib . dhp . schema . dump . oaf . Country > to store the country
2021-04-23 12:15:36 +02:00
* list to which the result is associated . For each country in the result respresented in the internal model one country
* in the external model is produces - subjects of type List < eu . dnetlib . dhp . dump . oaf . Subject > to store the subjects for
* the result . For each subject in the result represented in the internal model one subject in the external model is
* produced - maintitle of type String to store the main title of the result . It corresponds to the value of the first
* title in the resul to be dumped having classid equals to " main title " - subtitle of type String to store the subtitle
* of the result . It corresponds to the value of the first title in the resul to be dumped having classid equals to
* " subtitle " - description of type List < String > to store the description of the result . It corresponds to the list of
* description . value in the result represented in the internal model - publicationdate of type String to store the
* pubblication date . It corresponds to dateofacceptance . value in the result represented in the internal model -
* publisher of type String to store information about the publisher . It corresponds to publisher . value of the result
* represented in the intrenal model - embargoenddate of type String to store the embargo end date . It corresponds to
* embargoenddate . value of the result represented in the internal model - source of type List < String > See definition of
* Dublin Core field dc : source . It corresponds to the list of source . value in the result represented in the internal
* model - format of type List < String > It corresponds to the list of format . value in the result represented in the
* internal model - contributor of type List < String > to represent contributors for this result . It corresponds to the
* list of contributor . value in the result represented in the internal model - coverage of type String . It corresponds
* to the list of coverage . value in the result represented in the internal model - bestaccessright of type
* eu . dnetlib . dhp . schema . dump . oaf . AccessRight to store informatin about the openest access right associated to the
* manifestations of this research results . It corresponds to the same parameter in the result represented in the
* internal model - container of type eu . dnetlib . dhp . schema / dump . oaf . Container ( only for result of type publication ) . It
* corresponds to the parameter journal of the result represented in the internal model - documentationUrl of type
* List < String > ( only for results of type software ) to store the URLs to the software documentation . It corresponds to
* the list of documentationUrl . value of the result represented in the internal model - codeRepositoryUrl of type String
* ( only for results of type software ) to store the URL to the repository with the source code . It corresponds to
* codeRepositoryUrl . value of the result represented in the internal model - programmingLanguage of type String ( only
* for results of type software ) to store the programming language . It corresponds to programmingLanguaga . classid of the
* result represented in the internal model - contactperson of type List < String > ( only for results of type other ) to
* store the contact person for this result . It corresponds to the list of contactperson . value of the result represented
* in the internal model - contactgroup of type List < String > ( only for results of type other ) to store the information
* for the contact group . It corresponds to the list of contactgroup . value of the result represented in the internal
* model - tool of type List < String > ( only fro results of type other ) to store information about tool useful for the
* interpretation and / or re - used of the research product . It corresponds to the list of tool . value in the result
* represented in the internal modelt - size of type String ( only for results of type dataset ) to store the size of the
* dataset . It corresponds to size . value in the result represented in the internal model - version of type String ( only
* for results of type dataset ) to store the version . It corresponds to version . value of the result represented in the
* internal model - geolocation fo type List < eu . dnetlib . dhp . schema . dump . oaf . GeoLocation > ( only for results of type
* dataset ) to store geolocation information . For each geolocation element in the result represented in the internal
* model a GeoLocation in the external model il produced - id of type String to store the OpenAIRE id of the result . It
* corresponds to the id of the result represented in the internal model - originalId of type List < String > to store the
* original ids of the result . It corresponds to the originalId of the result represented in the internal model - pid of
* type List < eu . dnetlib . dhp . schema . dump . oaf . ControlledField > to store the persistent identifiers for the result . For
* each pid in the results represented in the internal model one pid in the external model is produced . The value
* correspondence is : - scheme corresponds to pid . qualifier . classid of the result represented in the internal model -
* value corresponds to the pid . value of the result represented in the internal model - dateofcollection of type String
* to store information about the time OpenAIRE collected the record . It corresponds to dateofcollection of the result
* represented in the internal model - lasteupdatetimestamp of type String to store the timestamp of the last update of
* the record . It corresponds to lastupdatetimestamp of the resord represented in the internal model
2021-11-15 16:26:32 +01:00
*
2021-04-23 12:15:36 +02:00
* /
public class Result implements Serializable {
private List < Author > author ;
// resulttype allows subclassing results into publications | datasets | software
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Type of the result: one of 'publication', 'dataset', 'software', 'other' (see also https://api.openaire.eu/vocabularies/dnet:result_typologies) " )
2021-04-23 12:15:36 +02:00
private String type ; // resulttype
// common fields
2021-11-18 09:16:59 +01:00
private Language language ;
2021-04-23 12:15:36 +02:00
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " The list of countries associated to this result " )
private List < ResultCountry > country ;
2021-04-23 12:15:36 +02:00
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Keywords associated to the result " )
2021-04-23 12:15:36 +02:00
private List < Subject > subjects ;
2021-11-18 09:16:59 +01:00
@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. " )
2021-04-23 12:15:36 +02:00
private String maintitle ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Explanatory or alternative name by which a scientific result is known. " )
2021-04-23 12:15:36 +02:00
private String subtitle ;
private List < String > description ;
2021-11-18 09:16:59 +01:00
@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. " )
2021-04-23 12:15:36 +02:00
private String publicationdate ; // dateofacceptance;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource. " )
2021-04-23 12:15:36 +02:00
private String publisher ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Date when the embargo ends and this result turns Open Access " )
2021-04-23 12:15:36 +02:00
private String embargoenddate ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " See definition of Dublin Core field dc:source " )
2021-04-23 12:15:36 +02:00
private List < String > source ;
private List < String > format ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Contributors for the result " )
2021-04-23 12:15:36 +02:00
private List < String > contributor ;
private List < String > coverage ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " The openest of the access rights of this result. " )
2021-11-10 17:04:26 +01:00
private BestAccessRight bestaccessright ;
2021-04-23 12:15:36 +02:00
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Container has information about the conference or journal where the result has been presented or published " )
2021-04-23 12:15:36 +02:00
private Container container ; // Journal
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'software': URL to the software documentation " )
2021-04-23 12:15:36 +02:00
private List < String > documentationUrl ; // software
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'software': the URL to the repository with the source code " )
2021-04-23 12:15:36 +02:00
private String codeRepositoryUrl ; // software
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'software': the programming language " )
2021-04-23 12:15:36 +02:00
private String programmingLanguage ; // software
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'software': Information on the person responsible for providing further information regarding the resource " )
2021-04-23 12:15:36 +02:00
private List < String > contactperson ; // orp
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'software': Information on the group responsible for providing further information regarding the resource " )
2021-04-23 12:15:36 +02:00
private List < String > contactgroup ; // orp
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'other': tool useful for the interpretation and/or re-used of the research product " )
2021-04-23 12:15:36 +02:00
private List < String > tool ; // orp
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Only for results with type 'dataset': the declared size of the dataset " )
2021-04-23 12:15:36 +02:00
private String size ; // dataset
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Version of the result " )
2021-04-23 12:15:36 +02:00
private String version ; // dataset
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Geolocation information " )
2021-04-23 12:15:36 +02:00
private List < GeoLocation > geolocation ; // dataset
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " The OpenAIRE identifiers for this result " )
2021-04-23 12:15:36 +02:00
private String id ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Identifiers of the record at the original sources " )
2021-04-23 12:15:36 +02:00
private List < String > originalId ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Persistent identifiers of the result " )
private List < ResultPid > pid ;
2021-04-23 12:15:36 +02:00
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " When OpenAIRE collected the record the last time " )
2021-04-23 12:15:36 +02:00
private String dateofcollection ;
2021-11-18 09:16:59 +01:00
@JsonSchema ( description = " Timestamp of last update of the record in OpenAIRE " )
2021-04-23 12:15:36 +02:00
private Long lastupdatetimestamp ;
2021-11-18 09:16:59 +01:00
2021-04-23 12:15:36 +02:00
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 < String > getOriginalId ( ) {
return originalId ;
}
public void setOriginalId ( List < String > originalId ) {
this . originalId = originalId ;
}
2021-11-18 09:16:59 +01:00
public List < ResultPid > getPid ( ) {
2021-04-23 12:15:36 +02:00
return pid ;
}
2021-11-18 09:16:59 +01:00
public void setPid ( List < ResultPid > pid ) {
2021-04-23 12:15:36 +02:00
this . pid = pid ;
}
public String getDateofcollection ( ) {
return dateofcollection ;
}
public void setDateofcollection ( String dateofcollection ) {
this . dateofcollection = dateofcollection ;
}
public List < Author > 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 > author ) {
this . author = author ;
}
2021-11-18 09:16:59 +01:00
public Language getLanguage ( ) {
2021-04-23 12:15:36 +02:00
return language ;
}
2021-11-18 09:16:59 +01:00
public void setLanguage ( Language language ) {
2021-04-23 12:15:36 +02:00
this . language = language ;
}
2021-11-18 09:16:59 +01:00
public List < ResultCountry > getCountry ( ) {
2021-04-23 12:15:36 +02:00
return country ;
}
2021-11-18 09:16:59 +01:00
public void setCountry ( List < ResultCountry > country ) {
2021-04-23 12:15:36 +02:00
this . country = country ;
}
public List < Subject > getSubjects ( ) {
return subjects ;
}
public void setSubjects ( List < Subject > subjects ) {
this . subjects = subjects ;
}
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 < String > getDescription ( ) {
return description ;
}
public void setDescription ( List < String > 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 < String > getSource ( ) {
return source ;
}
public void setSource ( List < String > source ) {
this . source = source ;
}
public List < String > getFormat ( ) {
return format ;
}
public void setFormat ( List < String > format ) {
this . format = format ;
}
public List < String > getContributor ( ) {
return contributor ;
}
public void setContributor ( List < String > contributor ) {
this . contributor = contributor ;
}
public List < String > getCoverage ( ) {
return coverage ;
}
public void setCoverage ( List < String > coverage ) {
this . coverage = coverage ;
}
2021-11-10 17:04:26 +01:00
public BestAccessRight getBestaccessright ( ) {
2021-04-23 12:15:36 +02:00
return bestaccessright ;
}
2021-11-10 17:04:26 +01:00
public void setBestaccessright ( BestAccessRight bestaccessright ) {
2021-04-23 12:15:36 +02:00
this . bestaccessright = bestaccessright ;
}
public List < String > getDocumentationUrl ( ) {
return documentationUrl ;
}
public void setDocumentationUrl ( List < String > 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 < String > getContactperson ( ) {
return contactperson ;
}
public void setContactperson ( List < String > contactperson ) {
this . contactperson = contactperson ;
}
public List < String > getContactgroup ( ) {
return contactgroup ;
}
public void setContactgroup ( List < String > contactgroup ) {
this . contactgroup = contactgroup ;
}
public List < String > getTool ( ) {
return tool ;
}
public void setTool ( List < String > 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 < GeoLocation > getGeolocation ( ) {
return geolocation ;
}
public void setGeolocation ( List < GeoLocation > geolocation ) {
this . geolocation = geolocation ;
}
2021-08-05 12:04:10 +02:00
2021-04-23 12:15:36 +02:00
}