Renaming MiddlewareMetaData to SupplementalMetaData

This commit is contained in:
2023-06-08 18:24:56 -05:00
parent 4ccc726f2e
commit 6a01754479
18 changed files with 128 additions and 125 deletions

View File

@ -62,7 +62,7 @@ import com.kingsrook.qqq.backend.core.model.metadata.reporting.QReportMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.reporting.QReportView;
import com.kingsrook.qqq.backend.core.model.metadata.tables.ExposedJoin;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QFieldSection;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QMiddlewareTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QSupplementalTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.Tier;
import com.kingsrook.qqq.backend.core.processes.implementations.bulk.delete.BulkDeleteLoadStep;
@ -261,9 +261,9 @@ public class QInstanceEnricher
{
table.getFields().values().forEach(this::enrichField);
for(QMiddlewareTableMetaData middlewareTableMetaData : CollectionUtils.nonNullMap(table.getMiddlewareMetaData()).values())
for(QSupplementalTableMetaData supplementalTableMetaData : CollectionUtils.nonNullMap(table.getSupplementalMetaData()).values())
{
middlewareTableMetaData.enrich(table);
supplementalTableMetaData.enrich(table);
}
}

View File

@ -48,7 +48,7 @@ import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryJoin;
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QMiddlewareInstanceMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QSupplementalInstanceMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeReference;
import com.kingsrook.qqq.backend.core.model.metadata.code.QCodeType;
import com.kingsrook.qqq.backend.core.model.metadata.fields.AdornmentType;
@ -158,7 +158,7 @@ public class QInstanceValidator
validateQueuesAndProviders(qInstance);
validateJoins(qInstance);
validateSecurityKeyTypes(qInstance);
validateMiddlewareMetaData(qInstance);
validateSupplementalMetaData(qInstance);
validateUniqueTopLevelNames(qInstance);
}
@ -182,11 +182,11 @@ public class QInstanceValidator
/*******************************************************************************
**
*******************************************************************************/
private void validateMiddlewareMetaData(QInstance qInstance)
private void validateSupplementalMetaData(QInstance qInstance)
{
for(QMiddlewareInstanceMetaData middlewareInstanceMetaData : CollectionUtils.nonNullMap(qInstance.getMiddlewareMetaData()).values())
for(QSupplementalInstanceMetaData supplementalInstanceMetaData : CollectionUtils.nonNullMap(qInstance.getSupplementalMetaData()).values())
{
middlewareInstanceMetaData.validate(qInstance, this);
supplementalInstanceMetaData.validate(qInstance, this);
}
}

View File

@ -91,7 +91,7 @@ public class QInstance
private Map<String, QQueueProviderMetaData> queueProviders = new LinkedHashMap<>();
private Map<String, QQueueMetaData> queues = new LinkedHashMap<>();
private Map<String, QMiddlewareInstanceMetaData> middlewareMetaData = new LinkedHashMap<>();
private Map<String, QSupplementalInstanceMetaData> supplementalMetaData = new LinkedHashMap<>();
private Map<String, String> environmentValues = new LinkedHashMap<>();
private String defaultTimeZoneId = "UTC";
@ -1083,60 +1083,60 @@ public class QInstance
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public Map<String, QMiddlewareInstanceMetaData> getMiddlewareMetaData()
public Map<String, QSupplementalInstanceMetaData> getSupplementalMetaData()
{
return (this.middlewareMetaData);
return (this.supplementalMetaData);
}
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public QMiddlewareInstanceMetaData getMiddlewareMetaData(String type)
public QSupplementalInstanceMetaData getSupplementalMetaData(String type)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
return (null);
}
return this.middlewareMetaData.get(type);
return this.supplementalMetaData.get(type);
}
/*******************************************************************************
** Setter for middlewareMetaData
** Setter for supplementalMetaData
*******************************************************************************/
public void setMiddlewareMetaData(Map<String, QMiddlewareInstanceMetaData> middlewareMetaData)
public void setSupplementalMetaData(Map<String, QSupplementalInstanceMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QInstance withMiddlewareMetaData(Map<String, QMiddlewareInstanceMetaData> middlewareMetaData)
public QInstance withSupplementalMetaData(Map<String, QSupplementalInstanceMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
return (this);
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QInstance withMiddlewareMetaData(QMiddlewareInstanceMetaData middlewareMetaData)
public QInstance withSupplementalMetaData(QSupplementalInstanceMetaData supplementalMetaData)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
this.middlewareMetaData = new HashMap<>();
this.supplementalMetaData = new HashMap<>();
}
this.middlewareMetaData.put(middlewareMetaData.getType(), middlewareMetaData);
this.supplementalMetaData.put(supplementalMetaData.getType(), supplementalMetaData);
return (this);
}

