}
if (_parent.useOptimizedFileHandling()) {
Entity metaEntity = retrieveFileMetaEntity(filename);
if (metaEntity != null) {
WGFileMetaData metaData = null;
if (metaEntity instanceof ContentFileMeta) {
ContentFileMeta meta = (ContentFileMeta) metaEntity;
metaData = new WGFileMetaData();
meta.fill(metaData);
}
else if (metaEntity instanceof ContainerFileMeta) {
ContainerFileMeta meta = (ContainerFileMeta) metaEntity;
metaData = new WGFileMetaData();
meta.fill(metaData);
}
if (metaData != null) {
if (_parent._ddlVersion >= WGDatabase.CSVERSION_WGA5) {
metaData.setExtensionDataHandler(new FileExtDataHandler(_parent, metaEntity));
}
return metaData;
}
else {
throw new WGIllegalArgumentException("Unsupported entity type '" + metaEntity.getClass().getName() + "'.");