@Override
  public void processAfterCopy(
      MaintenanceDocument document, Map<String, String[]> requestParameters) {
    ContextBo context = (ContextBo) document.getNewMaintainableObject().getDataObject();

    context.setId(contextIdIncrementer.getNewId());

    super.processAfterCopy(document, requestParameters);
  }
  @Override
  public Object retrieveObjectForEditOrCopy(
      MaintenanceDocument document, Map<String, String> dataObjectKeys) {

    ContextBo contextBo = (ContextBo) super.retrieveObjectForEditOrCopy(document, dataObjectKeys);

    if (KRADConstants.MAINTENANCE_COPY_ACTION.equals(getMaintenanceAction())) {
      document.getDocumentHeader().setDocumentDescription("New Context Document");

      contextBo = contextBo.copyContext(" Copy " + System.currentTimeMillis());
    }

    return contextBo;
  }