View File

@ -27,9 +27,10 @@ import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
/*******************************************************************************
** Base-class for instance-level meta-data defined for a specific middleware.
** Base-class for instance-level meta-data defined by some supplemental module, etc,
** outside of qqq core
*******************************************************************************/
public abstract class QMiddlewareInstanceMetaData
public abstract class QSupplementalInstanceMetaData
{
protected String type;
@ -58,7 +59,7 @@ public abstract class QMiddlewareInstanceMetaData
/*******************************************************************************
** Fluent setter for type
*******************************************************************************/
public QMiddlewareInstanceMetaData withType(String type)
public QSupplementalInstanceMetaData withType(String type)
{
this.type = type;
return (this);

View File

@ -85,7 +85,7 @@ public class QFieldMetaData implements Cloneable
private List<FieldAdornment> adornments;
private Map<String, QMiddlewareFieldMetaData> middlewareMetaData;
private Map<String, QSupplementalFieldMetaData> supplementalMetaData;
@ -840,60 +840,60 @@ public class QFieldMetaData implements Cloneable
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public Map<String, QMiddlewareFieldMetaData> getMiddlewareMetaData()
public Map<String, QSupplementalFieldMetaData> getSupplementalMetaData()
{
return (this.middlewareMetaData);
return (this.supplementalMetaData);
}
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public QMiddlewareFieldMetaData getMiddlewareMetaData(String type)
public QSupplementalFieldMetaData getSupplementalMetaData(String type)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
return (null);
}
return this.middlewareMetaData.get(type);
return this.supplementalMetaData.get(type);
}
/*******************************************************************************
** Setter for middlewareMetaData
** Setter for supplementalMetaData
*******************************************************************************/
public void setMiddlewareMetaData(Map<String, QMiddlewareFieldMetaData> middlewareMetaData)
public void setSupplementalMetaData(Map<String, QSupplementalFieldMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QFieldMetaData withMiddlewareMetaData(Map<String, QMiddlewareFieldMetaData> middlewareMetaData)
public QFieldMetaData withSupplementalMetaData(Map<String, QSupplementalFieldMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
return (this);
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QFieldMetaData withMiddlewareMetaData(QMiddlewareFieldMetaData middlewareMetaData)
public QFieldMetaData withSupplementalMetaData(QSupplementalFieldMetaData supplementalMetaData)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
this.middlewareMetaData = new HashMap<>();
this.supplementalMetaData = new HashMap<>();
}
this.middlewareMetaData.put(middlewareMetaData.getType(), middlewareMetaData);
this.supplementalMetaData.put(supplementalMetaData.getType(), supplementalMetaData);
return (this);
}

View File

