From 90cc5a32ac1b868cd4c75bf48aafa4b68824d72b Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Fri, 30 May 2025 20:25:53 -0500 Subject: [PATCH] Extract an interface from QBitComponentMetaDataProducer (which itself is still useful as a base class, so you don't have to implement get/setQBitConfig yourself), for implementations that already have a different base class. --- .../qbits/QBitComponentMetaDataProducer.java | 5 +- ...BitComponentMetaDataProducerInterface.java | 50 +++++++++++++++++++ .../model/metadata/qbits/QBitProducer.java | 4 +- 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitComponentMetaDataProducerInterface.java diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitComponentMetaDataProducer.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitComponentMetaDataProducer.java index 346633f8..a093e4b6 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitComponentMetaDataProducer.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitComponentMetaDataProducer.java @@ -22,7 +22,6 @@ package com.kingsrook.qqq.backend.core.model.metadata.qbits; -import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerInterface; import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerOutput; @@ -33,7 +32,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerOutput; ** Specifically exists to accept the QBitConfig as a type parameter and a value, ** easily accessed in the producer's methods as getQBitConfig() *******************************************************************************/ -public abstract class QBitComponentMetaDataProducer implements MetaDataProducerInterface +public abstract class QBitComponentMetaDataProducer implements QBitComponentMetaDataProducerInterface { private C qBitConfig = null; @@ -42,6 +41,7 @@ public abstract class QBitComponentMetaDataProducer. + */ + +package com.kingsrook.qqq.backend.core.model.metadata.qbits; + + +import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerInterface; +import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerOutput; + + +/******************************************************************************* + ** extension of MetaDataProducerInterface, designed for producing meta data + ** within a (java-defined, at this time) QBit. + ** + ** Specifically exists to accept the QBitConfig as a type parameter and a value, + ** easily accessed in the producer's methods as getQBitConfig() + *******************************************************************************/ +public interface QBitComponentMetaDataProducerInterface extends MetaDataProducerInterface +{ + + /******************************************************************************* + ** Getter for qBitConfig + *******************************************************************************/ + C getQBitConfig(); + + + /******************************************************************************* + ** Setter for qBitConfig + *******************************************************************************/ + void setQBitConfig(C qBitConfig); + +} diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitProducer.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitProducer.java index 7fef2174..9e5e1a7d 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitProducer.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/qbits/QBitProducer.java @@ -81,9 +81,9 @@ public interface QBitProducer /////////////////////////////// for(MetaDataProducerInterface producer : producers) { - if(producer instanceof QBitComponentMetaDataProducer) + if(producer instanceof QBitComponentMetaDataProducerInterface) { - QBitComponentMetaDataProducer qBitComponentMetaDataProducer = (QBitComponentMetaDataProducer) producer; + QBitComponentMetaDataProducerInterface qBitComponentMetaDataProducer = (QBitComponentMetaDataProducerInterface) producer; qBitComponentMetaDataProducer.setQBitConfig(qBitConfig); }