From e7735619c18f89fb9c65bf9ab8fd6a747aa34620 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 13 May 2024 08:42:29 -0500 Subject: [PATCH] CE-1180 Add clone --- .../actions/tables/query/QueryInput.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QueryInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QueryInput.java index 8b88008e..a0e71e19 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QueryInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QueryInput.java @@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.core.model.actions.tables.query; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; +import java.util.HashSet; import java.util.List; import java.util.Set; import com.kingsrook.qqq.backend.core.actions.QBackendTransaction; @@ -37,7 +38,7 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.QueryOrGetInputInterf ** Input data for the Query action ** *******************************************************************************/ -public class QueryInput extends AbstractTableActionInput implements QueryOrGetInputInterface +public class QueryInput extends AbstractTableActionInput implements QueryOrGetInputInterface, Cloneable { private QBackendTransaction transaction; private QQueryFilter filter; @@ -109,6 +110,40 @@ public class QueryInput extends AbstractTableActionInput implements QueryOrGetIn + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public QueryInput clone() throws CloneNotSupportedException + { + QueryInput clone = (QueryInput) super.clone(); + + if(fieldsToTranslatePossibleValues != null) + { + clone.fieldsToTranslatePossibleValues = new HashSet<>(fieldsToTranslatePossibleValues); + } + + if(queryJoins != null) + { + clone.queryJoins = new ArrayList<>(queryJoins); + } + + if(clone.associationNamesToInclude != null) + { + clone.associationNamesToInclude = new HashSet<>(associationNamesToInclude); + } + + if(queryHints != null) + { + clone.queryHints = EnumSet.noneOf(QueryHint.class); + clone.queryHints.addAll(queryHints); + } + + return (clone); + } + + + /******************************************************************************* ** Getter for filter **