diff --git a/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java b/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java index 268e4d8..4e96588 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/ModelerService.java @@ -17,17 +17,26 @@ 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.GCUBECollection; +import org.gcube.common.core.resources.GCUBEMCollection; import org.gcube.common.core.resources.GCUBERunningInstance; import org.gcube.common.core.resources.impl.kxml.KGCUBEResource; import org.gcube.common.core.types.VOID; import org.gcube.common.core.utils.logging.GCUBELog; +import org.gcube.metadatamanagement.metadatabroker.stubs.FindPossibleTransformationPrograms; +import org.gcube.metadatamanagement.metadatabroker.stubs.FindPossibleTransformationProgramsResponse; +import org.gcube.metadatamanagement.metadatabroker.stubs.MetadataBrokerFormat; +import org.gcube.metadatamanagement.metadatabroker.stubs.MetadataBrokerPortType; +import org.gcube.metadatamanagement.metadatabroker.stubs.Transform; import org.gcube.vremanagement.vremanager.stubs.vremanager.AddResourcesParameters; import org.gcube.vremanagement.vremanager.stubs.vremanager.ResourceItem; import org.gcube.vremanagement.vremanager.stubs.vremanager.ResourceList; import org.gcube.vremanagement.vremanager.stubs.vremanager.ScopeOption; +import org.gcube.vremanagement.vremanager.stubs.vremanager.ServiceList; import org.gcube.vremanagement.vremanager.stubs.vremanager.VREManagerPortType; import org.gcube.vremanagement.vremanager.stubs.vremanager.service.VREManagerServiceAddressingLocator; import org.gcube.vremanagement.vremodeler.db.DBInterface; +import org.gcube.vremanagement.vremodeler.impl.util.MBrokerServiceHandler; +import org.gcube.vremanagement.vremodeler.impl.util.MetadataFormat; import org.gcube.vremanagement.vremodeler.impl.util.XMLUtil; import org.gcube.vremanagement.vremodeler.stubs.CollectionArray; import org.gcube.vremanagement.vremodeler.stubs.FunctionalityIDArray; @@ -156,7 +165,7 @@ public class ModelerService { public void setGHNs(GHNArray request) throws GCUBEFault{ try{ String instanceID=(String) getResource().getId(); - DBInterface.ExecuteUpdate("DELETE FROM VRERELATEDDHN WHERE VRERELATEDDHN.vreid='"+instanceID+"';"); + DBInterface.ExecuteUpdate("DELETE FROM VRERELATEDGHN WHERE VRERELATEDDHN.vreid='"+instanceID+"';"); String dlKey=instanceID; @@ -462,6 +471,7 @@ public class ModelerService { public void setVREtoPendingState(VOID var) throws GCUBEFault{ try{ DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='Pending' WHERE VRE.id='"+getResource().getId()+"';"); + }catch(Exception e){throw new GCUBEFault(e);} } @@ -554,7 +564,7 @@ public class ModelerService { //retrieving Collection try{ - ResultSet resRelatedCol =DBInterface.queryDB("select VRERELATEDCOLLECTION.collid from VRERELATEDCOLLECTION where VRERELATEDCOLLECTION.dlid='"+resourceID+"';"); + ResultSet resRelatedCol =DBInterface.queryDB("select VRERELATEDCOLLECTION.collid from VRERELATEDCOLLECTION where VRERELATEDCOLLECTION.vreid='"+resourceID+"';"); while (resRelatedCol.next()){ resItem= new ResourceItem(); resItem.setID(resRelatedCol.getString(1)); @@ -563,6 +573,47 @@ public class ModelerService { } }catch(SQLException sqle){logger.error("Error contacting HSQLDB");} + + //retrieving MDCollection with native MDFormat + try{ + ResultSet resMdColNative =DBInterface.queryDB("select mdcollid from SELECTEDNATIVEMDFROMAT AS s where s.vreid='"+resourceID+"';"); + while (resMdColNative.next()){ + resItem= new ResourceItem(); + resItem.setID(resMdColNative.getString(1)); + System.out.println(resItem.getID()); + resItem.setType(GCUBEMCollection.TYPE); + resItemList.add(resItem); + } + }catch(SQLException sqle){logger.error("Error contacting HSQLDB");} + + //retrieve and create MDCollection with Broker + try{ + ResultSet resMdColDerivate =DBInterface.queryDB("select mdcollid, tpid from SELECTEDDERIVATEMDFROMAT AS s where s.vreid='"+resourceID+"';"); + + MBrokerServiceHandler sHandler= new MBrokerServiceHandler(){ + + @Override + protected String makeCall(MetadataBrokerPortType mbportType) throws Exception { + FindPossibleTransformationPrograms fptp= new FindPossibleTransformationPrograms(); + Transform t= new Transform(); + t.setTransformationProgramID(this.getParameter().tpID); + String toReturn= mbportType.transform(t); + return toReturn; + } + }; + while (resMdColDerivate.next()){ + + } + + }catch(SQLException sqle){logger.error("Error contacting HSQLDB");} + + + + //adding Services + ServiceList sl = new ServiceList(); + + + /* ResultSet resRelatedMetadataCol =DBInterface.queryDB("select VRERELATEDCOLLECTION.collid from DLRELATEDCOLLECTION where VRERELATEDCOLLECTION.dlid='"+getResource().getId()+"';"); while (resRelatedCol.next()){ @@ -675,9 +726,24 @@ public class ModelerService { */ -} + } - + /** + * inner class for couple + * @author lucio + * + */ + public class Couple{ + + public String collectioID; + public String tpID; + + public Couple(String collid, String tpid){ + this.collectioID=collid; + this.tpID= tpID; + } + + } } diff --git a/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java b/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java index fae7d05..6af06f5 100644 --- a/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java +++ b/src/org/gcube/vremanagement/vremodeler/impl/util/XMLUtil.java @@ -169,7 +169,9 @@ public class XMLUtil { temp.append("TrueFalse"); } //logger.debug("MDFProva: "+keyTemp+" "+temp); - if(MDFHash.get(keyTemp.toString())!=null) MDFHash.get(keyTemp).add(temp.toString()); + + + if(MDFHash.contains(keyTemp.toString())) MDFHash.get(keyTemp.toString()).add(temp.toString()); else{ tempArray=new ArrayList(); tempArray.add(temp.toString()); @@ -199,7 +201,7 @@ public class XMLUtil { temp.append("TrueFalse"); } //logger.debug("MDFProva: Derivable "+keyTemp+" "+temp); - if(MDFHash.get(keyTemp.toString())!=null) MDFHash.get(keyTemp.toString()).add(temp.toString()); + if(MDFHash.contains(keyTemp.toString())) MDFHash.get(keyTemp.toString()).add(temp.toString()); else{ tempArray=new ArrayList(); tempArray.add(temp.toString()); @@ -207,7 +209,10 @@ public class XMLUtil { } } - }catch(SQLException e){//logger.error("database error"); + }catch(SQLException e){logger.error("hsqldb error"); + e.printStackTrace(); + }catch(Exception e){ + e.printStackTrace(); } StringBuilder resultString= new StringBuilder(); @@ -350,7 +355,6 @@ public class XMLUtil { } toReturn.append(""); - System.out.println(toReturn); return toReturn.toString(); }