/**
* Extracts object properties of all experiment results.
*/
public void extractObjectProperties(){
List<SampleObject> records = selectedPlan.getSampleRecordsDefinition().getRecords();
XcdlExtractor extractor = new XcdlExtractor();
boolean missingResultfiles = false;
ArrayList<String> failed = new ArrayList<String>();
for(Alternative alt : consideredAlternatives) {
for (SampleObject record : records) {
// each experiment has one experiment result per sample record
DigitalObject result = alt.getExperiment().getResults().get(record);
XcdlDescription xcdl = null;
if ((result != null)&&(result.isDataExistent())) {
try {
String filepath = tempFiles.get(result);
if ((filepath != null) && (!"".equals(filepath))) {
xcdl = extractor.extractProperties(result.getFullname(), filepath);
} else {
// we have to merge it back into the session because we the data bytestream
// is lazy loaded
DigitalObject u = (DigitalObject)em.merge(result);
xcdl = extractor.extractProperties(u);
// Should we call System.gc afterwards?
}
// there should be a file now
if (xcdl == null) {
failed.add(alt.getName()+ ", " + record.getFullname() + ": The description service returned an empty result.");