Skip to content

Commit ab39a5d

Browse files
committed
Updated variable factory to no longer check existence of files to support file dumper tool
1 parent 02e0de9 commit ab39a5d

File tree

6 files changed

+17
-11
lines changed

6 files changed

+17
-11
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
// Project settings
99
group = "org.veupathdb.eda"
10-
version = "3.8.3"
10+
version = "4.0.0"
1111

1212
plugins {
1313
`java-library`

src/main/java/org/veupathdb/service/eda/ss/model/db/VariableFactory.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.Map;
1717
import java.util.Optional;
1818
import java.util.concurrent.ConcurrentHashMap;
19+
import java.util.function.Function;
1920

2021
import static org.gusdb.fgputil.FormatUtil.NL;
2122
import static org.veupathdb.service.eda.ss.model.db.DB.Tables.AttributeGraph.Columns.*;
@@ -26,23 +27,28 @@ public class VariableFactory {
2627
private final DataSource _dataSource;
2728
private final String _appDbSchema;
2829
private final Optional<BinaryMetadataProvider> _binaryMetadataProvider;
29-
private final BinaryFilesManager _binaryFilesManager;
3030
private final Map<String,Boolean> _studyHasFilesMap;
31+
private final Function<String, Boolean> _shouldAppendMetaForStudy;
3132

32-
public VariableFactory(DataSource dataSource, String appDbSchema, BinaryMetadataProvider binaryMetadataProvider, BinaryFilesManager binaryFilesManager) {
33+
public VariableFactory(DataSource dataSource,
34+
String appDbSchema,
35+
BinaryMetadataProvider binaryMetadataProvider,
36+
Function<String, Boolean> shouldAppendMetaForStudy) {
3337
_dataSource = dataSource;
3438
_appDbSchema = appDbSchema;
3539
_binaryMetadataProvider = Optional.ofNullable(binaryMetadataProvider);
36-
_binaryFilesManager = binaryFilesManager;
40+
_shouldAppendMetaForStudy = shouldAppendMetaForStudy;
3741
_studyHasFilesMap = new ConcurrentHashMap<>();
3842
}
3943

44+
4045
List<Variable> loadVariables(String studyAbbrev, Entity entity) {
4146

4247
String sql = generateStudyVariablesListSql(entity, _appDbSchema);
4348

44-
Optional<BinaryMetadataProvider> metadataProvider = _binaryMetadataProvider.flatMap(provider ->
45-
_studyHasFilesMap.computeIfAbsent(studyAbbrev, _binaryFilesManager::studyHasFiles) ? Optional.of(provider) : Optional.empty());
49+
Optional<BinaryMetadataProvider> metadataProvider = _shouldAppendMetaForStudy.apply(studyAbbrev)
50+
? _binaryMetadataProvider
51+
: Optional.empty();
4652

4753
return new SQLRunner(_dataSource, sql, "Get entity variables metadata for: '" + entity.getDisplayName() + "'").executeQuery(rs -> {
4854
List<Variable> variables = new ArrayList<>();

src/test/java/org/veupathdb/service/eda/ss/model/db/EntityResultSetUtilsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void beforeEach() {
4040
Mockito.when(_binaryMetadataProvider.getBinaryProperties(Mockito.anyString(), Mockito.any(Entity.class), Mockito.anyString()))
4141
.thenReturn(Optional.empty());
4242
Study study = new StudyFactory(StubDb.getDataSource(), APP_DB_SCHEMA, USER_STUDIES_FLAG,
43-
new VariableFactory(StubDb.getDataSource(), APP_DB_SCHEMA, _binaryMetadataProvider, _binaryFilesManager)).getStudyById(LoadStudyTest.STUDY_ID);
43+
new VariableFactory(StubDb.getDataSource(), APP_DB_SCHEMA, _binaryMetadataProvider, studyId -> false)).getStudyById(LoadStudyTest.STUDY_ID);
4444
new MockFilters(study);
4545
}
4646

src/test/java/org/veupathdb/service/eda/ss/model/db/LoadStudyTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ void testReadAllVariables() {
126126

127127
Entity entity = entityIdMap.get("GEMS_Part");
128128

129-
List<Variable> variables = new VariableFactory(datasource, APP_DB_SCHEMA, binaryMetadataProvider, binaryFilesManager)
129+
List<Variable> variables = new VariableFactory(datasource, APP_DB_SCHEMA, binaryMetadataProvider, studyId -> false)
130130
.loadVariables(STUDY_ID, entity);
131131

132132
assertEquals(5, variables.size());
@@ -135,7 +135,7 @@ void testReadAllVariables() {
135135
@Test
136136
@DisplayName("Load study test")
137137
void testLoadStudy() {
138-
VariableFactory variableFactory = new VariableFactory(datasource, APP_DB_SCHEMA, binaryMetadataProvider, binaryFilesManager);
138+
VariableFactory variableFactory = new VariableFactory(datasource, APP_DB_SCHEMA, binaryMetadataProvider, studyId -> false);
139139
Study study = new StudyFactory(datasource, APP_DB_SCHEMA, USER_STUDIES_FLAG, variableFactory).getStudyById(STUDY_ID);
140140
assertNotNull(study);
141141
}

src/test/java/org/veupathdb/service/eda/ss/model/db/StudySubsettingUtilsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static void setUp() {
5555
_model = new MockModel();
5656
_filtesFromMockStudy = new MockFilters(_model.study);
5757
_dataSource = StubDb.getDataSource();
58-
_variableFactory = new VariableFactory(_dataSource, APP_DB_SCHEMA, new EmptyBinaryMetadataProvider(), bfm);
58+
_variableFactory = new VariableFactory(_dataSource, APP_DB_SCHEMA, new EmptyBinaryMetadataProvider(), studyId -> false);
5959
Study study = new StudyFactory(_dataSource, APP_DB_SCHEMA, USER_STUDIES_FLAG, _variableFactory).getStudyById(LoadStudyTest.STUDY_ID);
6060
_filtersFromDbStudy = new MockFilters(study);
6161
}

src/test/java/org/veupathdb/service/eda/ss/service/StudiesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static void setUp() {
3737
_dataSource = StubDb.getDataSource();
3838
_binaryFilesManager = Mockito.mock(BinaryFilesManager.class);
3939
Mockito.when(_binaryFilesManager.studyHasFiles(Mockito.anyString())).thenReturn(false);
40-
_variableFactory = new VariableFactory(_dataSource, APP_DB_SCHEMA, new EmptyBinaryMetadataProvider(), _binaryFilesManager);
40+
_variableFactory = new VariableFactory(_dataSource, APP_DB_SCHEMA, new EmptyBinaryMetadataProvider(), studyId -> false);
4141
Study study = new StudyFactory(_dataSource, APP_DB_SCHEMA, USER_STUDIES_FLAG, _variableFactory).getStudyById("DS-2324");
4242
_filtersForTesting = new MockFilters(study);
4343
}

0 commit comments

Comments
 (0)