Put IDS into Non-default OccurrenceΒΆ
This example focuses on putting IDS into another occurrence.
See also
API documentation for imas.open, put, listAllOccurrences
public static void putIntoNonDefaultOccurrence() throws Exception {
try {
int dataEntry = imas.open("imas:mdsplus?path=./testdb_mdsplus", LowLevel.FORCE_CREATE_PULSE);
// default occurrence for get/put is 0
// list of available occurrences can be found inside Data Dictionary documentation.
imas.equilibrium emptyEquilibrium = new imas.equilibrium();
// set mandatory field
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);
// in order to print properly all occurrences with content of a given node, we need to put empty IDS to default occurrence
emptyEquilibrium.put(dataEntry, "equilibrium", emptyEquilibrium);
// add some comment to IDS
emptyEquilibrium.ids_properties.comment = "comment from 1st occurrence";
// put IDS into occurrence 1
emptyEquilibrium.put(dataEntry, "equilibrium/1", emptyEquilibrium);
// modify comment, so differences between occurrences can be spotted
emptyEquilibrium.ids_properties.comment = "comment from 2nd occurrence";
// put IDS into occurrence 2
emptyEquilibrium.put(dataEntry, "equilibrium/2", emptyEquilibrium);
imas.close(dataEntry);
try {
// now we can print saved comments
int dataEntry1 = imas.open("imas:mdsplus?path=./testdb_mdsplus", LowLevel.OPEN_PULSE);
imas.equilibrium savedEquilibriumOccurrence1 = imas.equilibrium.get(dataEntry1, "equilibrium/1");
imas.equilibrium savedEquilibriumOccurrence2 = imas.equilibrium.get(dataEntry1, "equilibrium/2");
System.out.println("\nSaved equilibrium/ids_properties/comment field: (occurrence 1)\n" + savedEquilibriumOccurrence1.ids_properties.comment);
System.out.println("\nSaved equilibrium/ids_properties/comment field: (occurrence 2)\n" + savedEquilibriumOccurrence2.ids_properties.comment);
imas.close(dataEntry1);
} catch (Exception e) {
System.err.println("Following exception occurred\n" + e.getMessage());
throw e;
}
try {
// occurrences can be listed with listAllOccurrences() function
// listAllOccurrences also returns content of IDS field pointed by nodePath argument
// nodePath in Java HLI works with STR_0D (Sting) fields
int dataEntry2 = imas.open("imas:mdsplus?path=./testdb_mdsplus", LowLevel.OPEN_PULSE);
HashMap<Integer, String> occurrences;
// listAllOccurrences accepts as its 3rd parameter string containing nodePath
occurrences = imas.listAllOccurrences(dataEntry2, "equilibrium", "");
System.out.println("\nequilibrium occurrences without nodePath\n" + occurrences);
occurrences = imas.listAllOccurrences(dataEntry2, "equilibrium", "ids_properties/comment");
System.out.println("\nequilibrium occurrences with 'ids_properties/comment' nodePath\n" + occurrences);
imas.close(dataEntry2);
} catch (Exception e) {
System.err.println("Following exception occurred\n" + e.getMessage());
throw e;
}
} catch (Exception e) {
System.err.println("Following exception occurred\n" + e.getMessage());
throw e;
}
}
}