mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Switch QSupplementalInstanceMetaData to interface instead of abstract class; remove getType
in favor of getName
from its base class, TopLevelMetaDataInterface;
This commit is contained in:
@ -1245,7 +1245,7 @@ public class QInstance
|
|||||||
{
|
{
|
||||||
this.supplementalMetaData = new HashMap<>();
|
this.supplementalMetaData = new HashMap<>();
|
||||||
}
|
}
|
||||||
this.supplementalMetaData.put(supplementalMetaData.getType(), supplementalMetaData);
|
this.supplementalMetaData.put(supplementalMetaData.getName(), supplementalMetaData);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
package com.kingsrook.qqq.backend.core.model.metadata;
|
package com.kingsrook.qqq.backend.core.model.metadata;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
import com.kingsrook.qqq.backend.core.instances.QInstanceValidator;
|
import com.kingsrook.qqq.backend.core.instances.QInstanceValidator;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||||
|
|
||||||
@ -30,20 +31,13 @@ import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
|||||||
** Base-class for instance-level meta-data defined by some supplemental module, etc,
|
** Base-class for instance-level meta-data defined by some supplemental module, etc,
|
||||||
** outside of qqq core
|
** outside of qqq core
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public abstract class QSupplementalInstanceMetaData implements TopLevelMetaDataInterface
|
public interface QSupplementalInstanceMetaData extends TopLevelMetaDataInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Getter for type
|
|
||||||
*******************************************************************************/
|
|
||||||
public abstract String getType();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public void enrich(QTableMetaData table)
|
default void enrich(QTableMetaData table)
|
||||||
{
|
{
|
||||||
////////////////////////
|
////////////////////////
|
||||||
// noop in base class //
|
// noop in base class //
|
||||||
@ -55,7 +49,7 @@ public abstract class QSupplementalInstanceMetaData implements TopLevelMetaDataI
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public void validate(QInstance qInstance, QInstanceValidator validator)
|
default void validate(QInstance qInstance, QInstanceValidator validator)
|
||||||
{
|
{
|
||||||
////////////////////////
|
////////////////////////
|
||||||
// noop in base class //
|
// noop in base class //
|
||||||
@ -68,9 +62,33 @@ public abstract class QSupplementalInstanceMetaData implements TopLevelMetaDataI
|
|||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@Override
|
@Override
|
||||||
public void addSelfToInstance(QInstance qInstance)
|
default void addSelfToInstance(QInstance qInstance)
|
||||||
{
|
{
|
||||||
qInstance.withSupplementalMetaData(this);
|
qInstance.withSupplementalMetaData(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
**
|
||||||
|
***************************************************************************/
|
||||||
|
static <S extends QSupplementalInstanceMetaData> S of(QInstance qInstance, String name)
|
||||||
|
{
|
||||||
|
return ((S) qInstance.getSupplementalMetaData(name));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
**
|
||||||
|
***************************************************************************/
|
||||||
|
static <S extends QSupplementalInstanceMetaData> S ofOrWithNew(QInstance qInstance, String name, Supplier<S> supplier)
|
||||||
|
{
|
||||||
|
S s = (S) qInstance.getSupplementalMetaData(name);
|
||||||
|
if(s == null)
|
||||||
|
{
|
||||||
|
s = supplier.get();
|
||||||
|
s.addSelfToInstance(qInstance);
|
||||||
|
}
|
||||||
|
return (s);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public class ApiInstanceMetaDataContainer extends QSupplementalInstanceMetaData
|
public class ApiInstanceMetaDataContainer implements QSupplementalInstanceMetaData
|
||||||
{
|
{
|
||||||
private Map<String, ApiInstanceMetaData> apis;
|
private Map<String, ApiInstanceMetaData> apis;
|
||||||
|
|
||||||
@ -71,17 +71,6 @@ public class ApiInstanceMetaDataContainer extends QSupplementalInstanceMetaData
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
**
|
|
||||||
*******************************************************************************/
|
|
||||||
@Override
|
|
||||||
public String getType()
|
|
||||||
{
|
|
||||||
return (ApiSupplementType.NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
Reference in New Issue
Block a user