mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Add capability: QUERY_STATS; rework capabilities to be smarter w/ enable, then disable
This commit is contained in:
@ -22,7 +22,6 @@
|
|||||||
package com.kingsrook.qqq.backend.core.model.metadata;
|
package com.kingsrook.qqq.backend.core.model.metadata;
|
||||||
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
@ -59,6 +58,10 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData()
|
public QBackendMetaData()
|
||||||
{
|
{
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// by default, we will turn off the query stats capability on all backends //
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
withoutCapability(Capability.QUERY_STATS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -199,6 +202,10 @@ public class QBackendMetaData
|
|||||||
public void setEnabledCapabilities(Set<Capability> enabledCapabilities)
|
public void setEnabledCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
this.enabledCapabilities = enabledCapabilities;
|
||||||
|
if(this.disabledCapabilities != null)
|
||||||
|
{
|
||||||
|
this.disabledCapabilities.removeAll(enabledCapabilities);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -209,7 +216,7 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withEnabledCapabilities(Set<Capability> enabledCapabilities)
|
public QBackendMetaData withEnabledCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
setEnabledCapabilities(enabledCapabilities);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +228,10 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withCapabilities(Set<Capability> enabledCapabilities)
|
public QBackendMetaData withCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
for(Capability enabledCapability : enabledCapabilities)
|
||||||
|
{
|
||||||
|
withCapability(enabledCapability);
|
||||||
|
}
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,6 +248,7 @@ public class QBackendMetaData
|
|||||||
this.enabledCapabilities = new HashSet<>();
|
this.enabledCapabilities = new HashSet<>();
|
||||||
}
|
}
|
||||||
this.enabledCapabilities.add(capability);
|
this.enabledCapabilities.add(capability);
|
||||||
|
this.disabledCapabilities.remove(capability);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,11 +260,10 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withCapabilities(Capability... enabledCapabilities)
|
public QBackendMetaData withCapabilities(Capability... enabledCapabilities)
|
||||||
{
|
{
|
||||||
if(this.enabledCapabilities == null)
|
for(Capability enabledCapability : enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = new HashSet<>();
|
withCapability(enabledCapability);
|
||||||
}
|
}
|
||||||
this.enabledCapabilities.addAll(Arrays.stream(enabledCapabilities).toList());
|
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,6 +287,10 @@ public class QBackendMetaData
|
|||||||
public void setDisabledCapabilities(Set<Capability> disabledCapabilities)
|
public void setDisabledCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
this.disabledCapabilities = disabledCapabilities;
|
||||||
|
if(this.enabledCapabilities != null)
|
||||||
|
{
|
||||||
|
this.enabledCapabilities.removeAll(disabledCapabilities);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -287,7 +301,7 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withDisabledCapabilities(Set<Capability> disabledCapabilities)
|
public QBackendMetaData withDisabledCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
setDisabledCapabilities(disabledCapabilities);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,11 +313,10 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withoutCapabilities(Capability... disabledCapabilities)
|
public QBackendMetaData withoutCapabilities(Capability... disabledCapabilities)
|
||||||
{
|
{
|
||||||
if(this.disabledCapabilities == null)
|
for(Capability disabledCapability : disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = new HashSet<>();
|
withoutCapability(disabledCapability);
|
||||||
}
|
}
|
||||||
this.disabledCapabilities.addAll(Arrays.stream(disabledCapabilities).toList());
|
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +328,10 @@ public class QBackendMetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QBackendMetaData withoutCapabilities(Set<Capability> disabledCapabilities)
|
public QBackendMetaData withoutCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
for(Capability disabledCapability : disabledCapabilities)
|
||||||
|
{
|
||||||
|
withCapability(disabledCapability);
|
||||||
|
}
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,6 +348,7 @@ public class QBackendMetaData
|
|||||||
this.disabledCapabilities = new HashSet<>();
|
this.disabledCapabilities = new HashSet<>();
|
||||||
}
|
}
|
||||||
this.disabledCapabilities.add(capability);
|
this.disabledCapabilities.add(capability);
|
||||||
|
this.enabledCapabilities.remove(capability);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,9 +33,10 @@ public enum Capability
|
|||||||
TABLE_COUNT,
|
TABLE_COUNT,
|
||||||
TABLE_INSERT,
|
TABLE_INSERT,
|
||||||
TABLE_UPDATE,
|
TABLE_UPDATE,
|
||||||
TABLE_DELETE
|
TABLE_DELETE,
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
// keep these values in sync with Capability.ts in qqq-frontend-core //
|
// keep these values in sync with Capability.ts in qqq-frontend-core //
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
QUERY_STATS
|
||||||
}
|
}
|
||||||
|
@ -862,6 +862,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
public void setEnabledCapabilities(Set<Capability> enabledCapabilities)
|
public void setEnabledCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
this.enabledCapabilities = enabledCapabilities;
|
||||||
|
if(this.disabledCapabilities != null)
|
||||||
|
{
|
||||||
|
this.disabledCapabilities.removeAll(enabledCapabilities);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -872,7 +876,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withEnabledCapabilities(Set<Capability> enabledCapabilities)
|
public QTableMetaData withEnabledCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
setEnabledCapabilities(enabledCapabilities);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -884,7 +888,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withCapabilities(Set<Capability> enabledCapabilities)
|
public QTableMetaData withCapabilities(Set<Capability> enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = enabledCapabilities;
|
for(Capability enabledCapability : enabledCapabilities)
|
||||||
|
{
|
||||||
|
withCapability(enabledCapability);
|
||||||
|
}
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -901,6 +908,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
this.enabledCapabilities = new HashSet<>();
|
this.enabledCapabilities = new HashSet<>();
|
||||||
}
|
}
|
||||||
this.enabledCapabilities.add(capability);
|
this.enabledCapabilities.add(capability);
|
||||||
|
this.disabledCapabilities.remove(capability);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -912,11 +920,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withCapabilities(Capability... enabledCapabilities)
|
public QTableMetaData withCapabilities(Capability... enabledCapabilities)
|
||||||
{
|
{
|
||||||
if(this.enabledCapabilities == null)
|
for(Capability enabledCapability : enabledCapabilities)
|
||||||
{
|
{
|
||||||
this.enabledCapabilities = new HashSet<>();
|
withCapability(enabledCapability);
|
||||||
}
|
}
|
||||||
this.enabledCapabilities.addAll(Arrays.stream(enabledCapabilities).toList());
|
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -940,6 +947,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
public void setDisabledCapabilities(Set<Capability> disabledCapabilities)
|
public void setDisabledCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
this.disabledCapabilities = disabledCapabilities;
|
||||||
|
if(this.enabledCapabilities != null)
|
||||||
|
{
|
||||||
|
this.enabledCapabilities.removeAll(disabledCapabilities);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -950,7 +961,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withDisabledCapabilities(Set<Capability> disabledCapabilities)
|
public QTableMetaData withDisabledCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
setDisabledCapabilities(disabledCapabilities);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -962,11 +973,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withoutCapabilities(Capability... disabledCapabilities)
|
public QTableMetaData withoutCapabilities(Capability... disabledCapabilities)
|
||||||
{
|
{
|
||||||
if(this.disabledCapabilities == null)
|
for(Capability disabledCapability : disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = new HashSet<>();
|
withoutCapability(disabledCapability);
|
||||||
}
|
}
|
||||||
this.disabledCapabilities.addAll(Arrays.stream(disabledCapabilities).toList());
|
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -978,7 +988,10 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData withoutCapabilities(Set<Capability> disabledCapabilities)
|
public QTableMetaData withoutCapabilities(Set<Capability> disabledCapabilities)
|
||||||
{
|
{
|
||||||
this.disabledCapabilities = disabledCapabilities;
|
for(Capability disabledCapability : disabledCapabilities)
|
||||||
|
{
|
||||||
|
withCapability(disabledCapability);
|
||||||
|
}
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -995,6 +1008,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
|
|||||||
this.disabledCapabilities = new HashSet<>();
|
this.disabledCapabilities = new HashSet<>();
|
||||||
}
|
}
|
||||||
this.disabledCapabilities.add(capability);
|
this.disabledCapabilities.add(capability);
|
||||||
|
this.enabledCapabilities.remove(capability);
|
||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +69,16 @@ class QTableMetaDataTest extends BaseTest
|
|||||||
|
|
||||||
// table:false & backend:false = false
|
// table:false & backend:false = false
|
||||||
assertFalse(new QTableMetaData().withoutCapability(capability).isCapabilityEnabled(new QBackendMetaData().withoutCapability(capability), capability));
|
assertFalse(new QTableMetaData().withoutCapability(capability).isCapabilityEnabled(new QBackendMetaData().withoutCapability(capability), capability));
|
||||||
|
|
||||||
|
// backend false, but then true = true
|
||||||
|
assertTrue(new QTableMetaData().isCapabilityEnabled(new QBackendMetaData().withoutCapability(capability).withCapability(capability), capability));
|
||||||
|
|
||||||
|
// backend true, but then false = false
|
||||||
|
assertFalse(new QTableMetaData().isCapabilityEnabled(new QBackendMetaData().withCapability(capability).withoutCapability(capability), capability));
|
||||||
|
|
||||||
|
// table true, but then false = true
|
||||||
|
assertFalse(new QTableMetaData().withCapability(capability).withoutCapability(capability).isCapabilityEnabled(new QBackendMetaData(), capability));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user