From 3fe6828550fc282892279aab21274283cf5a1ba0 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Thu, 23 May 2024 12:56:22 -0500 Subject: [PATCH] Apply @QIgnore annotation, to silence some debug logs done as part of entity annotaiton processing --- .../core/model/data/QRecordEntity.java | 29 +++++++++++++++++-- .../backend/core/model/data/QRecordEnum.java | 2 +- .../core/model/querystats/QueryStat.java | 7 ++++- .../model/scheduledjobs/ScheduledJob.java | 3 ++ .../com/kingsrook/qqq/api/model/APILog.java | 2 ++ 5 files changed, 38 insertions(+), 5 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java index 622ad1b5..89de8bea 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java @@ -218,6 +218,7 @@ public abstract class QRecordEntity } + /******************************************************************************* ** *******************************************************************************/ @@ -296,7 +297,19 @@ public abstract class QRecordEntity } else { - LOG.debug("Skipping field without @QField annotation", logPair("class", c.getSimpleName()), logPair("fieldName", fieldName)); + Optional ignoreAnnotation = getQIgnoreAnnotation(c, fieldName); + Optional associationAnnotation = getQAssociationAnnotation(c, fieldName); + + if(ignoreAnnotation.isPresent() || associationAnnotation.isPresent()) + { + //////////////////////////////////////////////////////////// + // silently skip if marked as an association or an ignore // + //////////////////////////////////////////////////////////// + } + else + { + LOG.debug("Skipping field without @QField annotation", logPair("class", c.getSimpleName()), logPair("fieldName", fieldName)); + } } } else @@ -360,6 +373,16 @@ public abstract class QRecordEntity + /******************************************************************************* + ** + *******************************************************************************/ + public static Optional getQIgnoreAnnotation(Class c, String ignoreName) + { + return (getAnnotationOnField(c, QIgnore.class, ignoreName)); + } + + + /******************************************************************************* ** *******************************************************************************/ @@ -419,9 +442,9 @@ public abstract class QRecordEntity } else { - if(!method.getName().equals("getClass")) + if(!method.getName().equals("getClass") && method.getAnnotation(QIgnore.class) == null) { - LOG.debug("Method [" + method.getName() + "] looks like a getter, but its return type, [" + method.getReturnType() + "], isn't supported."); + LOG.debug("Method [" + method.getName() + "] in [" + method.getDeclaringClass().getSimpleName() + "] looks like a getter, but its return type, [" + method.getReturnType().getSimpleName() + "], isn't supported."); } } } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java index f5530b3b..f2350825 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java @@ -145,7 +145,7 @@ public interface QRecordEnum { if(!method.getName().equals("getClass") && !method.getName().equals("getDeclaringClass") && !method.getName().equals("getPossibleValueId")) { - LOG.debug("Method [" + method.getName() + "] looks like a getter, but its return type, [" + method.getReturnType() + "], isn't supported."); + LOG.debug("Method [" + method.getName() + "] in [" + method.getDeclaringClass().getSimpleName() + "] looks like a getter, but its return type, [" + method.getReturnType().getSimpleName() + "], isn't supported."); } } } diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/querystats/QueryStat.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/querystats/QueryStat.java index a0e5f513..ef14ac72 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/querystats/QueryStat.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/querystats/QueryStat.java @@ -28,6 +28,7 @@ import java.util.Set; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.data.QAssociation; import com.kingsrook.qqq.backend.core.model.data.QField; +import com.kingsrook.qqq.backend.core.model.data.QIgnore; import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; import com.kingsrook.qqq.backend.core.model.metadata.fields.ValueTooLongBehavior; @@ -77,7 +78,9 @@ public class QueryStat extends QRecordEntity /////////////////////////////////////////////////////////// // non-persistent fields - used to help build the record // /////////////////////////////////////////////////////////// - private String tableName; + @QIgnore + private String tableName; + private Set joinTableNames; private QQueryFilter queryFilter; @@ -384,6 +387,7 @@ public class QueryStat extends QRecordEntity /******************************************************************************* ** Getter for queryFilter *******************************************************************************/ + @QIgnore public QQueryFilter getQueryFilter() { return (this.queryFilter); @@ -446,6 +450,7 @@ public class QueryStat extends QRecordEntity /******************************************************************************* ** Getter for joinTableNames *******************************************************************************/ + @QIgnore public Set getJoinTableNames() { return (this.joinTableNames); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/scheduledjobs/ScheduledJob.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/scheduledjobs/ScheduledJob.java index 726d160b..117f07ac 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/scheduledjobs/ScheduledJob.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/scheduledjobs/ScheduledJob.java @@ -31,6 +31,7 @@ import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.common.TimeZonePossibleValueSourceMetaDataProvider; import com.kingsrook.qqq.backend.core.model.data.QAssociation; import com.kingsrook.qqq.backend.core.model.data.QField; +import com.kingsrook.qqq.backend.core.model.data.QIgnore; import com.kingsrook.qqq.backend.core.model.data.QRecord; import com.kingsrook.qqq.backend.core.model.data.QRecordEntity; import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat; @@ -434,6 +435,7 @@ public class ScheduledJob extends QRecordEntity /******************************************************************************* ** Getter for jobParameters - but a map of just the key=value pairs. *******************************************************************************/ + @QIgnore public Map getJobParametersMap() { if(CollectionUtils.nullSafeIsEmpty(this.jobParameters)) @@ -469,6 +471,7 @@ public class ScheduledJob extends QRecordEntity } + /******************************************************************************* ** Getter for repeatSeconds *******************************************************************************/ diff --git a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/model/APILog.java b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/model/APILog.java index 8f6cbcc3..3e8352eb 100644 --- a/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/model/APILog.java +++ b/qqq-middleware-api/src/main/java/com/kingsrook/qqq/api/model/APILog.java @@ -30,6 +30,7 @@ import com.kingsrook.qqq.api.model.metadata.ApiInstanceMetaDataProvider; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.exceptions.QRuntimeException; import com.kingsrook.qqq.backend.core.model.data.QField; +import com.kingsrook.qqq.backend.core.model.data.QIgnore; 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; @@ -425,6 +426,7 @@ public class APILog extends QRecordEntity /******************************************************************************* ** Getter for securityKeyValues *******************************************************************************/ + @QIgnore public Map getSecurityKeyValues() { return (this.securityKeyValues);