From 3fae35a2bf0ba387a883d8aa0e4326680c23f926 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 27 Jun 2023 14:53:01 -0500 Subject: [PATCH] More fluent interface on core table actions & inputs --- .../core/actions/tables/GetAction.java | 10 +++ .../core/actions/tables/InsertAction.java | 22 ++++++ .../core/actions/tables/UpdateAction.java | 22 ++++++ .../actions/tables/delete/DeleteInput.java | 23 +++++++ .../model/actions/tables/get/GetInput.java | 23 +++++++ .../actions/tables/insert/InsertInput.java | 68 +++++++++++++++++++ .../actions/tables/query/QueryInput.java | 11 +++ .../actions/tables/update/UpdateInput.java | 68 +++++++++++++++++++ 8 files changed, 247 insertions(+) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/GetAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/GetAction.java index 67cbecee..74fb8d0d 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/GetAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/GetAction.java @@ -79,6 +79,16 @@ public class GetAction + /******************************************************************************* + ** + *******************************************************************************/ + public QRecord executeForRecord(GetInput getInput) throws QException + { + return (execute(getInput).getRecord()); + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/InsertAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/InsertAction.java index e044b710..62871c8e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/InsertAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/InsertAction.java @@ -78,6 +78,28 @@ public class InsertAction extends AbstractQActionFunction executeForRecords(InsertInput insertInput) throws QException + { + InsertOutput insertOutput = new InsertAction().execute(insertInput); + return (insertOutput.getRecords()); + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java index e5501f28..8e875705 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/tables/UpdateAction.java @@ -83,6 +83,28 @@ public class UpdateAction + /******************************************************************************* + ** + *******************************************************************************/ + public QRecord executeForRecord(UpdateInput updateInput) throws QException + { + UpdateOutput updateOutput = new UpdateAction().execute(updateInput); + return (updateOutput.getRecords().get(0)); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public static List executeForRecords(UpdateInput updateInput) throws QException + { + UpdateOutput updateOutput = new UpdateAction().execute(updateInput); + return (updateOutput.getRecords()); + } + + + /******************************************************************************* ** *******************************************************************************/ diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/delete/DeleteInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/delete/DeleteInput.java index 53e3af78..c39ed3ec 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/delete/DeleteInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/delete/DeleteInput.java @@ -54,6 +54,29 @@ public class DeleteInput extends AbstractTableActionInput + /******************************************************************************* + ** Constructor + ** + *******************************************************************************/ + public DeleteInput(String tableName) + { + setTableName(tableName); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public DeleteInput withTableName(String tableName) + { + super.withTableName(tableName); + return (this); + } + + + /******************************************************************************* ** Getter for transaction ** 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 0e3f8e59..cf13a054 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 @@ -66,6 +66,29 @@ public class GetInput extends AbstractTableActionInput + /******************************************************************************* + ** Constructor + ** + *******************************************************************************/ + public GetInput(String tableName) + { + setTableName(tableName); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public AbstractTableActionInput withTableName(String tableName) + { + super.withTableName(tableName); + return (this); + } + + + /******************************************************************************* ** Getter for primaryKey ** diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/insert/InsertInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/insert/InsertInput.java index 9a0492a6..1e154dd8 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/insert/InsertInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/insert/InsertInput.java @@ -22,12 +22,15 @@ package com.kingsrook.qqq.backend.core.model.actions.tables.insert; +import java.util.ArrayList; import java.util.List; 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.InputSource; import com.kingsrook.qqq.backend.core.model.actions.tables.QInputSource; import com.kingsrook.qqq.backend.core.model.data.QRecord; +import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; +import com.kingsrook.qqq.backend.core.utils.CollectionUtils; /******************************************************************************* @@ -55,6 +58,71 @@ public class InsertInput extends AbstractTableActionInput + /******************************************************************************* + ** Constructor + ** + *******************************************************************************/ + public InsertInput(String tableName) + { + setTableName(tableName); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public InsertInput withTableName(String tableName) + { + super.withTableName(tableName); + return (this); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public InsertInput withRecord(QRecord record) + { + if(records == null) + { + records = new ArrayList<>(); + } + + records.add(record); + + return (this); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public InsertInput withRecordEntity(QRecordEntity recordEntity) + { + return (withRecord(recordEntity.toQRecord())); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public InsertInput withRecordEntities(List recordEntityList) + { + for(QRecordEntity recordEntity : CollectionUtils.nonNullList(recordEntityList)) + { + withRecordEntity(recordEntity); + } + + return (this); + } + + + /******************************************************************************* ** Getter for transaction ** 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 6cb2c556..123af490 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 @@ -77,6 +77,17 @@ public class QueryInput extends AbstractTableActionInput + /******************************************************************************* + ** Constructor + ** + *******************************************************************************/ + public QueryInput(String tableName) + { + setTableName(tableName); + } + + + /******************************************************************************* ** Getter for filter ** diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java index 2ae55f37..818a2e84 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/update/UpdateInput.java @@ -22,12 +22,15 @@ package com.kingsrook.qqq.backend.core.model.actions.tables.update; +import java.util.ArrayList; import java.util.List; 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.InputSource; import com.kingsrook.qqq.backend.core.model.actions.tables.QInputSource; import com.kingsrook.qqq.backend.core.model.data.QRecord; +import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; +import com.kingsrook.qqq.backend.core.utils.CollectionUtils; /******************************************************************************* @@ -62,6 +65,71 @@ public class UpdateInput extends AbstractTableActionInput + /******************************************************************************* + ** Constructor + ** + *******************************************************************************/ + public UpdateInput(String tableName) + { + setTableName(tableName); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + @Override + public UpdateInput withTableName(String tableName) + { + super.withTableName(tableName); + return (this); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public UpdateInput withRecord(QRecord record) + { + if(records == null) + { + records = new ArrayList<>(); + } + + records.add(record); + + return (this); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public UpdateInput withRecordEntity(QRecordEntity recordEntity) + { + return (withRecord(recordEntity.toQRecord())); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public UpdateInput withRecordEntities(List recordEntityList) + { + for(QRecordEntity recordEntity : CollectionUtils.nonNullList(recordEntityList)) + { + withRecordEntity(recordEntity); + } + + return (this); + } + + + /******************************************************************************* ** Getter for transaction **