- Collection<Resource> modelIssues = graph.syncRequest(new ObjectsWithType(model, L0.ConsistsOf, ISSUE.Issue));
- Collection<Resource> indexedIssues = issueIndex != null ? issueIndex.find(graph, model) : Collections.<Resource>emptyList();
- Collection<Resource> issues = !indexedIssues.isEmpty() ? new THashSet<Resource>(modelIssues.size() + indexedIssues.size()) : modelIssues;
- if (!indexedIssues.isEmpty()) {
- issues.addAll(modelIssues);
- issues.addAll(indexedIssues);
- }
-
- for (Resource issue : issues) {
- // Filter out unwanted material
- boolean resolved = graph.hasStatement(issue, ISSUE.Resolved);
- if (parameter2 && resolved)
- continue;
- boolean hidden = graph.hasStatement(issue, ISSUE.Hidden);
- boolean user = graph.hasStatement(issue, ISSUE.UserIssue);
- boolean normal = !hidden && !user;
- if (!showHidden && hidden)
- continue;
- if (!showUser && user)
- continue;
- if (!showNormal && normal)
- continue;
-
- Resource source = graph.getPossibleObject(issue, ISSUE.IssueSource_Manages_Inverse);
- if (source != null) {
- byte cache = sourceActivenessCache.get(source);
- boolean active = cache == 2 ? true : false;
- if (cache == 0) {
- active = Boolean.TRUE.equals(graph.getPossibleRelatedValue(source, ISSUE.IssueSource_active));
- sourceActivenessCache.put(source, active ? (byte) 2 : (byte) 1);
- }
- if (!active)
- continue;
- }