public <T extends ObjectType, F extends ObjectType> void applyMetadataAdd(LensContext<F> context,
PrismObject<T> objectToAdd, XMLGregorianCalendar now, Task task, OperationResult result)
throws SchemaException {
T objectType = objectToAdd.asObjectable();
MetadataType metadataType = objectType.getMetadata();
if (metadataType == null) {
metadataType = new MetadataType();
objectType.setMetadata(metadataType);
}
transplantRequestMetadata(context, metadataType);
applyCreateMetadata(context, metadataType, now, task);
if (workflowManager != null) {
metadataType.getCreateApproverRef().addAll(workflowManager.getApprovedBy(task, result));
metadataType.getCreateApprovalComment().addAll(workflowManager.getApproverComments(task, result));
}
if (objectToAdd.canRepresent(FocusType.class)) {
applyAssignmentMetadataObject((LensContext<? extends FocusType>) context, objectToAdd, now, task, result);
}
}