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 ;
/ * *
2021-11-18 09:16:59 +01:00
* To represent keywords associated to the result . It has two parameters :
* - subject of type eu . dnetlib . dhp . schema . dump . oaf . SubjectSchemeValue to describe the subject . It mapped as :
* - schema it corresponds to qualifier . classid of the dumped subject
* - value it corresponds to the subject value
* - provenance of type eu . dnetlib . dhp . schema . dump . oaf . Provenance to represent the provenance of the subject . It is dumped only if dataInfo
* is not null . In this case :
* - provenance corresponds to dataInfo . provenanceaction . classname
* - trust corresponds to dataInfo . trust
2021-04-23 12:15:36 +02:00
* /
public class Subject implements Serializable {
2021-11-18 09:16:59 +01:00
private SubjectSchemeValue subject ;
@JsonSchema ( description = " Why this subject is associated to the result " )
2021-04-23 12:15:36 +02:00
private Provenance provenance ;
2021-11-18 09:16:59 +01:00
public SubjectSchemeValue getSubject ( ) {
2021-04-23 12:15:36 +02:00
return subject ;
}
2021-11-18 09:16:59 +01:00
public void setSubject ( SubjectSchemeValue subject ) {
2021-04-23 12:15:36 +02:00
this . subject = subject ;
}
public Provenance getProvenance ( ) {
return provenance ;
}
public void setProvenance ( Provenance provenance ) {
this . provenance = provenance ;
}
}
2021-11-18 09:16:59 +01:00
class SubjectSchemeValue implements Serializable {
@JsonSchema ( description = " OpenAIRE subject classification scheme (https://api.openaire.eu/vocabularies/dnet:subject_classification_typologies). " )
private String scheme ;
@JsonSchema ( description = " The value for the subject in the selected scheme. When the scheme is 'keyword', it means that the subject is free-text (i.e. not a term from a controlled vocabulary). " )
private String value ;
public String getScheme ( ) {
return scheme ;
}
public void setScheme ( String scheme ) {
this . scheme = scheme ;
}
public String getValue ( ) {
return value ;
}
public void setValue ( String value ) {
this . value = value ;
}
public static SubjectSchemeValue newInstance ( String scheme , String value ) {
SubjectSchemeValue cf = new SubjectSchemeValue ( ) ;
cf . setScheme ( scheme ) ;
cf . setValue ( value ) ;
return cf ;
}
}