public ActionRequestValue deepCopy(Map<Object, Object> visited) { if (visited.containsKey(this)) { return (ActionRequestValue) visited.get(this); } ActionRequestValue copy = new ActionRequestValue(); visited.put(this, copy); copy.actionRequestId = actionRequestId; copy.actionRequested = actionRequested; copy.documentId = documentId; copy.ruleBaseValuesId = ruleBaseValuesId; copy.status = status; copy.responsibilityId = responsibilityId; copy.groupId = groupId; copy.roleName = roleName; copy.qualifiedRoleName = qualifiedRoleName; copy.qualifiedRoleNameLabel = qualifiedRoleNameLabel; copy.recipientTypeCd = recipientTypeCd; copy.priority = priority; copy.routeLevel = routeLevel; copy.docVersion = docVersion; if (createDate != null) { copy.createDate = new Timestamp(createDate.getTime()); } copy.responsibilityDesc = responsibilityDesc; copy.annotation = annotation; copy.jrfVerNbr = jrfVerNbr; copy.principalId = principalId; copy.forceAction = forceAction; copy.currentIndicator = currentIndicator; copy.approvePolicy = approvePolicy; copy.delegationTypeCode = delegationTypeCode; copy.requestLabel = requestLabel; if (parentActionRequest != null) { copy.parentActionRequest = parentActionRequest.deepCopy(visited); } if (actionTaken != null) { copy.actionTaken = actionTaken.deepCopy(visited); } if (nodeInstance != null) { copy.nodeInstance = nodeInstance.deepCopy(visited); } if (childrenRequests != null) { List<ActionRequestValue> copies = new ArrayList<ActionRequestValue>(); for (ActionRequestValue childRequest : childrenRequests) { copies.add(childRequest.deepCopy(visited)); } copy.childrenRequests = copies; } copy.createDateString = createDateString; copy.displayStatus = displayStatus; copy.resolveResponsibility = resolveResponsibility; if (routeHeader != null) { copy.routeHeader = routeHeader.deepCopy(visited); } if (simulatedActionItems != null) { List<ActionItem> copies = new ArrayList<ActionItem>(); for (ActionItem simulatedActionItem : simulatedActionItems) { copies.add(simulatedActionItem.deepCopy(visited)); } copy.simulatedActionItems = copies; } return copy; }