/** * Returns the branches to Query. * * @param <R> * * @param query * query * @return the list of branches */ public List<IStorageTreeComponent<E>> getBranchesToQuery(IIndexQuery query) { return getBranches(); }
/** * {@inheritDoc} */ @Override public List<IStorageDescriptor> query(IIndexQuery query, ForkJoinPool forkJoinPool) { return forkJoinPool.invoke(getTaskForForkJoinQuery(query)); }
/** * Loads indexing tree from a disk for a storage. * * @param storageData * {@link IStorageData} * @return Indexing tree or null if it can not be found. * @throws IOException * If {@link IOException} occurs. * @throws SerializationException * If data can not be deserialized. */ private IStorageTreeComponent<DefaultData> getIndexingTree(final IStorageData storageData) throws IOException, SerializationException { Path storagePath = getStoragePath(storageData); List<IStorageTreeComponent<DefaultData>> indexingTrees = this.getObjectsByFileTreeWalk(storagePath, StorageFileType.INDEX_FILE.getExtension()); if (!indexingTrees.isEmpty()) { if (indexingTrees.size() == 1) { return indexingTrees.get(0); } else { CombinedStorageBranch<DefaultData> combinedStorageBranch = new CombinedStorageBranch<>(indexingTrees); return combinedStorageBranch; } } else { return null; } }
/** * Test that tests the functionality of {@link CombinedStorageQueryTask} */ @SuppressWarnings("unchecked") @Test public void queryCombinedStorageBranch() { List<IStorageDescriptor> testResultList = new ArrayList<>(); testResultList.add(new StorageDescriptor()); testResultList.add(new StorageDescriptor()); CombinedStorageQueryTestTask<DefaultData> testTask = new CombinedStorageQueryTestTask<>(testResultList); StorageBranch<DefaultData> mockedBranch1 = mock(StorageBranch.class); when(mockedBranch1.getTaskForForkJoinQuery(storageIndexQuery)).thenReturn(testTask); StorageBranch<DefaultData> mockedBranch2 = mock(StorageBranch.class); when(mockedBranch2.getTaskForForkJoinQuery(storageIndexQuery)).thenReturn(testTask); ArrayList<IStorageTreeComponent<DefaultData>> branches = new ArrayList<>(); branches.add(mockedBranch1); branches.add(mockedBranch2); IStorageTreeComponent<DefaultData> rootCombinedStoreBranch = new CombinedStorageBranch<>(branches); List<IStorageDescriptor> results = rootCombinedStoreBranch.query(storageIndexQuery, forkJoinPool); assertThat(results.size(), is(equalTo(4))); } }