parse method fixed: the xml tag hierarchy is now respected

This commit is contained in:
Marco Procaccini 2024-05-14 15:37:03 +02:00
parent c1a12d6b5a
commit 964bd95c52
2 changed files with 38 additions and 125 deletions

View File

@ -47,13 +47,13 @@ public class App {
}*/
// methods to query and print information
//xmlManager.getGatewaysInfo();
//xmlManager.getVosInfo("AGINFRAPlus Detached Gateway");
//xmlManager.getVosInfo("PARTHENOS Detached Gateway");
//xmlManager.getVosInfo("BlueBridge Gateway");
// xmlManager.getVosInfo("AGINFRAPlus Detached Gateway");
// xmlManager.getVosInfo("PARTHENOS Detached Gateway");
// xmlManager.getVosInfo("BlueBridge Gateway");
// xmlManager.getVosInfo("D4Science.org Detached Gateway");
// xmlManager.getVosInfo("EOSC-Secretariat Detached Gateway");
// xmlManager.findVo("BlueBridge Gateway", "FARM");
//xmlManager.findVre("D4Science.org Detached Gateway", "D4OS", "CNROutreach");
xmlManager.findVre("D4Science.org Detached Gateway", "D4OS", "CNROutreach");
}
}

View File

@ -53,7 +53,9 @@ public class XmlManager implements VreRemPubInterface {
String gatewayDescription = gateTestElem.getElementsByTagName("description").item(0)
.getTextContent().trim();
System.out.println("Gate Name"+gatewayName);
//System.out.println("Gate Name"+gatewayName);
Gateway gateway = new Gateway(gatewayName, gatewayDescription);
NodeList vosListT = gateTestElem.getElementsByTagName("vos");
@ -74,7 +76,9 @@ public class XmlManager implements VreRemPubInterface {
String voName = vosElement.getElementsByTagName("name").item(0).getTextContent().trim();
String voScope = vosElement.getElementsByTagName("scope").item(0).getTextContent().trim();
System.out.println("VO Name:"+voName);
Vos vos = new Vos(voKey,voScope, voName);
//System.out.println("VO Name:"+voName);
NodeList vreListT = vosElement.getElementsByTagName("vres");
@ -87,137 +91,43 @@ public class XmlManager implements VreRemPubInterface {
Node vreListCE = vreListC.item(xx);
if(vreListCE.getNodeType()==Node.ELEMENT_NODE)
{
Element vreElem = (Element) vreListCE;
String vreName = vreElem.getElementsByTagName("name")
Element vreEntryElement = (Element) vreListCE;
String vreKey = vreEntryElement.getElementsByTagName("key").item(0)
.getTextContent().trim();
String vreName = vreEntryElement.getElementsByTagName("name")
.item(0).getTextContent().trim();
String vreDescription = vreEntryElement
.getElementsByTagName("description").item(0)
.getTextContent().trim();
String vreManager = vreEntryElement.getElementsByTagName("managers")
.item(0).getTextContent().trim();
String vreStartDate = vreEntryElement
.getElementsByTagName("startdate").item(0).getTextContent().trim();
String vreEndDate = vreEntryElement.getElementsByTagName("enddate")
.item(0).getTextContent().trim();
// Create a new Vres object and add it to the Vos's vreList
Vres vres = new Vres(vreKey, vreName, vreDescription, vreManager,
vreStartDate, vreEndDate);
System.out.println("VRE Name:"+vreName);
//System.out.println("VRE Name:"+vreName);
vos.addVres(vres);
}
}
}
gateway.addVos(vos);
}
}
}
gatewaysMap.put(gatewayName, gateway);
//getting vo
}
}
//iterate over gateways
if (gatewayNodeT.getNodeType() == Node.ELEMENT_NODE) {
Element gatewayItemE = (Element) gatewayNodeT;
NodeList gatewayListE = gatewayItemE.getElementsByTagName("entry");
for (int i = 0; i < 0; i++) {
Node gatewayNode = gatewayListE.item(i);
if (gatewayNode.getNodeType() == Node.ELEMENT_NODE) {
Element gatewayElement = (Element) gatewayNode;
String gatewayName = gatewayElement.getElementsByTagName("name").item(0).getTextContent().trim();
String gatewayDescription = gatewayElement.getElementsByTagName("description").item(0)
.getTextContent().trim();
System.out.println("gateway name:"+gatewayName);
//System.out.println("Gateway descr:"+gatewayDescription);
Gateway gateway = new Gateway(gatewayName, gatewayDescription);
// Find the <vos> element within the gateway entry
NodeList vosList = gatewayElement.getElementsByTagName("vos");
for (int j = 0; j < vosList.getLength(); j++) {
Node vosNode = vosList.item(j);
if (vosNode.getNodeType() == Node.ELEMENT_NODE) {
Element vosElement = (Element) vosNode;
String voKey = vosElement.getElementsByTagName("key").item(0).getTextContent().trim();
String voName = vosElement.getElementsByTagName("name").item(0).getTextContent().trim();
String voScope = vosElement.getElementsByTagName("scope").item(0).getTextContent().trim();
System.out.println("VO Name:"+voName);
//getting vo
Vos vos = new Vos(voKey,voScope, voName);
//vos.printInfo();
// Iterate on the vres..
//NodeList vreList = vosElement.getElementsByTagName("vres");
//
//for (int k = 0; k < vreList.getLength(); k++) {
// Node voNode = voList.item(k);
// if (voNode.getNodeType() == Node.ELEMENT_NODE) {
// Element voElement = (Element) voNode;
// String voName = voElement.getElementsByTagName("name").item(0).getTextContent().trim();
// String voScope = voElement.getElementsByTagName("scope").item(0).getTextContent().trim();
// String voKey = voElement.getElementsByTagName("key").item(0).getTextContent().trim();
// Create a new Vos object and add it to the gateway's vosList
// Vos vos = new Vos(voKey, voScope, voName);
// Find the <vres> element within the VO entry
NodeList vresList = vosElement.getElementsByTagName("vres");
for (int l = 0; l < vresList.getLength(); l++) {
Node vresNode = vresList.item(l);
if (vresNode.getNodeType() == Node.ELEMENT_NODE) {
Element vresElement = (Element) vresNode;
// Iterate through <entry> elements representing VREs within <vres>
NodeList vreEntryList = vresElement.getElementsByTagName("entry");
for (int m = 0; m < vreEntryList.getLength(); m++) {
Node vreEntryNode = vreEntryList.item(m);
if (vreEntryNode.getNodeType() == Node.ELEMENT_NODE) {
Element vreEntryElement = (Element) vreEntryNode;
String vreKey = vreEntryElement.getElementsByTagName("key").item(0)
.getTextContent().trim();
String vreName = vreEntryElement.getElementsByTagName("name")
.item(0).getTextContent().trim();
String vreDescription = vreEntryElement
.getElementsByTagName("description").item(0)
.getTextContent().trim();
String vreManager = vreEntryElement.getElementsByTagName("managers")
.item(0).getTextContent().trim();
String vreStartDate = vreEntryElement
.getElementsByTagName("startdate").item(0).getTextContent().trim();
String vreEndDate = vreEntryElement.getElementsByTagName("enddate")
.item(0).getTextContent().trim();
// Create a new Vres object and add it to the Vos's vreList
Vres vres = new Vres(vreKey, vreName, vreDescription, vreManager,
vreStartDate, vreEndDate);
System.out.println("VRE NAME: "+vreName);
vos.addVres(vres);
//vres.printInfo();
}
}
}
}
// Add the Vos object to the gateway's vosList
gateway.addVos(vos);
//}
//}
}
}
// Store the gateway object in the gateways map
gatewaysMap.put(gatewayName, gateway);
//computeIfAbsent(gatewayName, k -> new ArrayList<>()).add(gateway);
//break;
}
}
}
}
} catch (Exception e) {
@ -263,7 +173,10 @@ public class XmlManager implements VreRemPubInterface {
Gateway gatewayItem = gatewaysMap.get(_gateway);
//Gateway gateway = gatewayList.get(0); // Get the first gateway with the specified name
ArrayList<Vos> vosList = gatewayItem.getVosList();
if (vosList != null) {
System.out.println("Num of VOs:"+vosList.size());
for (Vos vos : vosList) {
vos.printInfo();
//System.out.println("Name of VREs: ");
@ -278,7 +191,7 @@ public class XmlManager implements VreRemPubInterface {
// System.out.println("----------------------------------------");
}
} else {
//System.out.println("No VOS found for this gateway.");
System.out.println("No VOS found for this gateway.");
}
} else {
System.out.println("No gateways found with the name: " + _gateway);