public OperationResult clone() { OperationResult clone = new OperationResult(operation); clone.status = status; clone.params = CloneUtil.clone(params); clone.context = CloneUtil.clone(context); clone.returns = CloneUtil.clone(returns); clone.token = token; clone.messageCode = messageCode; clone.message = message; clone.localizationMessage = localizationMessage; clone.localizationArguments = CloneUtil.clone(localizationArguments); clone.cause = CloneUtil.clone(cause); clone.count = count; if (subresults != null) { clone.subresults = new ArrayList<>(subresults.size()); for (OperationResult subresult : subresults) { if (subresult != null) { clone.subresults.add(subresult.clone()); } } } clone.details = CloneUtil.clone(details); clone.summarizeErrors = summarizeErrors; clone.summarizePartialErrors = summarizePartialErrors; clone.summarizeSuccesses = summarizeSuccesses; clone.minor = minor; return clone; }