Skip to content

Commit

Permalink
consolidate logic into getCachedToolsForDataFile #3657
Browse files Browse the repository at this point in the history
  • Loading branch information
pdurbin committed Jan 17, 2018
1 parent 05dd4bf commit b502c21
Showing 1 changed file with 26 additions and 15 deletions.
41 changes: 26 additions & 15 deletions src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -4044,27 +4044,38 @@ public List<DatasetField> getDatasetSummaryFields() {

return DatasetUtil.getDatasetSummaryFields(workingVersion, customFields);
}

public List<ExternalTool> getConfigureToolsForDataFile(Long fileId) {
List<ExternalTool> cachedConfigTools = configureToolsByFileId.get(fileId);
if (cachedConfigTools != null) { //if already queried before and added to list
return cachedConfigTools;
}
DataFile dataFile = datafileService.find(fileId);
cachedConfigTools = ExternalToolServiceBean.findExternalToolsByFile(configureTools, dataFile);
configureToolsByFileId.put(fileId, cachedConfigTools); //add to map so we don't have to do the lifting again
return cachedConfigTools;
return getCachedToolsForDataFile(fileId, ExternalTool.Type.CONFIGURE);
}

public List<ExternalTool> getExploreToolsForDataFile(Long fileId) {
List<ExternalTool> cachedExploreTools = exploreToolsByFileId.get(fileId);
if (cachedExploreTools != null) { //if already queried before and added to list
return cachedExploreTools;
return getCachedToolsForDataFile(fileId, ExternalTool.Type.EXPLORE);
}

public List<ExternalTool> getCachedToolsForDataFile(Long fileId, ExternalTool.Type type) {
Map<Long, List<ExternalTool>> cachedToolsByFileId = new HashMap<>();
List<ExternalTool> externalTools = new ArrayList<>();
switch (type) {
case EXPLORE:
cachedToolsByFileId = exploreToolsByFileId;
externalTools = exploreTools;
break;
case CONFIGURE:
cachedToolsByFileId = configureToolsByFileId;
externalTools = configureTools;
break;
default:
break;
}
List<ExternalTool> cachedTools = cachedToolsByFileId.get(fileId);
if (cachedTools != null) { //if already queried before and added to list
return cachedTools;
}
DataFile dataFile = datafileService.find(fileId);
cachedExploreTools = ExternalToolServiceBean.findExternalToolsByFile(exploreTools, dataFile);
exploreToolsByFileId.put(fileId, cachedExploreTools); //add to map so we don't have to do the lifting again
return cachedExploreTools;
cachedTools = ExternalToolServiceBean.findExternalToolsByFile(externalTools, dataFile);
cachedToolsByFileId.put(fileId, cachedTools); //add to map so we don't have to do the lifting again
return cachedTools;
}

Boolean thisLatestReleasedVersion = null;
Expand Down

0 comments on commit b502c21

Please sign in to comment.