diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterCriteria.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterCriteria.java index 118aacbf..9c88f19b 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterCriteria.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterCriteria.java @@ -31,6 +31,7 @@ import java.util.Objects; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.actions.tables.query.serialization.QFilterCriteriaDeserializer; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.utils.CollectionUtils; import com.kingsrook.qqq.backend.core.utils.StringUtils; @@ -40,7 +41,7 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils; * *******************************************************************************/ @JsonDeserialize(using = QFilterCriteriaDeserializer.class) -public class QFilterCriteria implements Serializable, Cloneable +public class QFilterCriteria implements Serializable, Cloneable, QMetaDataObject { private static final QLogger LOG = QLogger.getLogger(QFilterCriteria.class); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterOrderBy.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterOrderBy.java index 52eca98c..24a2c3f9 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterOrderBy.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QFilterOrderBy.java @@ -23,13 +23,14 @@ package com.kingsrook.qqq.backend.core.model.actions.tables.query; import java.io.Serializable; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; /******************************************************************************* ** Bean representing an element of a query order-by clause. ** *******************************************************************************/ -public class QFilterOrderBy implements Serializable, Cloneable +public class QFilterOrderBy implements Serializable, Cloneable, QMetaDataObject { private String fieldName; private boolean isAscending = true; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QQueryFilter.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QQueryFilter.java index 0d18d56d..97f094d9 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QQueryFilter.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/actions/tables/query/QQueryFilter.java @@ -36,6 +36,7 @@ import com.kingsrook.qqq.backend.core.instances.QMetaDataVariableInterpreter; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.actions.tables.query.expressions.AbstractFilterExpression; import com.kingsrook.qqq.backend.core.model.actions.tables.query.expressions.FilterVariableExpression; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.utils.CollectionUtils; import com.kingsrook.qqq.backend.core.utils.StringUtils; import com.kingsrook.qqq.backend.core.utils.ValueUtils; @@ -45,7 +46,7 @@ import com.kingsrook.qqq.backend.core.utils.ValueUtils; * Full "filter" for a query - a list of criteria and order-bys * *******************************************************************************/ -public class QQueryFilter implements Serializable, Cloneable +public class QQueryFilter implements Serializable, Cloneable, QMetaDataObject { private static final QLogger LOG = QLogger.getLogger(QQueryFilter.class); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/TopLevelMetaDataInterface.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/TopLevelMetaDataInterface.java index 116bae9e..4b7cc8a3 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/TopLevelMetaDataInterface.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/TopLevelMetaDataInterface.java @@ -26,7 +26,7 @@ package com.kingsrook.qqq.backend.core.model.metadata; ** Interface for meta-data classes that can be added directly (e.g, at the top ** level) to a QInstance (such as a QTableMetaData - not a QFieldMetaData). *******************************************************************************/ -public interface TopLevelMetaDataInterface extends MetaDataProducerOutput +public interface TopLevelMetaDataInterface extends MetaDataProducerOutput, QMetaDataObject { /******************************************************************************* diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/audits/QAuditRules.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/audits/QAuditRules.java index f7cf4bfa..657c7035 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/audits/QAuditRules.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/audits/QAuditRules.java @@ -22,10 +22,13 @@ package com.kingsrook.qqq.backend.core.model.metadata.audits; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; + + /******************************************************************************* ** *******************************************************************************/ -public class QAuditRules +public class QAuditRules implements QMetaDataObject { private AuditLevel auditLevel; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/code/QCodeReference.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/code/QCodeReference.java index 5c475a4e..eb6a01b6 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/code/QCodeReference.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/code/QCodeReference.java @@ -23,13 +23,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.code; import java.io.Serializable; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; /******************************************************************************* ** Pointer to code to be ran by the qqq framework, e.g., for custom behavior - ** maybe process steps, maybe customization to a table, etc. *******************************************************************************/ -public class QCodeReference implements Serializable +public class QCodeReference implements Serializable, QMetaDataObject { private String name; private QCodeType codeType; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java index 5e5e61f0..0de975e0 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java @@ -40,6 +40,7 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.data.QField; import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.model.metadata.help.HelpRole; import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent; import com.kingsrook.qqq.backend.core.model.metadata.possiblevalues.QPossibleValueSource; @@ -54,7 +55,7 @@ import static com.kingsrook.qqq.backend.core.logging.LogUtils.logPair; ** Meta-data to represent a single field in a table. ** *******************************************************************************/ -public class QFieldMetaData implements Cloneable +public class QFieldMetaData implements Cloneable, QMetaDataObject { private static final QLogger LOG = QLogger.getLogger(QFieldMetaData.class); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/help/QHelpContent.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/help/QHelpContent.java index f7bb173d..c99b9d1f 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/help/QHelpContent.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/help/QHelpContent.java @@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.core.model.metadata.help; import java.util.Collections; import java.util.HashSet; import java.util.Set; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; /******************************************************************************* @@ -41,7 +42,7 @@ import java.util.Set; ** May be dynamically added to meta-data via (non-meta-) data - see ** HelpContentMetaDataProvider and QInstanceHelpContentManager *******************************************************************************/ -public class QHelpContent +public class QHelpContent implements QMetaDataObject { private String content; private HelpFormat format; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/layout/QIcon.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/layout/QIcon.java index 72117679..0951edd1 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/layout/QIcon.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/layout/QIcon.java @@ -22,6 +22,9 @@ package com.kingsrook.qqq.backend.core.model.metadata.layout; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; + + /******************************************************************************* ** Icon to show associated with an App, Table, Process, etc. ** @@ -31,7 +34,7 @@ package com.kingsrook.qqq.backend.core.model.metadata.layout; ** Future may allow something like a "namespace", and/or multiple icons for ** use in different frontends, etc. *******************************************************************************/ -public class QIcon +public class QIcon implements QMetaDataObject { private String name; private String path; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/permissions/QPermissionRules.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/permissions/QPermissionRules.java index 07dc0d55..d94b1e8e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/permissions/QPermissionRules.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/permissions/QPermissionRules.java @@ -22,13 +22,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.permissions; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference; /******************************************************************************* ** *******************************************************************************/ -public class QPermissionRules implements Cloneable +public class QPermissionRules implements Cloneable, QMetaDataObject { private PermissionLevel level; private DenyBehavior denyBehavior; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/scheduleing/QScheduleMetaData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/scheduleing/QScheduleMetaData.java index d474a013..efcbe2b6 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/scheduleing/QScheduleMetaData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/scheduleing/QScheduleMetaData.java @@ -22,6 +22,7 @@ package com.kingsrook.qqq.backend.core.model.metadata.scheduleing; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.utils.StringUtils; @@ -35,7 +36,7 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils; ** same moment. ** *******************************************************************************/ -public class QScheduleMetaData +public class QScheduleMetaData implements QMetaDataObject { private String schedulerName; private String description; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/Association.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/Association.java index 5ccd956e..2085d30e 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/Association.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/Association.java @@ -22,11 +22,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; + + /******************************************************************************* ** definition of a qqq table that is "associated" with another table, e.g., ** managed along with it - such as child-records under a parent record. *******************************************************************************/ -public class Association +public class Association implements QMetaDataObject { private String name; private String associatedTableName; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QFieldSection.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QFieldSection.java index 157d01db..df2fbe0a 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QFieldSection.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/QFieldSection.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; import com.kingsrook.qqq.backend.core.instances.QInstanceHelpContentManager; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.model.metadata.help.HelpRole; import com.kingsrook.qqq.backend.core.model.metadata.help.QHelpContent; import com.kingsrook.qqq.backend.core.model.metadata.layout.QIcon; @@ -36,7 +37,7 @@ import com.kingsrook.qqq.backend.core.utils.collections.MutableList; ** A section of fields - a logical grouping. ** TODO - this class should be named QTableSection! *******************************************************************************/ -public class QFieldSection +public class QFieldSection implements QMetaDataObject { private String name; private String label; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/UniqueKey.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/UniqueKey.java index a2c1204c..8be2b1f1 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/UniqueKey.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/UniqueKey.java @@ -25,6 +25,7 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.utils.StringUtils; @@ -32,7 +33,7 @@ import com.kingsrook.qqq.backend.core.utils.StringUtils; ** Definition of a Unique Key (or "Constraint", if you wanna use fancy words) ** on a QTable. *******************************************************************************/ -public class UniqueKey +public class UniqueKey implements QMetaDataObject { private List fieldNames; private String label; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/AutomationStatusTracking.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/AutomationStatusTracking.java index e9f5d69e..e63b81d3 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/AutomationStatusTracking.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/AutomationStatusTracking.java @@ -22,11 +22,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables.automation; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; + + /******************************************************************************* ** Table-automation meta-data to define how this table's per-record automation ** status is tracked. *******************************************************************************/ -public class AutomationStatusTracking +public class AutomationStatusTracking implements QMetaDataObject { private AutomationStatusTrackingType type; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/QTableAutomationDetails.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/QTableAutomationDetails.java index 13a57662..ad87a133 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/QTableAutomationDetails.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/QTableAutomationDetails.java @@ -24,13 +24,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables.automation; import java.util.ArrayList; import java.util.List; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.model.metadata.scheduleing.QScheduleMetaData; /******************************************************************************* ** Details about how this table's record automations are set up. *******************************************************************************/ -public class QTableAutomationDetails +public class QTableAutomationDetails implements QMetaDataObject { private AutomationStatusTracking statusTracking; private String providerName; diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/TableAutomationAction.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/TableAutomationAction.java index b089661c..24745549 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/TableAutomationAction.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/tables/automation/TableAutomationAction.java @@ -25,13 +25,14 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables.automation; import java.io.Serializable; import java.util.Map; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; +import com.kingsrook.qqq.backend.core.model.metadata.QMetaDataObject; import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference; /******************************************************************************* ** Definition of a specific action to run against a table *******************************************************************************/ -public class TableAutomationAction +public class TableAutomationAction implements QMetaDataObject { private String name; private TriggerEvent triggerEvent;