@ -23,9 +23,10 @@ package com.kingsrook.qqq.backend.core.model.metadata.fields;
/*******************************************************************************
** Base-class for field-level meta-data defined for a specific middleware.
** Base-class for field-level meta-data defined by some supplemental module, etc,
** outside of qqq core
*******************************************************************************/
public abstract class QMiddlewareFieldMetaData
public abstract class QSupplementalFieldMetaData
{
protected String type;
@ -54,7 +55,7 @@ public abstract class QMiddlewareFieldMetaData
/*******************************************************************************
** Fluent setter for type
*******************************************************************************/
public QMiddlewareFieldMetaData withType(String type)
public QSupplementalFieldMetaData withType(String type)
{
this.type = type;
return (this);

View File

@ -23,9 +23,10 @@ package com.kingsrook.qqq.backend.core.model.metadata.tables;
/*******************************************************************************
** Base-class for table-level meta-data defined for a specific middleware.
** Base-class for table-level meta-data defined by some supplemental module, etc,
** outside of qqq core
*******************************************************************************/
public abstract class QMiddlewareTableMetaData
public abstract class QSupplementalTableMetaData
{
protected String type;
@ -54,7 +55,7 @@ public abstract class QMiddlewareTableMetaData
/*******************************************************************************
** Fluent setter for type
*******************************************************************************/
public QMiddlewareTableMetaData withType(String type)
public QSupplementalTableMetaData withType(String type)
{
this.type = type;
return (this);

View File

@ -99,7 +99,7 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
private CacheOf cacheOf;
private Map<String, QMiddlewareTableMetaData> middlewareMetaData;
private Map<String, QSupplementalTableMetaData> supplementalMetaData;
private List<ExposedJoin> exposedJoins;
@ -1189,60 +1189,60 @@ public class QTableMetaData implements QAppChildMetaData, Serializable, MetaData
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public Map<String, QMiddlewareTableMetaData> getMiddlewareMetaData()
public Map<String, QSupplementalTableMetaData> getSupplementalMetaData()
{
return (this.middlewareMetaData);
return (this.supplementalMetaData);
}
/*******************************************************************************
** Getter for middlewareMetaData
** Getter for supplementalMetaData
*******************************************************************************/
public QMiddlewareTableMetaData getMiddlewareMetaData(String type)
public QSupplementalTableMetaData getSupplementalMetaData(String type)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
return (null);
}
return this.middlewareMetaData.get(type);
return this.supplementalMetaData.get(type);
}
/*******************************************************************************
** Setter for middlewareMetaData
** Setter for supplementalMetaData
*******************************************************************************/
public void setMiddlewareMetaData(Map<String, QMiddlewareTableMetaData> middlewareMetaData)
public void setSupplementalMetaData(Map<String, QSupplementalTableMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QTableMetaData withMiddlewareMetaData(Map<String, QMiddlewareTableMetaData> middlewareMetaData)
public QTableMetaData withSupplementalMetaData(Map<String, QSupplementalTableMetaData> supplementalMetaData)
{
this.middlewareMetaData = middlewareMetaData;
this.supplementalMetaData = supplementalMetaData;
return (this);
}
/*******************************************************************************
** Fluent setter for middlewareMetaData
** Fluent setter for supplementalMetaData
*******************************************************************************/
public QTableMetaData withMiddlewareMetaData(QMiddlewareTableMetaData middlewareMetaData)
public QTableMetaData withSupplementalMetaData(QSupplementalTableMetaData supplementalMetaData)
{
if(this.middlewareMetaData == null)
if(this.supplementalMetaData == null)
{
this.middlewareMetaData = new HashMap<>();
this.supplementalMetaData = new HashMap<>();
}
this.middlewareMetaData.put(middlewareMetaData.getType(), middlewareMetaData);
this.supplementalMetaData.put(supplementalMetaData.getType(), supplementalMetaData);
return (this);
}

View File

@ -25,7 +25,7 @@ package com.kingsrook.qqq.api;
/*******************************************************************************
**
*******************************************************************************/
public interface ApiMiddlewareType
public interface ApiSupplementType
{
String NAME = "api";

View File

@ -24,17 +24,17 @@ package com.kingsrook.qqq.api.model.metadata;
import java.util.LinkedHashMap;
import java.util.Map;
import com.kingsrook.qqq.api.ApiMiddlewareType;
import com.kingsrook.qqq.api.ApiSupplementType;
import com.kingsrook.qqq.backend.core.instances.QInstanceValidator;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.metadata.QMiddlewareInstanceMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.QSupplementalInstanceMetaData;
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
/*******************************************************************************
**
*******************************************************************************/
public class ApiInstanceMetaDataContainer extends QMiddlewareInstanceMetaData
public class ApiInstanceMetaDataContainer extends QSupplementalInstanceMetaData
{
private Map<String, ApiInstanceMetaData> apis;
@ -46,7 +46,7 @@ public class ApiInstanceMetaDataContainer extends QMiddlewareInstanceMetaData
*******************************************************************************/
public ApiInstanceMetaDataContainer()
{
setType(ApiMiddlewareType.NAME);
setType(ApiSupplementType.NAME);
}
@ -56,7 +56,7 @@ public class ApiInstanceMetaDataContainer extends QMiddlewareInstanceMetaData
*******************************************************************************/
public static ApiInstanceMetaDataContainer of(QInstance qInstance)
{
return ((ApiInstanceMetaDataContainer) qInstance.getMiddlewareMetaData(ApiMiddlewareType.NAME));
return ((ApiInstanceMetaDataContainer) qInstance.getSupplementalMetaData(ApiSupplementType.NAME));
}

View File

@ -24,15 +24,15 @@ package com.kingsrook.qqq.api.model.metadata.fields;
import java.util.LinkedHashMap;
import java.util.Map;
import com.kingsrook.qqq.api.ApiMiddlewareType;
import com.kingsrook.qqq.api.ApiSupplementType;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QMiddlewareFieldMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.fields.QSupplementalFieldMetaData;
/*******************************************************************************
**
*******************************************************************************/
public class ApiFieldMetaDataContainer extends QMiddlewareFieldMetaData
public class ApiFieldMetaDataContainer extends QSupplementalFieldMetaData
{
private Map<String, ApiFieldMetaData> apis;
@ -54,7 +54,7 @@ public class ApiFieldMetaDataContainer extends QMiddlewareFieldMetaData
*******************************************************************************/
public static ApiFieldMetaDataContainer of(QFieldMetaData field)
{
return ((ApiFieldMetaDataContainer) field.getMiddlewareMetaData(ApiMiddlewareType.NAME));
return ((ApiFieldMetaDataContainer) field.getSupplementalMetaData(ApiSupplementType.NAME));
}

View File

@ -27,7 +27,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.kingsrook.qqq.api.ApiMiddlewareType;
import com.kingsrook.qqq.api.ApiSupplementType;
import com.kingsrook.qqq.api.model.APIVersionRange;
import com.kingsrook.qqq.api.model.metadata.ApiOperation;
import com.kingsrook.qqq.api.model.metadata.fields.ApiFieldMetaData;
@ -81,7 +81,7 @@ public class ApiTableMetaData implements ApiOperation.EnabledOperationsProvider
{
for(QFieldMetaData field : table.getFields().values())
{
ApiFieldMetaData apiFieldMetaData = ensureFieldHasApiMiddlewareMetaData(apiName, field);
ApiFieldMetaData apiFieldMetaData = ensureFieldHasApiSupplementalMetaData(apiName, field);
if(apiFieldMetaData.getInitialVersion() == null)
{
apiFieldMetaData.setInitialVersion(initialVersion);
@ -90,7 +90,7 @@ public class ApiTableMetaData implements ApiOperation.EnabledOperationsProvider
for(QFieldMetaData field : CollectionUtils.nonNullList(removedApiFields))
{
ApiFieldMetaData apiFieldMetaData = ensureFieldHasApiMiddlewareMetaData(apiName, field);
ApiFieldMetaData apiFieldMetaData = ensureFieldHasApiSupplementalMetaData(apiName, field);
if(apiFieldMetaData.getInitialVersion() == null)
{
apiFieldMetaData.setInitialVersion(initialVersion);
@ -104,11 +104,11 @@ public class ApiTableMetaData implements ApiOperation.EnabledOperationsProvider
/*******************************************************************************
**
*******************************************************************************/
private static ApiFieldMetaData ensureFieldHasApiMiddlewareMetaData(String apiName, QFieldMetaData field)
private static ApiFieldMetaData ensureFieldHasApiSupplementalMetaData(String apiName, QFieldMetaData field)
{
if(field.getMiddlewareMetaData(ApiMiddlewareType.NAME) == null)
if(field.getSupplementalMetaData(ApiSupplementType.NAME) == null)
{
field.withMiddlewareMetaData(new ApiFieldMetaDataContainer());
field.withSupplementalMetaData(new ApiFieldMetaDataContainer());
}
ApiFieldMetaDataContainer apiFieldMetaDataContainer = ApiFieldMetaDataContainer.of(field);

View File

@ -24,8 +24,8 @@ package com.kingsrook.qqq.api.model.metadata.tables;
import java.util.LinkedHashMap;
import java.util.Map;
import com.kingsrook.qqq.api.ApiMiddlewareType;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QMiddlewareTableMetaData;
import com.kingsrook.qqq.api.ApiSupplementType;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QSupplementalTableMetaData;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
@ -33,7 +33,7 @@ import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
/*******************************************************************************
**
*******************************************************************************/
public class ApiTableMetaDataContainer extends QMiddlewareTableMetaData
public class ApiTableMetaDataContainer extends QSupplementalTableMetaData
{
private Map<String, ApiTableMetaData> apis;
@ -55,7 +55,7 @@ public class ApiTableMetaDataContainer extends QMiddlewareTableMetaData
*******************************************************************************/
public static ApiTableMetaDataContainer of(QTableMetaData table)
{
return ((ApiTableMetaDataContainer) table.getMiddlewareMetaData(ApiMiddlewareType.NAME));
return ((ApiTableMetaDataContainer) table.getSupplementalMetaData(ApiSupplementType.NAME));
}

View File

@ -105,7 +105,7 @@ public class TestUtils
qInstance.setAuthentication(new Auth0AuthenticationMetaData().withType(QAuthenticationType.FULLY_ANONYMOUS).withName("anonymous"));
qInstance.withMiddlewareMetaData(new ApiInstanceMetaDataContainer()
qInstance.withSupplementalMetaData(new ApiInstanceMetaDataContainer()
.withApiInstanceMetaData(new ApiInstanceMetaData()
.withName(API_NAME)
.withPath("/api/")
@ -204,7 +204,7 @@ public class TestUtils
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// make some changes to this table in the "main" api (but leave it like the backend in the ALTERNATIVE_API_NAME) //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
table.withMiddlewareMetaData(new ApiTableMetaDataContainer()
table.withSupplementalMetaData(new ApiTableMetaDataContainer()
.withApiTableMetaData(API_NAME, new ApiTableMetaData()
.withInitialVersion(V2022_Q4)
@ -212,7 +212,7 @@ public class TestUtils
// in 2022.Q4, this table had a "shoeCount" field. but for the 2023.Q1 version, we renamed it to noOfShoes! //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
.withRemovedApiField(new QFieldMetaData("shoeCount", QFieldType.INTEGER).withDisplayFormat(DisplayFormat.COMMAS)
.withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME,
.withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME,
new ApiFieldMetaData().withFinalVersion(V2022_Q4).withReplacedByFieldName("noOfShoes"))))
)
.withApiTableMetaData(ALTERNATIVE_API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)));
@ -220,18 +220,18 @@ public class TestUtils
/////////////////////////////////////////////////////
// change the name for this field for the main api //
/////////////////////////////////////////////////////
table.getField("birthDate").withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withApiFieldName("birthDay")));
table.getField("birthDate").withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withApiFieldName("birthDay")));
////////////////////////////////////////////////////////////////////////////////
// See above - we renamed this field (in the backend) for the 2023_Q1 version //
////////////////////////////////////////////////////////////////////////////////
table.getField("noOfShoes").withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withInitialVersion(V2023_Q1)));
table.getField("noOfShoes").withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withInitialVersion(V2023_Q1)));
/////////////////////////////////////////////////////////////////////////////////////////////////
// 2 new fields - one will appear in a future version of the API, the other is always excluded //
/////////////////////////////////////////////////////////////////////////////////////////////////
table.getField("cost").withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withInitialVersion(V2023_Q2)));
table.getField("price").withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withIsExcluded(true)));
table.getField("cost").withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withInitialVersion(V2023_Q2)));
table.getField("price").withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(API_NAME, new ApiFieldMetaData().withIsExcluded(true)));
return (table);
}
@ -248,7 +248,7 @@ public class TestUtils
.withCustomizer(TableCustomizers.PRE_INSERT_RECORD.getRole(), new QCodeReference(OrderPreInsertCustomizer.class))
.withCustomizer(TableCustomizers.PRE_UPDATE_RECORD.getRole(), new QCodeReference(OrderPreUpdateCustomizer.class))
.withBackendName(MEMORY_BACKEND_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withPrimaryKeyField("id")
.withAssociation(new Association().withName("orderLines").withAssociatedTableName(TABLE_NAME_LINE_ITEM).withJoinName("orderLineItem"))
.withAssociation(new Association().withName("extrinsics").withAssociatedTableName(TABLE_NAME_ORDER_EXTRINSIC).withJoinName("orderOrderExtrinsic"))
@ -271,7 +271,7 @@ public class TestUtils
return new QTableMetaData()
.withName(TABLE_NAME_LINE_ITEM)
.withBackendName(MEMORY_BACKEND_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withPrimaryKeyField("id")
.withAssociation(new Association().withName("extrinsics").withAssociatedTableName(TABLE_NAME_LINE_ITEM_EXTRINSIC).withJoinName("lineItemLineItemExtrinsic"))
.withField(new QFieldMetaData("id", QFieldType.INTEGER).withIsEditable(false))
@ -293,7 +293,7 @@ public class TestUtils
return new QTableMetaData()
.withName(TABLE_NAME_LINE_ITEM_EXTRINSIC)
.withBackendName(MEMORY_BACKEND_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER).withIsEditable(false))
.withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME).withIsEditable(false))
@ -313,7 +313,7 @@ public class TestUtils
return new QTableMetaData()
.withName(TABLE_NAME_ORDER_EXTRINSIC)
.withBackendName(MEMORY_BACKEND_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion(V2022_Q4)))
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER).withIsEditable(false))
.withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME).withIsEditable(false))

