Skip to content

Commit 0251862

Browse files
committed
Backend Field Data From Sim
1 parent c0c13e6 commit 0251862

File tree

7 files changed

+50
-32
lines changed

7 files changed

+50
-32
lines changed

vcell-api/src/main/java/org/vcell/rest/rpc/RpcDbServerProxy.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@
1414
import org.vcell.util.BigString;
1515
import org.vcell.util.DataAccessException;
1616
import org.vcell.util.ObjectNotFoundException;
17-
import org.vcell.util.document.CurateSpec;
18-
import org.vcell.util.document.User;
19-
import org.vcell.util.document.UserLoginInfo;
20-
import org.vcell.util.document.VCInfoContainer;
21-
import org.vcell.util.document.VersionableFamily;
17+
import org.vcell.util.document.*;
2218

2319
import cbit.vcell.biomodel.BioModelMetaData;
2420
import cbit.vcell.field.FieldDataDBOperationResults;
@@ -59,7 +55,12 @@ public FieldDataDBOperationResults fieldDataDBOperation(FieldDataDBOperationSpec
5955
return (FieldDataDBOperationResults)rpc("fieldDataDBOperation",new Object[]{userLoginInfo.getUser(), fieldDataDBOperationSpec});
6056
}
6157

62-
public void deleteGeometry(org.vcell.util.document.KeyValue geometryKey) throws DataAccessException, ObjectNotFoundException {
58+
@Override
59+
public void fieldDataFromSimulation(KeyValue sourceSim, int jobIndex, String newFieldDataName) {
60+
throw new UnsupportedOperationException("Not implemented on RPC");
61+
}
62+
63+
public void deleteGeometry(org.vcell.util.document.KeyValue geometryKey) throws DataAccessException, ObjectNotFoundException {
6364
rpc("deleteGeometry",new Object[]{userLoginInfo.getUser(), geometryKey});
6465
}
6566

vcell-core/src/main/java/cbit/vcell/message/server/bootstrap/client/RpcDbServerProxy.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@
1414
import org.vcell.util.BigString;
1515
import org.vcell.util.DataAccessException;
1616
import org.vcell.util.ObjectNotFoundException;
17-
import org.vcell.util.document.CurateSpec;
18-
import org.vcell.util.document.User;
19-
import org.vcell.util.document.UserLoginInfo;
20-
import org.vcell.util.document.VCInfoContainer;
21-
import org.vcell.util.document.VersionableFamily;
17+
import org.vcell.util.document.*;
2218

2319
import cbit.vcell.biomodel.BioModelMetaData;
2420
import cbit.vcell.clientdb.ServerRejectedSaveException;
@@ -59,7 +55,12 @@ public FieldDataDBOperationResults fieldDataDBOperation(FieldDataDBOperationSpec
5955
return (FieldDataDBOperationResults)rpc("fieldDataDBOperation",new Object[]{userLoginInfo.getUser(), fieldDataDBOperationSpec});
6056
}
6157

62-
public void deleteGeometry(org.vcell.util.document.KeyValue geometryKey) throws DataAccessException, ObjectNotFoundException {
58+
@Override
59+
public void fieldDataFromSimulation(KeyValue sourceSim, int jobIndex, String newFieldDataName) {
60+
throw new UnsupportedOperationException("Not supported on RPC");
61+
}
62+
63+
public void deleteGeometry(org.vcell.util.document.KeyValue geometryKey) throws DataAccessException, ObjectNotFoundException {
6364
rpc("deleteGeometry",new Object[]{userLoginInfo.getUser(), geometryKey});
6465
}
6566

vcell-core/src/main/java/cbit/vcell/server/UserMetaDbServer.java

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public interface UserMetaDbServer {
8080
public FieldDataDBOperationResults fieldDataDBOperation(FieldDataDBOperationSpec fieldDataDBOperationSpec) throws DataAccessException, ObjectNotFoundException, RemoteProxyException;
8181

8282

83+
public void fieldDataFromSimulation(KeyValue sourceSim, int jobIndex, String newFieldDataName);
84+
8385
/**
8486
* Insert the method's description here.
8587
* Creation date: (4/29/2004 1:03:11 PM)

vcell-core/src/main/java/cbit/vcell/simdata/DataSetControllerImpl.java

+6
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,12 @@ else if (dsi.getName().endsWith(OutsideVariable.OUTSIDE_VARIABLE_SUFFIX))
11801180
return new SimDataBlock(pdeDataInfo, data, variableType);
11811181
}
11821182

1183+
1184+
public FieldDataFileOperationResults fieldDataCopySim(KeyValue sourceSimDataKey, User sourceSimOwner,
1185+
ExternalDataIdentifier edi, int sourceSimParamScanJobIndex, User ownerOfCopy){
1186+
return fieldDataCopySim(FieldDataFileOperationSpec.createCopySimFieldDataFileOperationSpec(edi, sourceSimDataKey, sourceSimOwner, sourceSimParamScanJobIndex, ownerOfCopy));
1187+
}
1188+
11831189
private FieldDataFileOperationResults fieldDataCopySim(FieldDataFileOperationSpec fieldDataFileOperationSpec){
11841190
Vector<File> removeFilesIfErrorV = new Vector<File>();
11851191
try{

vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataDB.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
import cbit.vcell.modeldb.DatabaseServerImpl;
1313
import cbit.vcell.resource.PropertyLoader;
1414
import cbit.vcell.simdata.DataSetControllerImpl;
15+
import cbit.vcell.solver.SimulationInfo;
1516
import cbit.vcell.solvers.CartesianMesh;
1617
import jakarta.enterprise.context.ApplicationScoped;
1718
import jakarta.inject.Inject;
18-
import org.apache.commons.io.IOUtils;
1919
import org.vcell.restq.db.AgroalConnectionFactory;
2020
import org.vcell.util.DataAccessException;
2121
import org.vcell.util.ObjectNotFoundException;
@@ -26,8 +26,6 @@
2626
import java.io.*;
2727
import java.sql.SQLException;
2828
import java.util.ArrayList;
29-
import java.util.HashMap;
30-
import java.util.Map;
3129
import java.util.Vector;
3230
import java.util.zip.DataFormatException;
3331

@@ -119,8 +117,14 @@ public FieldDataFileOperationResults saveNewFieldDataFromFile(FieldDataResource.
119117
}
120118
}
121119

122-
public FieldDataDBOperationResults saveNewFieldDataIntoDB(User user, FieldDataDBOperationSpec spec) throws DataAccessException {
123-
return databaseServer.fieldDataDBOperation(user, spec);
120+
public void saveFieldDataFromSimulation(User user, KeyValue simKeyValue, int jobIndex, String newFieldDataName) throws DataAccessException {
121+
// Create DB entry
122+
SimulationInfo simInfo = databaseServer.getSimulationInfo(user, simKeyValue);
123+
FieldDataDBOperationSpec fieldDataDBOperationSpec = FieldDataDBOperationSpec.createSaveNewExtDataIDSpec(user, newFieldDataName, "");
124+
FieldDataDBOperationResults results = databaseServer.fieldDataDBOperation(user, fieldDataDBOperationSpec);
125+
126+
// Save new file with reference to DB entry
127+
dataSetController.fieldDataCopySim(simKeyValue, simInfo.getOwner(), results.extDataID, jobIndex, user);
124128
}
125129

126130
public void deleteFieldData(User user, String fieldDataID) throws DataAccessException {

vcell-rest/src/main/java/org/vcell/restq/handlers/FieldData/FieldDataResource.java

+13-14
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,19 @@ public FieldDataShape getFieldDataShapeFromID(@PathParam("fieldDataID") String f
8080
}
8181
}
8282

83-
// @POST
84-
// @Path("/createFieldDataFromSimulation")
85-
// @Produces(MediaType.APPLICATION_JSON)
86-
// @Consumes(MediaType.APPLICATION_JSON)
87-
// @Operation(operationId = "createNewFieldDataFromSimulation", summary = "Create new field data from a simulation.")
88-
// public ExternalDataIdentifier submitNewFieldDataToDB(FieldDataDBOperationSpec fieldDataDBOperationSpec){
89-
// FieldDataDBOperationResults results = null;
90-
// try {
91-
// results = fieldDataDB.saveNewFieldDataIntoDB(userRestDB.getUserFromIdentity(securityIdentity), fieldDataDBOperationSpec);
92-
// } catch (DataAccessException e) {
93-
// throw new WebApplicationException(e.getMessage(), 500);
94-
// }
95-
// return results.extDataID;
96-
// }
83+
@POST
84+
@RolesAllowed("user")
85+
@Path("/createFieldDataFromSimulation")
86+
@Consumes({MediaType.APPLICATION_FORM_URLENCODED})
87+
@Operation(operationId = "createNewFieldDataFromSimulation", summary = "Create new field data from a simulation.")
88+
public void createNewFieldDataFromSimulation(@RestForm String simKeyReference, @RestForm int jobIndex, @RestForm String newFieldDataName){
89+
try {
90+
User user = userRestDB.getUserFromIdentity(securityIdentity, UserRestDB.UserRequirement.REQUIRE_USER);
91+
fieldDataDB.saveFieldDataFromSimulation(user, new KeyValue(simKeyReference), jobIndex, newFieldDataName);
92+
} catch (DataAccessException e) {
93+
throw new WebApplicationException(e.getMessage(), 500);
94+
}
95+
}
9796

9897
@POST
9998
@Path("/analyzeFieldDataFile")

vcell-server/src/main/java/cbit/vcell/modeldb/LocalUserMetaDbServer.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,13 @@ public FieldDataDBOperationResults fieldDataDBOperation(FieldDataDBOperationSpec
100100
return dbServerImpl.fieldDataDBOperation(user,fieldDataDBOperationSpec);
101101
}
102102

103+
@Override
104+
public void fieldDataFromSimulation(KeyValue sourceSim, int jobIndex, String newFieldDataName) {
105+
throw new UnsupportedOperationException();
106+
}
103107

104-
/**
108+
109+
/**
105110
* delete method comment.
106111
*/
107112
public void deleteGeometry(KeyValue key) throws DataAccessException, ObjectNotFoundException {

0 commit comments

Comments
 (0)