From 55c38d9cb6a0c1093d065157b90c2950573ac09c Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Sat, 13 Dec 2008 18:36:56 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vre-management/VREModeler@7779 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../vremodeler/db/IStoDBUtil.java | 125 +++++++++--------- .../impl/util/MBrokerServiceHandler.java | 17 +-- 2 files changed, 73 insertions(+), 69 deletions(-) diff --git a/src/org/gcube/vremanagement/vremodeler/db/IStoDBUtil.java b/src/org/gcube/vremanagement/vremodeler/db/IStoDBUtil.java index 6128733..4556a02 100644 --- a/src/org/gcube/vremanagement/vremodeler/db/IStoDBUtil.java +++ b/src/org/gcube/vremanagement/vremodeler/db/IStoDBUtil.java @@ -289,8 +289,8 @@ public class IStoDBUtil { } - - //insert the values in the database + System.out.println(derivateMetadataFormatList.size()); + //insert values in the database DBInterface.connect(); DBInterface.InsertInto("mdcollection", values); DBInterface.insertIntoListable("mdformat", metadataFormatList ); @@ -315,16 +315,15 @@ public class IStoDBUtil { FindPossibleTransformationPrograms fptp= new FindPossibleTransformationPrograms(); MetadataBrokerFormat mbInFormat= new MetadataBrokerFormat(); mbInFormat.setType("collection"); - mbInFormat.setLanguage(getParameter().getLanguage()); - mbInFormat.setSchema(getParameter().getName()+"="+getParameter().getSchemaURI().toString()); + String lng=getParameter().getLanguage(); + mbInFormat.setLanguage(lng); + String schema=getParameter().getName()+"="+getParameter().getSchemaURI().toString(); + mbInFormat.setSchema(schema); fptp.setInputFormat(mbInFormat); - - MetadataBrokerFormat mbOutFormat= new MetadataBrokerFormat(); - mbOutFormat.setType("collection"); - fptp.setOutputFormat(mbOutFormat); + fptp.setOutputFormat(null); FindPossibleTransformationProgramsResponse tpRes= mbportType.findPossibleTransformationPrograms(fptp); - - return tpRes.getTransformationProgram(); + String[] toReturn= tpRes.getTransformationProgram(); + return toReturn; } }; @@ -333,62 +332,66 @@ public class IStoDBUtil { sHandler.run(); String[] resList=sHandler.getReturnValue(); - XPath xpath= XPathFactory.newInstance().newXPath(); - String schemaExpr="//TransformationProgram/Output[@name='TPOutput']/Schema/text()"; - String languageExpr="//TransformationProgram/Output[@name='TPOutput']/Language[@isVariable='false']/text()"; - String typeExpr="//TransformationProgram/Output[@name='TPOutput']/Type/text()"; - String tpIdExpr="/Resource/ID/text()"; - - Document doc; - - Transformer transformer = TransformerFactory.newInstance().newTransformer(); - transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes"); - List derivatedList= new ArrayList(); - - NodeList set; - StreamResult sr; - String tpId; - for(String res: resList){ - doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( new InputSource(new StringReader(res))); - - set = (NodeList) xpath.evaluate(schemaExpr,doc, XPathConstants.NODESET); - sr = new StreamResult(new StringWriter()); - try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} - if (sr.getWriter().toString().compareTo("collection")!=0){ - - set = (NodeList) xpath.evaluate(languageExpr,doc, XPathConstants.NODESET); + if (resList!=null && resList.length>0){ + System.out.println("resList is not null"); + XPath xpath= XPathFactory.newInstance().newXPath(); + String schemaExpr="//TransformationProgram/Output[@name='TPOutput']/Schema/text()"; + String languageExpr="//TransformationProgram/Output[@name='TPOutput']/Language[@isVariable='false']/text()"; + String typeExpr="//TransformationProgram/Output[@name='TPOutput']/Type/text()"; + String tpIdExpr="/Resource/ID/text()"; + + Document doc; + + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes"); + + + + NodeList set; + StreamResult sr; + String tpId; + for(String res: resList){ + doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( new InputSource(new StringReader(res))); + + set = (NodeList) xpath.evaluate(schemaExpr,doc, XPathConstants.NODESET); sr = new StreamResult(new StringWriter()); try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} - String[] schemas= sr.getWriter().toString().split("="); - - set = (NodeList) xpath.evaluate(tpIdExpr,doc, XPathConstants.NODESET); - sr = new StreamResult(new StringWriter()); - try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} - tpId= sr.getWriter().toString(); - - MetadataFormat mfTemp; - - set = (NodeList) xpath.evaluate(typeExpr,doc, XPathConstants.NODESET); - sr = new StreamResult(new StringWriter()); - try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} - if (sr.getWriter().toString().compareTo("")==0) - mfTemp=new MetadataFormat(uuidMFGEN.nextUUID(), schemas[0], new URI(schemas[1]), "any"); - else - mfTemp=new MetadataFormat(uuidMFGEN.nextUUID(), schemas[0], new URI(schemas[1]), sr.getWriter().toString()); - - MFRelationDerivate mfRelTemp; - if (mdfList.contains(mfTemp)) - mfRelTemp =new MFRelationDerivate(col.getID(), mdfList.get(mdfList.indexOf(mfTemp)).getId(), tpId ); - else { - mfRelTemp =new MFRelationDerivate(col.getID(), mfTemp.getId(), tpId ); - mdfList.add(mfTemp); + if (sr.getWriter().toString().compareTo("collection")!=0){ + + set = (NodeList) xpath.evaluate(languageExpr,doc, XPathConstants.NODESET); + sr = new StreamResult(new StringWriter()); + try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} + String[] schemas= sr.getWriter().toString().split("="); + + set = (NodeList) xpath.evaluate(tpIdExpr,doc, XPathConstants.NODESET); + sr = new StreamResult(new StringWriter()); + try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} + tpId= sr.getWriter().toString(); + + MetadataFormat mfTemp; + + set = (NodeList) xpath.evaluate(typeExpr,doc, XPathConstants.NODESET); + sr = new StreamResult(new StringWriter()); + try {transformer.transform(new DOMSource(set.item(0)),sr);}catch(Exception ignore) {continue;} + if (sr.getWriter().toString().compareTo("")==0) + mfTemp=new MetadataFormat(uuidMFGEN.nextUUID(), schemas[0], new URI(schemas[1]), "any"); + else + mfTemp=new MetadataFormat(uuidMFGEN.nextUUID(), schemas[0], new URI(schemas[1]), sr.getWriter().toString()); + + MFRelationDerivate mfRelTemp; + if (mdfList.contains(mfTemp)) + mfRelTemp =new MFRelationDerivate(col.getID(), mdfList.get(mdfList.indexOf(mfTemp)).getId(), tpId ); + else { + mfRelTemp =new MFRelationDerivate(col.getID(), mfTemp.getId(), tpId ); + mdfList.add(mfTemp); + } + + derivatedList.add(mfRelTemp); + } - - derivatedList.add(mfRelTemp); - } - } + }else System.out.println("resList is null"); return derivatedList; } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/util/MBrokerServiceHandler.java b/src/org/gcube/vremanagement/vremodeler/impl/util/MBrokerServiceHandler.java index ba50249..8cdfd7a 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/util/MBrokerServiceHandler.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/util/MBrokerServiceHandler.java @@ -10,7 +10,6 @@ import org.gcube.common.core.informationsystem.client.AtomicCondition; import org.gcube.common.core.informationsystem.client.ISClient; import org.gcube.common.core.informationsystem.client.queries.GCUBERIQuery; import org.gcube.common.core.resources.GCUBERunningInstance; -import org.gcube.common.core.scope.GCUBEScope; import org.gcube.common.core.utils.handlers.GCUBEServiceClient; import org.gcube.common.core.utils.handlers.GCUBEServiceHandler; import org.gcube.common.vremanagement.ghnmanager.impl.contexts.ServiceContext; @@ -19,9 +18,9 @@ import org.gcube.metadatamanagement.metadatabroker.stubs.service.MetadataBrokerS public abstract class MBrokerServiceHandler extends GCUBEServiceHandler { - private T returnValue= null; + private T returnValue; - private P parameter= null; + private P parameter; public T getReturnValue(){ return returnValue; @@ -57,10 +56,12 @@ public abstract class MBrokerServiceHandler extends GCUBEServiceHandler