Put Entire IDSΒΆ
This example focuses on putting IDS into entry and passing IDS validation.
public static void putEntireIDS() throws Exception {
try {
int dataEntry = imas.open("imas:mdsplus?path=./testdb_mdsplus", LowLevel.FORCE_CREATE_PULSE);
imas.equilibrium emptyEquilibrium = new imas.equilibrium();
// set mandatory field of equilibrium IDS
emptyEquilibrium.ids_properties.homogeneous_time = LowLevel.IDS_TIME_MODE_HOMOGENEOUS;
// when ids_properties.homogeneous_time is set to IDS_TIME_MODE_HOMOGENEOUS,
// all time-dependent fields values correspond to <ids>.time vector.
double[] timeArray = {1.0, 2.0, 3.0};
emptyEquilibrium.time = new Vect1DDouble(timeArray);
// intentional error when entering data. equilibrium/vacuum_toroidal_field/b0 should have the same size as equilibrium/time
double[] incorrectVacuumToroidalField_b0Size = {1.0};
emptyEquilibrium.vacuum_toroidal_field.b0 = new Vect1DDouble(incorrectVacuumToroidalField_b0Size);
// NOTE: putting ids into entry will trigger validate function.
// IDS fields types and dimensions will be checked
try {
emptyEquilibrium.put(dataEntry, "equilibrium", emptyEquilibrium);
} catch (Exception e) {
System.out.println("Caught exception (raised intentionally): " + e.getMessage());
}
// to fix it we need to set proper size of that field in IDS
double[] correctVacuumToroidalField_b0Size = {1.0, 2.0, 3.0};
emptyEquilibrium.vacuum_toroidal_field.b0 = new Vect1DDouble(correctVacuumToroidalField_b0Size);
emptyEquilibrium.put(dataEntry, "equilibrium", emptyEquilibrium);
imas.close(dataEntry);
// NOTE: some IDS fields are put automatically by Access Layer. Examples of this type of fields are:
// - <ids>/ids_properties/version_put/data_dictionary
// - <ids>/ids_properties/version_put/access_layer
// - <ids>/ids_properties/version_put/access_layer_language
// IDSs can be printed this way
try {
int dataEntry1 = imas.open("imas:mdsplus?path=./testdb_mdsplus", LowLevel.OPEN_PULSE);
imas.equilibrium savedEquilibrium = imas.equilibrium.get(dataEntry1, "equilibrium");
System.out.println("Saved equilibrium/vacuum_toroidal_field/b0 field: " + savedEquilibrium.vacuum_toroidal_field.b0);
imas.close(dataEntry1);
} catch (Exception e) {
System.out.println("Caught exception (raised intentionally): " + e.getMessage());
throw e;
}
} catch (Exception e) {
System.err.println("Following exception occurred\n" + e.getMessage());
throw e;
}
}