View File

@ -120,7 +120,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withInitialVersion(TestUtils.V2022_Q4))));
qInstance.addTable(new QTableMetaData()
@ -129,7 +129,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withIsHidden(true)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withInitialVersion(TestUtils.V2022_Q4))));
qInstance.addTable(new QTableMetaData()
@ -137,7 +137,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withIsExcluded(true))));
qInstance.addTable(new QTableMetaData()
@ -151,7 +151,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withInitialVersion(TestUtils.V2023_Q2))));
qInstance.addTable(new QTableMetaData()
@ -159,7 +159,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withInitialVersion(TestUtils.V2022_Q4)
.withFinalVersion(TestUtils.V2022_Q4))));
@ -169,7 +169,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withoutCapabilities(Capability.TABLE_QUERY, Capability.TABLE_GET, Capability.TABLE_INSERT, Capability.TABLE_UPDATE, Capability.TABLE_DELETE)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withInitialVersion(TestUtils.V2022_Q4))));
GenerateOpenApiSpecOutput output = new GenerateOpenApiSpecAction().execute(new GenerateOpenApiSpecInput().withVersion(TestUtils.CURRENT_API_VERSION).withApiName(TestUtils.API_NAME));
@ -198,7 +198,7 @@ class GenerateOpenApiSpecActionTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withApiTableName("externalName")
.withInitialVersion(TestUtils.V2022_Q4))));

