// Identify
wfResultItem.addLogInfo("starting identify object: ");
String[] types = runIdentification(dgo, wfResultItem);
wfResultItem.addLogInfo("completed identify object format: " +
new Message("Identification", new Parameter("File", dgo.getTitle()), new Parameter(
"Result", Arrays.asList(types).toString())));
// Extract metadata - will otherwise get lost between steps!
List<Metadata> mList = dgo.getMetadata();
if ((mList != null) && (mList.size() > 0)) {
metadata = mList.get(0).getContent();
}
if (metadata == null) {
wfResultItem.addLogInfo("No metadata contained in DigitalObject!");
wfResultItem.addLogInfo("Add title: " + dgo.getTitle());
title = dgo.getTitle();
if(title.contains("."))
{
title = title.substring(0, title.lastIndexOf("."));
}
URI myMigrateToURI =
this.getServiceCallConfigs(this.migrate).getPropertyAsURI(SER_PARAM_MIGRATE_TO);
String newExtension =
FormatRegistryFactory.getFormatRegistry().getFirstExtension(myMigrateToURI);
title = title + "." + newExtension;
} else {
wfResultItem.addLogInfo("Extracted metadata: " + metadata);
}
// Migrate
try {
FormatRegistry fr = FormatRegistryFactory.getFormatRegistry();
String ext = fr.getFirstExtension(new URI(types[0]));
wfResultItem.addLogInfo("Getting extension: " + ext);
if (ext != null) {
URI uridgo = runMigration(migrate, dgo.getPermanentUri());
dgo = new DigitalObject.Builder(dgo.getContent())
.title(title)
.build();
objects.add(dgo);
wfResultItem.addLogInfo("Migration result uri: " + uridgo + ", result: " +
new Message("Migration", new Parameter("Input", ext), new Parameter("Result", dgo
.getTitle())));
}
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}