mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
change to not include createDate field for s3 (where it's not supported); changed file-name field used on the download adornment to be baseName by default, but configurable
This commit is contained in:
@ -22,12 +22,15 @@
|
|||||||
package com.kingsrook.qqq.backend.module.filesystem.base.model.metadata;
|
package com.kingsrook.qqq.backend.module.filesystem.base.model.metadata;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.AdornmentType;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.AdornmentType;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.FieldAdornment;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.FieldAdornment;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QFieldSection;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.SectionFactory;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.SectionFactory;
|
||||||
import com.kingsrook.qqq.backend.module.filesystem.local.FilesystemBackendModule;
|
import com.kingsrook.qqq.backend.module.filesystem.local.FilesystemBackendModule;
|
||||||
@ -59,6 +62,8 @@ public class FilesystemTableMetaDataBuilder
|
|||||||
private String basePath;
|
private String basePath;
|
||||||
private String glob;
|
private String glob;
|
||||||
|
|
||||||
|
private String contentsAdornmentFileNameField = "baseName";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
@ -66,46 +71,64 @@ public class FilesystemTableMetaDataBuilder
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public QTableMetaData buildStandardCardinalityOneTable()
|
public QTableMetaData buildStandardCardinalityOneTable()
|
||||||
{
|
{
|
||||||
|
boolean includeCreateDate = true;
|
||||||
AbstractFilesystemTableBackendDetails tableBackendDetails = switch(backend.getBackendType())
|
AbstractFilesystemTableBackendDetails tableBackendDetails = switch(backend.getBackendType())
|
||||||
{
|
{
|
||||||
case S3BackendModule.BACKEND_TYPE -> new S3TableBackendDetails();
|
case S3BackendModule.BACKEND_TYPE ->
|
||||||
|
{
|
||||||
|
includeCreateDate = false;
|
||||||
|
yield new S3TableBackendDetails();
|
||||||
|
}
|
||||||
case FilesystemBackendModule.BACKEND_TYPE -> new FilesystemTableBackendDetails();
|
case FilesystemBackendModule.BACKEND_TYPE -> new FilesystemTableBackendDetails();
|
||||||
case SFTPBackendModule.BACKEND_TYPE -> new SFTPTableBackendDetails();
|
case SFTPBackendModule.BACKEND_TYPE -> new SFTPTableBackendDetails();
|
||||||
default -> throw new IllegalStateException("Unexpected value: " + backend.getBackendType());
|
default -> throw new IllegalStateException("Unexpected value: " + backend.getBackendType());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
List<QFieldMetaData> fields = new ArrayList<>();
|
||||||
|
|
||||||
|
fields.add((new QFieldMetaData("fileName", QFieldType.STRING)));
|
||||||
|
fields.add((new QFieldMetaData("baseName", QFieldType.STRING)));
|
||||||
|
fields.add((new QFieldMetaData("size", QFieldType.LONG).withDisplayFormat(DisplayFormat.COMMAS)));
|
||||||
|
fields.add((new QFieldMetaData("modifyDate", QFieldType.DATE_TIME)));
|
||||||
|
fields.add((new QFieldMetaData("contents", QFieldType.BLOB)
|
||||||
|
.withIsHeavy(true)
|
||||||
|
.withFieldAdornment(new FieldAdornment(AdornmentType.FILE_DOWNLOAD)
|
||||||
|
.withValue(AdornmentType.FileDownloadValues.FILE_NAME_FORMAT, "%s")
|
||||||
|
.withValue(AdornmentType.FileDownloadValues.FILE_NAME_FIELD, contentsAdornmentFileNameField
|
||||||
|
))));
|
||||||
|
|
||||||
|
QFieldSection t3Section = SectionFactory.defaultT3("modifyDate");
|
||||||
|
|
||||||
|
AbstractFilesystemTableBackendDetails backendDetails = tableBackendDetails
|
||||||
|
.withCardinality(Cardinality.ONE)
|
||||||
|
.withFileNameFieldName("fileName")
|
||||||
|
.withBaseNameFieldName("baseName")
|
||||||
|
.withContentsFieldName("contents")
|
||||||
|
.withSizeFieldName("size")
|
||||||
|
.withModifyDateFieldName("modifyDate")
|
||||||
|
.withBasePath(basePath)
|
||||||
|
.withGlob(glob);
|
||||||
|
|
||||||
|
if(includeCreateDate)
|
||||||
|
{
|
||||||
|
fields.add((new QFieldMetaData("createDate", QFieldType.DATE_TIME)));
|
||||||
|
backendDetails.setCreateDateFieldName("createDate");
|
||||||
|
|
||||||
|
ArrayList<String> t3FieldNames = new ArrayList<>(t3Section.getFieldNames());
|
||||||
|
t3FieldNames.add(0, "createDate");
|
||||||
|
t3Section.setFieldNames(t3FieldNames);
|
||||||
|
}
|
||||||
|
|
||||||
return new QTableMetaData()
|
return new QTableMetaData()
|
||||||
.withName(name)
|
.withName(name)
|
||||||
.withIsHidden(true)
|
.withIsHidden(true)
|
||||||
.withBackendName(backend.getName())
|
.withBackendName(backend.getName())
|
||||||
.withPrimaryKeyField("fileName")
|
.withPrimaryKeyField("fileName")
|
||||||
|
.withFields(fields)
|
||||||
.withField(new QFieldMetaData("fileName", QFieldType.STRING))
|
|
||||||
.withField(new QFieldMetaData("baseName", QFieldType.STRING))
|
|
||||||
.withField(new QFieldMetaData("size", QFieldType.LONG).withDisplayFormat(DisplayFormat.COMMAS))
|
|
||||||
.withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME))
|
|
||||||
.withField(new QFieldMetaData("modifyDate", QFieldType.DATE_TIME))
|
|
||||||
.withField(new QFieldMetaData("contents", QFieldType.BLOB)
|
|
||||||
.withIsHeavy(true)
|
|
||||||
.withFieldAdornment(new FieldAdornment(AdornmentType.FILE_DOWNLOAD)
|
|
||||||
.withValue(AdornmentType.FileDownloadValues.FILE_NAME_FORMAT, "%s")
|
|
||||||
.withValue(AdornmentType.FileDownloadValues.FILE_NAME_FIELD, "fileName")
|
|
||||||
))
|
|
||||||
|
|
||||||
.withSection(SectionFactory.defaultT1("fileName"))
|
.withSection(SectionFactory.defaultT1("fileName"))
|
||||||
.withSection(SectionFactory.defaultT2("baseName", "contents", "size"))
|
.withSection(SectionFactory.defaultT2("baseName", "contents", "size"))
|
||||||
.withSection(SectionFactory.defaultT3("createDate", "modifyDate"))
|
.withSection(t3Section)
|
||||||
|
.withBackendDetails(backendDetails);
|
||||||
.withBackendDetails(tableBackendDetails
|
|
||||||
.withCardinality(Cardinality.ONE)
|
|
||||||
.withFileNameFieldName("fileName")
|
|
||||||
.withBaseNameFieldName("baseName")
|
|
||||||
.withContentsFieldName("contents")
|
|
||||||
.withSizeFieldName("size")
|
|
||||||
.withCreateDateFieldName("createDate")
|
|
||||||
.withModifyDateFieldName("modifyDate")
|
|
||||||
.withBasePath(basePath)
|
|
||||||
.withGlob(glob));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -232,4 +255,35 @@ public class FilesystemTableMetaDataBuilder
|
|||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for contentsAdornmentFileNameField
|
||||||
|
*******************************************************************************/
|
||||||
|
public String getContentsAdornmentFileNameField()
|
||||||
|
{
|
||||||
|
return (this.contentsAdornmentFileNameField);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Setter for contentsAdornmentFileNameField
|
||||||
|
*******************************************************************************/
|
||||||
|
public void setContentsAdornmentFileNameField(String contentsAdornmentFileNameField)
|
||||||
|
{
|
||||||
|
this.contentsAdornmentFileNameField = contentsAdornmentFileNameField;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for contentsAdornmentFileNameField
|
||||||
|
*******************************************************************************/
|
||||||
|
public FilesystemTableMetaDataBuilder withContentsAdornmentFileNameField(String contentsAdornmentFileNameField)
|
||||||
|
{
|
||||||
|
this.contentsAdornmentFileNameField = contentsAdornmentFileNameField;
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user