View File

@ -74,11 +74,11 @@ class GetTableApiFieldsActionTest extends BaseTest
QInstance qInstance = QContext.getQInstance();
qInstance.addTable(new QTableMetaData()
.withName(TABLE_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("1")))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("1")))
.withField(new QFieldMetaData("a", STRING)) // inherit versionRange from the table
.withField(new QFieldMetaData("b", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1"))))
.withField(new QFieldMetaData("c", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("2"))))
.withField(new QFieldMetaData("d", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("3"))))
.withField(new QFieldMetaData("b", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1"))))
.withField(new QFieldMetaData("c", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("2"))))
.withField(new QFieldMetaData("d", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("3"))))
);
new QInstanceEnricher(qInstance).enrich();
@ -98,13 +98,13 @@ class GetTableApiFieldsActionTest extends BaseTest
QInstance qInstance = QContext.getQInstance();
qInstance.addTable(new QTableMetaData()
.withName(TABLE_NAME)
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("1")
.withRemovedApiField(new QFieldMetaData("c", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1").withFinalVersion("2"))))
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("1")
.withRemovedApiField(new QFieldMetaData("c", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1").withFinalVersion("2"))))
))
.withField(new QFieldMetaData("a", STRING)) // inherit versionRange from the table
.withField(new QFieldMetaData("b", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1"))))
.withField(new QFieldMetaData("b", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("1"))))
// we used to have "c" here... now it's in the removed list above!
.withField(new QFieldMetaData("d", STRING).withMiddlewareMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("3"))))
.withField(new QFieldMetaData("d", STRING).withSupplementalMetaData(new ApiFieldMetaDataContainer().withApiFieldMetaData(TestUtils.API_NAME, new ApiFieldMetaData().withInitialVersion("3"))))
);
new QInstanceEnricher(qInstance).enrich();

View File

@ -98,7 +98,7 @@ class QJavalinApiHandlerTest extends BaseTest
.withBackendName(TestUtils.MEMORY_BACKEND_NAME)
.withPrimaryKeyField("id")
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData()
.withApiTableName("externalName")
.withInitialVersion(TestUtils.V2022_Q4))));

