Updated orcid external search (expanded Search)
This commit is contained in:
parent
4a4dd03b87
commit
9cd7e24313
|
@ -321,7 +321,26 @@ public class RemoteFetcher {
|
||||||
}
|
}
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
List<Map<String, String>> values = new ArrayList<>();
|
List<Map<String, String>> values = new ArrayList<>();
|
||||||
Map<String, String> map = objectMapper.convertValue( reader != null ? reader.invoke(data) : data, Map.class);
|
int max = 1;
|
||||||
|
if (reader != null) {
|
||||||
|
Object invokedField = reader.invoke(data);
|
||||||
|
if (invokedField instanceof Collection) {
|
||||||
|
max = ((Collection) invokedField).size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i< max; i++) {
|
||||||
|
Object value;
|
||||||
|
if (reader != null) {
|
||||||
|
Object invokedField = reader.invoke(data);
|
||||||
|
if (invokedField instanceof Collection) {
|
||||||
|
value = ((Collection) invokedField).toArray()[i];
|
||||||
|
} else {
|
||||||
|
value = invokedField;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = data;
|
||||||
|
}
|
||||||
|
Map<String, String> map = objectMapper.convertValue(value, Map.class);
|
||||||
if (jsonDataPath.getMergedFields() != null && !jsonDataPath.getMergedFields().isEmpty() && jsonDataPath.getMergedFieldName() != null && !jsonDataPath.getMergedFieldName().isEmpty()) {
|
if (jsonDataPath.getMergedFields() != null && !jsonDataPath.getMergedFields().isEmpty() && jsonDataPath.getMergedFieldName() != null && !jsonDataPath.getMergedFieldName().isEmpty()) {
|
||||||
Map<String, String> finalMap = new HashMap<>();
|
Map<String, String> finalMap = new HashMap<>();
|
||||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
||||||
|
@ -339,6 +358,7 @@ public class RemoteFetcher {
|
||||||
} else {
|
} else {
|
||||||
values.add(map);
|
values.add(map);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
results = new Results(values, new HashMap<>(1, 1));
|
results = new Results(values, new HashMap<>(1, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
44
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/ExpandedResult.java
vendored
Normal file
44
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/ExpandedResult.java
vendored
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
package eu.eudat.models.data.external.orcid;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAttribute;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
@XmlRootElement(name = "expanded-result", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public class ExpandedResult {
|
||||||
|
|
||||||
|
private String pid;
|
||||||
|
private String givenNames;
|
||||||
|
private String familyName;
|
||||||
|
|
||||||
|
public ExpandedResult(String givenNames, String familyName) {
|
||||||
|
this.givenNames = givenNames;
|
||||||
|
this.familyName = familyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExpandedResult() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "orcid-id", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public String getPid() {
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
public void setPid(String pid) {
|
||||||
|
this.pid = pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlElement(name = "given-names", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public String getGivenNames() {
|
||||||
|
return givenNames;
|
||||||
|
}
|
||||||
|
public void setGivenNames(String givenNames) {
|
||||||
|
this.givenNames = givenNames;
|
||||||
|
}
|
||||||
|
@XmlElement(name = "family-names", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public String getFamilyName() {
|
||||||
|
return familyName;
|
||||||
|
}
|
||||||
|
public void setFamilyName(String familyName) {
|
||||||
|
this.familyName = familyName;
|
||||||
|
}
|
||||||
|
}
|
18
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/ExpandedSearch.java
vendored
Normal file
18
dmp-backend/web/src/main/java/eu/eudat/models/data/external/orcid/ExpandedSearch.java
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
package eu.eudat.models.data.external.orcid;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@XmlRootElement(name = "expanded-search", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public class ExpandedSearch {
|
||||||
|
List<ExpandedResult> expandedResults;
|
||||||
|
|
||||||
|
@XmlElement(name = "expanded-result", namespace = "http://www.orcid.org/ns/expanded-search")
|
||||||
|
public List<ExpandedResult> getExpandedResults() {
|
||||||
|
return expandedResults;
|
||||||
|
}
|
||||||
|
public void setExpandedResults(List<ExpandedResult> expandedResults) {
|
||||||
|
this.expandedResults = expandedResults;
|
||||||
|
}
|
||||||
|
}
|
|
@ -642,7 +642,7 @@
|
||||||
</data>
|
</data>
|
||||||
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
|
<paginationpath>$['meta']['pagination']['page','pages','count']</paginationpath>
|
||||||
</urlConfig>
|
</urlConfig>
|
||||||
<urlConfig>
|
<!--<urlConfig>
|
||||||
<key>orcid</key>
|
<key>orcid</key>
|
||||||
<label>ORCID</label>
|
<label>ORCID</label>
|
||||||
<ordinal>2</ordinal>
|
<ordinal>2</ordinal>
|
||||||
|
@ -679,6 +679,25 @@
|
||||||
</urlConfig>
|
</urlConfig>
|
||||||
</data>
|
</data>
|
||||||
<paginationpath>$['num-found']</paginationpath>
|
<paginationpath>$['num-found']</paginationpath>
|
||||||
|
</urlConfig>-->
|
||||||
|
<urlConfig>
|
||||||
|
<key>orcid</key>
|
||||||
|
<label>ORCID</label>
|
||||||
|
<ordinal>2</ordinal>
|
||||||
|
<type>External</type>
|
||||||
|
<url>https://pub.sandbox.orcid.org/v3.0/expanded-search/?q={like}&start={page}&rows={pageSize}</url>
|
||||||
|
<firstPage>0</firstPage>
|
||||||
|
<contenttype>application/vnd.orcid+xml; qs=5;charset=UTF-8</contenttype>
|
||||||
|
<data>
|
||||||
|
<parse-class>eu.eudat.models.data.external.orcid.ExpandedSearch</parse-class>
|
||||||
|
<parse-field>expandedResults</parse-field>
|
||||||
|
<merge-fields>
|
||||||
|
<field>givenNames</field>
|
||||||
|
<field>familyName</field>
|
||||||
|
</merge-fields>
|
||||||
|
<merge-field-name>name</merge-field-name>
|
||||||
|
</data>
|
||||||
|
<paginationpath>$['num-found']</paginationpath>
|
||||||
</urlConfig>
|
</urlConfig>
|
||||||
<!-- <urlConfig>
|
<!-- <urlConfig>
|
||||||
<key>openAire</key>
|
<key>openAire</key>
|
||||||
|
|
Loading…
Reference in New Issue