if (sourceModule.equals(element.getOpenable())) {
filteredElements.add(element);
}
}
if (filteredElements.size() == 0) {
ReferenceTree referenceTree;
if (cache != null) {
referenceTree = cache.getFileHierarchy(sourceModule,
monitor);
} else {
// Filter by includes network
referenceTree = FileNetworkUtility
.buildReferencedFilesTree(sourceModule, monitor);
}
for (T element : elements) {
if (LanguageModelInitializer
.isLanguageModelElement(element)
|| referenceTree.find(((ModelElement) element)
.getSourceModule())) {
filteredElements.add(element);
}
}
}