mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 18:14:26 +00:00
[CST-18016] Updated OpenAlexAuthorNameContributor doc
This commit is contained in:
@@ -22,8 +22,31 @@ import org.dspace.importer.external.metadatamapping.MetadatumDTO;
|
|||||||
import org.dspace.importer.external.metadatamapping.contributor.SimpleJsonPathMetadataContributor;
|
import org.dspace.importer.external.metadatamapping.contributor.SimpleJsonPathMetadataContributor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This class is responsible for extracting and contributing author name metadata
|
||||||
|
* from a JSON response using a specified query path.
|
||||||
|
* <p>
|
||||||
|
* The extracted name is split into given name and family name, and the metadata
|
||||||
|
* is stored based on the field configuration.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Example JSON structure:
|
||||||
|
* </p>
|
||||||
|
* <pre>
|
||||||
|
* {
|
||||||
|
* "author": {
|
||||||
|
* "full_name": "John Doe"
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* If the query path points to `author.full_name`, this class will extract
|
||||||
|
* "John" as the given name and "Doe" as the family name.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
* @author Adamo Fapohunda (adamo.fapohunda at 4science.com)
|
* @author Adamo Fapohunda (adamo.fapohunda at 4science.com)
|
||||||
**/
|
*/
|
||||||
public class OpenAlexAuthorNameContributor extends SimpleJsonPathMetadataContributor {
|
public class OpenAlexAuthorNameContributor extends SimpleJsonPathMetadataContributor {
|
||||||
|
|
||||||
private final static Logger log = LogManager.getLogger();
|
private final static Logger log = LogManager.getLogger();
|
||||||
@@ -31,16 +54,37 @@ public class OpenAlexAuthorNameContributor extends SimpleJsonPathMetadataContrib
|
|||||||
private String query;
|
private String query;
|
||||||
private MetadataFieldConfig field;
|
private MetadataFieldConfig field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the JSON query path for extracting the author name.
|
||||||
|
*
|
||||||
|
* @param query the JSON path to the author name
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setQuery(String query) {
|
public void setQuery(String query) {
|
||||||
this.query = query;
|
this.query = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the metadata field configuration that determines where
|
||||||
|
* the extracted metadata should be stored.
|
||||||
|
*
|
||||||
|
* @param field the metadata field configuration
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setField(MetadataFieldConfig field) {
|
public void setField(MetadataFieldConfig field) {
|
||||||
this.field = field;
|
this.field = field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extracts and contributes metadata based on the configured JSON query path and field.
|
||||||
|
* <p>
|
||||||
|
* If the extracted author name contains both given and family names, it assigns
|
||||||
|
* them accordingly based on the configured field.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param fullJson the JSON response containing author information
|
||||||
|
* @return a collection of metadata entries representing the extracted name parts
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Collection<MetadatumDTO> contributeMetadata(String fullJson) {
|
public Collection<MetadatumDTO> contributeMetadata(String fullJson) {
|
||||||
Collection<MetadatumDTO> metadata = new ArrayList<>();
|
Collection<MetadatumDTO> metadata = new ArrayList<>();
|
||||||
|
Reference in New Issue
Block a user