Add option to exclude an enum possible value's fields from docs

This commit is contained in:
2024-01-16 10:58:20 -06:00
parent 3ebc567299
commit a845ead466
2 changed files with 45 additions and 7 deletions

View File

@ -1476,6 +1476,11 @@ public class GenerateOpenApiSpecAction extends AbstractQActionFunction<GenerateO
{ {
QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName()); QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName());
if(QPossibleValueSourceType.ENUM.equals(possibleValueSource.getType())) if(QPossibleValueSourceType.ENUM.equals(possibleValueSource.getType()))
{
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// by default, we will list all enum values in the docs - but - a field's api-meta-data object can opt out //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(apiFieldMetaData == null || apiFieldMetaData.getListEnumPossibleValues())
{ {
List<String> enumValues = new ArrayList<>(); List<String> enumValues = new ArrayList<>();
List<String> enumMapping = new ArrayList<>(); List<String> enumMapping = new ArrayList<>();
@ -1487,6 +1492,7 @@ public class GenerateOpenApiSpecAction extends AbstractQActionFunction<GenerateO
fieldSchema.setEnumValues(enumValues); fieldSchema.setEnumValues(enumValues);
fieldSchema.setDescription(fieldSchema.getDescription() + " Value definitions are: " + StringUtils.joinWithCommasAndAnd(enumMapping)); fieldSchema.setDescription(fieldSchema.getDescription() + " Value definitions are: " + StringUtils.joinWithCommasAndAnd(enumMapping));
} }
}
else if(QPossibleValueSourceType.TABLE.equals(possibleValueSource.getType())) else if(QPossibleValueSourceType.TABLE.equals(possibleValueSource.getType()))
{ {
QTableMetaData sourceTable = QContext.getQInstance().getTable(possibleValueSource.getTableName()); QTableMetaData sourceTable = QContext.getQInstance().getTable(possibleValueSource.getTableName());

View File

@ -39,6 +39,7 @@ public class ApiFieldMetaData
private String apiFieldName; private String apiFieldName;
private String description; private String description;
private boolean listEnumPossibleValues = true;
private Boolean isExcluded; private Boolean isExcluded;
private String replacedByFieldName; private String replacedByFieldName;
@ -346,4 +347,35 @@ public class ApiFieldMetaData
return (this); return (this);
} }
/*******************************************************************************
** Getter for listEnumPossibleValues
*******************************************************************************/
public boolean getListEnumPossibleValues()
{
return (this.listEnumPossibleValues);
}
/*******************************************************************************
** Setter for listEnumPossibleValues
*******************************************************************************/
public void setListEnumPossibleValues(boolean listEnumPossibleValues)
{
this.listEnumPossibleValues = listEnumPossibleValues;
}
/*******************************************************************************
** Fluent setter for listEnumPossibleValues
*******************************************************************************/
public ApiFieldMetaData withListEnumPossibleValues(boolean listEnumPossibleValues)
{
this.listEnumPossibleValues = listEnumPossibleValues;
return (this);
}
} }