View File

@ -114,11 +114,11 @@ class ApiInstanceMetaDataTest
qInstance.addTable(new QTableMetaData()
.withName("myValidTable")
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("2023.Q1"))));
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("2023.Q1"))));
qInstance.addTable(new QTableMetaData()
.withName("myInvalidTable")
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("notAVersion"))));
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("notAVersion"))));
assertValidationErrors(qInstance, makeBaselineValidApiInstanceMetaData()
.withCurrentVersion(new APIVersion("2023.Q1"))
@ -127,7 +127,7 @@ class ApiInstanceMetaDataTest
qInstance.addTable(new QTableMetaData()
.withName("myFutureValidTable")
.withMiddlewareMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("2024.Q1"))));
.withSupplementalMetaData(new ApiTableMetaDataContainer().withApiTableMetaData(TestUtils.API_NAME, new ApiTableMetaData().withInitialVersion("2024.Q1"))));
assertValidationErrors(qInstance, makeBaselineValidApiInstanceMetaData()
.withCurrentVersion(new APIVersion("2023.Q1"))
@ -195,7 +195,7 @@ class ApiInstanceMetaDataTest
*******************************************************************************/
private void assertValidationErrors(QInstance qInstance, ApiInstanceMetaData apiInstanceMetaData, List<String> expectedErrors)
{
qInstance.withMiddlewareMetaData(new ApiInstanceMetaDataContainer().withApiInstanceMetaData(apiInstanceMetaData));
qInstance.withSupplementalMetaData(new ApiInstanceMetaDataContainer().withApiInstanceMetaData(apiInstanceMetaData));
QInstanceValidator validator = new QInstanceValidator();
apiInstanceMetaData.validate(apiInstanceMetaData.getName(), qInstance, validator);