protected int newFileId(StudyConfiguration studyConfiguration) throws StorageEngineException { // return studyConfiguration.getFileIds().values().stream().max(Integer::compareTo).orElse(0) + 1; return projectDBAdaptor.generateId(studyConfiguration, "file"); }
public QueryResult<ProjectMetadata> getProjectMetadata() { return projectDBAdaptor.getProjectMetadata(); }
public <E extends Exception> ProjectMetadata lockAndUpdateProject(UpdateFunction<ProjectMetadata, E> function) throws StorageEngineException, E { Objects.requireNonNull(function); long lock; try { lock = projectDBAdaptor.lockProject(1000, 10000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new StorageEngineException("Unable to lock the Project", e); } catch (TimeoutException e) { throw new StorageEngineException("Unable to lock the Project", e); } try { ProjectMetadata projectMetadata = getProjectMetadata().first(); int countersHash = (projectMetadata == null ? Collections.emptyMap() : projectMetadata.getCounters()).hashCode(); projectMetadata = function.update(projectMetadata); int newCountersHash = (projectMetadata == null ? Collections.emptyMap() : projectMetadata.getCounters()).hashCode(); // If the function modifies the internal counters, update them boolean updateCounters = countersHash != newCountersHash; projectDBAdaptor.updateProjectMetadata(projectMetadata, updateCounters); return projectMetadata; } finally { projectDBAdaptor.unLockProject(lock); } }
protected int newCohortId(StudyConfiguration studyConfiguration) throws StorageEngineException { // return studyConfiguration.getCohortIds().values().stream().max(Integer::compareTo).orElse(0) + 1; return projectDBAdaptor.generateId(studyConfiguration, "cohort"); }
protected int newSampleId(StudyConfiguration studyConfiguration) throws StorageEngineException { // return studyConfiguration.getSampleIds().values().stream().max(Integer::compareTo).orElse(0) + 1; return projectDBAdaptor.generateId(studyConfiguration, "sample"); }
protected int newSearchIndexSamplesId(StudyConfiguration studyConfiguration) throws StorageEngineException { return projectDBAdaptor.generateId(studyConfiguration, "searchIndexSamples"); }
protected int newStudyId() throws StorageEngineException { return projectDBAdaptor.generateId(null, "study"); }