patch to manage the instance type code

This commit is contained in:
Michele Artini 2024-12-06 10:45:33 +01:00
parent 34026cea35
commit 37d0cec118
4 changed files with 29 additions and 7 deletions

View File

@ -40,7 +40,7 @@ public class ResultEntry implements Serializable {
@Schema(allowableValues = { "publication", "dataset", "software", "other" })
private String type = "publication";
@Schema(requiredMode = RequiredMode.REQUIRED, description = "Use 001 for articles, 021 for datasets, 0029 for software. See: http://api.openaire.eu/vocabularies/dnet:publication_resource for all the available resource types.")
@Schema(requiredMode = RequiredMode.REQUIRED, description = "Use 0001 for articles, 0021 for datasets, 0029 for software. See: http://api.openaire.eu/vocabularies/dnet:publication_resource for all the available resource types.")
private String resourceType;
@Schema(requiredMode = RequiredMode.REQUIRED)

View File

@ -0,0 +1,20 @@
package eu.dnetlib.app.directindex.mapping;
import eu.dnetlib.dhp.schema.solr.Instance;
// TODO: To delete after the dismission of the XML
public class InstanceWithTypeCode extends Instance {
private static final long serialVersionUID = -5415824868827493090L;
private String instancetypeCode;
public String getInstancetypeCode() {
return instancetypeCode;
}
public void setInstancetypeCode(final String instancetypeCode) {
this.instancetypeCode = instancetypeCode;
}
}

View File

@ -264,10 +264,10 @@ public class SolrRecordMapper {
r.setBestaccessright(BestAccessRight.newInstance("UNKNOWN", "not available"));
}
final Instance instance = new Instance();
// TODO verificare il valore (dovrebbe essere classid="0004" classname="Conference object")
instance.setInstancetype(re.getResourceType());
// TODO: To replace with Instance after the dismission of the XML
final InstanceWithTypeCode instance = new InstanceWithTypeCode();
instance.setInstancetype(vocClient.findTermLabel("dnet:publication_resource", re.getResourceType()));
instance.setInstancetypeCode(re.getResourceType());
instance.setCollectedfrom(collectedFrom);
instance.setHostedby(hostedBy);
instance.setPid(pids);

View File

@ -6,6 +6,7 @@ import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.QName;
import eu.dnetlib.app.directindex.mapping.InstanceWithTypeCode;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import eu.dnetlib.dhp.schema.solr.BestAccessRight;
import eu.dnetlib.dhp.schema.solr.Instance;
@ -135,8 +136,9 @@ public class XMLSolrSerializer {
private static void addResultInstance(final Element childrenNode, final Instance i) {
final Element instanceNode = childrenNode.addElement("instance");
//TODO manca il code o il name
addStructuredField(instanceNode, "instancetype", i.getInstancetype(), ModelConstants.DNET_PUBLICATION_RESOURCE, null);
if (i instanceof InstanceWithTypeCode) {
addStructuredField(instanceNode, "instancetype", ((InstanceWithTypeCode) i).getInstancetypeCode(), i.getInstancetype(), ModelConstants.DNET_PUBLICATION_RESOURCE, null);
}
addStructuredField(instanceNode, "accessright", i.getAccessright().getCode(), i.getAccessright().getLabel(), ModelConstants.DNET_ACCESS_MODES, null);