dnet-hadoop/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/QueryInformationSystem.java

69 lines
1.7 KiB
Java
Raw Normal View History

package eu.dnetlib.dhp.oa.graph.dump;
import eu.dnetlib.dhp.utils.ISLookupClientFactory;
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
2020-06-11 12:59:22 +02:00
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
2020-06-11 12:59:22 +02:00
import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
2020-06-11 12:59:22 +02:00
import java.util.Map;
public class QueryInformationSystem {
2020-06-11 12:59:22 +02:00
private ISLookUpService isLookUp;
private static final String XQUERY = "for $x in collection('/db/DRIVER/ContextDSResources/ContextDSResourceType') " +
" where $x//CONFIGURATION/context[./@type='community' or ./@type='ri'] " +
" return " +
"<community> " +
"{$x//CONFIGURATION/context/@id}" +
"{$x//CONFIGURATION/context/@label}" +
"</community>";
2020-06-11 12:59:22 +02:00
public Map<String,String> getCommunityMap()
2020-06-11 10:49:01 +02:00
throws ISLookUpException {
2020-06-11 12:59:22 +02:00
return getMap(isLookUp.quickSearchProfile(XQUERY));
}
2020-06-11 12:59:22 +02:00
public ISLookUpService getIsLookUp() {
return isLookUp;
}
2020-06-11 12:59:22 +02:00
public void setIsLookUp(ISLookUpService isLookUpService) {
this.isLookUp = isLookUpService;
}
public void set(String isLookUpUrl){
isLookUpUrl = get(isLookUpUrl);
}
public ISLookUpService
private static Map<String, String> getMap(List<String> communityMap) {
final Map<String, String> map = new HashMap<>();
2020-06-11 12:59:22 +02:00
communityMap.stream().forEach(xml -> {
final Document doc;
try {
doc = new SAXReader().read(new StringReader(xml));
Element root = doc.getRootElement();
map.put(root.attribute("id").getValue(), root.attribute("label").getValue());
} catch (DocumentException e) {
e.printStackTrace();
}
2020-06-11 12:59:22 +02:00
});
2020-06-11 12:59:22 +02:00
return map;
}
}