diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/QueryOrGetInputInterface.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/QueryOrGetInputInterface.java index 63f175e9..42804602 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/QueryOrGetInputInterface.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/QueryOrGetInputInterface.java @@ -23,7 +23,9 @@ package com.kingsrook.qqq.backend.core.model.actions.tables; import java.util.Collection; +import java.util.List; import com.kingsrook.qqq.backend.core.actions.QBackendTransaction; +import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryJoin; /******************************************************************************* @@ -49,6 +51,7 @@ public interface QueryOrGetInputInterface this.setShouldMaskPasswords(source.getShouldMaskPasswords()); this.setIncludeAssociations(source.getIncludeAssociations()); this.setAssociationNamesToInclude(source.getAssociationNamesToInclude()); + this.setQueryJoins(source.getQueryJoins()); } /******************************************************************************* @@ -146,4 +149,17 @@ public interface QueryOrGetInputInterface *******************************************************************************/ void setAssociationNamesToInclude(Collection associationNamesToInclude); + + /******************************************************************************* + ** Getter for queryJoins + *******************************************************************************/ + List getQueryJoins(); + + + /******************************************************************************* + ** Setter for queryJoins + ** + *******************************************************************************/ + void setQueryJoins(List queryJoins); + } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/get/GetInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/get/GetInput.java index 2b7f8ba6..2cf7872f 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/get/GetInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/get/GetInput.java @@ -23,11 +23,14 @@ package com.kingsrook.qqq.backend.core.model.actions.tables.get; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Map; import com.kingsrook.qqq.backend.core.actions.QBackendTransaction; import com.kingsrook.qqq.backend.core.model.actions.AbstractTableActionInput; import com.kingsrook.qqq.backend.core.model.actions.tables.QueryOrGetInputInterface; +import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryJoin; /******************************************************************************* @@ -47,6 +50,7 @@ public class GetInput extends AbstractTableActionInput implements QueryOrGetInpu private boolean shouldOmitHiddenFields = true; private boolean shouldMaskPasswords = true; + private List queryJoins = null; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // if you say you want to includeAssociations, you can limit which ones by passing them in associationNamesToInclude. // @@ -411,4 +415,51 @@ public class GetInput extends AbstractTableActionInput implements QueryOrGetInpu return (this); } + + + /******************************************************************************* + ** Getter for queryJoins + *******************************************************************************/ + public List getQueryJoins() + { + return (this.queryJoins); + } + + + + /******************************************************************************* + ** Setter for queryJoins + *******************************************************************************/ + public void setQueryJoins(List queryJoins) + { + this.queryJoins = queryJoins; + } + + + + /******************************************************************************* + ** Fluent setter for queryJoins + *******************************************************************************/ + public GetInput withQueryJoins(List queryJoins) + { + this.queryJoins = queryJoins; + return (this); + } + + + + /******************************************************************************* + ** Fluent setter for queryJoins + ** + *******************************************************************************/ + public GetInput withQueryJoin(QueryJoin queryJoin) + { + if(this.queryJoins == null) + { + this.queryJoins = new ArrayList<>(); + } + this.queryJoins.add(queryJoin); + return (this); + } + }