*
* @throws Exception
*/
private void updateMetaData() throws Exception {
if (mMetaDom != null) {
Meta metaData = getOfficeMetadata();
String creator = System.getProperty("user.name");
// update creator info.
metaData.setCreator(creator);
// update date info.
Calendar calendar = Calendar.getInstance();
metaData.setDcdate(calendar);
// update editing-cycles info.
Integer cycle = metaData.getEditingCycles();
if (cycle != null) {
metaData.setEditingCycles(++cycle);
} else {
metaData.setEditingCycles(1);
}
// update editing-duration info.
long editingDuration = calendar.getTimeInMillis() - documentOpeningTime;
editingDuration = (editingDuration < 1) ? 1 : editingDuration;
try {
DatatypeFactory aFactory = DatatypeFactory.newInstance();
metaData.setEditingDuration(new Duration(aFactory.newDurationDayTime(editingDuration)));
} catch (DatatypeConfigurationException e) {
Logger.getLogger(Document.class.getName()).log(Level.SEVERE,
"editing duration update fail as DatatypeFactory can not be instanced", e);
}
}