diff options
author | Audrey Denk | 2022-09-08 22:51:41 +0000 |
---|---|---|
committer | Audrey Denk | 2022-09-10 16:08:20 +0000 |
commit | 6509636da8f5ced9f501aa7831397fa7e96901ab (patch) | |
tree | c9975f12c9f74db86c731139e55170afd1a35e02 | |
parent | 63b352508af9b558a80ff4062bd7efd66f309cda (diff) | |
download | org.eclipse.osee-6509636da8f5ced9f501aa7831397fa7e96901ab.tar.gz org.eclipse.osee-6509636da8f5ced9f501aa7831397fa7e96901ab.tar.xz org.eclipse.osee-6509636da8f5ced9f501aa7831397fa7e96901ab.zip |
bug[TW21536]: ICD - Update search filter so it doesn't include duplicates
Change-Id: I99ec2eb9c80954d3de7c074ab6c406177a4e045b
Signed-off-by: Audrey Denk <audrey.e.denk@boeing.com>
-rw-r--r-- | plugins/org.eclipse.osee.mim/src/org/eclipse/osee/mim/internal/InterfaceStructureApiImpl.java | 53 |
1 files changed, 13 insertions, 40 deletions
diff --git a/plugins/org.eclipse.osee.mim/src/org/eclipse/osee/mim/internal/InterfaceStructureApiImpl.java b/plugins/org.eclipse.osee.mim/src/org/eclipse/osee/mim/internal/InterfaceStructureApiImpl.java index 33d2af971ea..09607880b97 100644 --- a/plugins/org.eclipse.osee.mim/src/org/eclipse/osee/mim/internal/InterfaceStructureApiImpl.java +++ b/plugins/org.eclipse.osee.mim/src/org/eclipse/osee/mim/internal/InterfaceStructureApiImpl.java @@ -393,51 +393,24 @@ public class InterfaceStructureApiImpl implements InterfaceStructureApi { for (InterfaceStructureToken structure : totalStructureList) { structure = this.parseStructure(branch, structure); } - /** - * Gets all structures that match filter conditions - */ - List<InterfaceStructureToken> structureList = - (List<InterfaceStructureToken>) this.getAccessor().getAllByRelationAndFilter(branch, - CoreRelationTypes.InterfaceSubMessageContent_SubMessage, subMessageId, filter, - this.structureAttributeList, this.getFollowRelationDetails(), InterfaceStructureToken.class); - for (InterfaceStructureToken structure : structureList) { - structure = this.parseStructure(branch, structure); - } - /** - * Gets all elements that match filter conditions, then find their related structures and attach - */ - List<InterfaceStructureElementToken> elements = this.interfaceElementApi.getFiltered(branch, filter); - for (InterfaceStructureElementToken element : elements) { - List<InterfaceStructureToken> subStructureList = - (List<InterfaceStructureToken>) this.getAccessor().getAllByRelation(branch, - CoreRelationTypes.InterfaceStructureContent_DataElement, ArtifactId.valueOf(element.getId()), - this.getFollowRelationDetails(), InterfaceStructureToken.class); - for (InterfaceStructureToken alternateStructure : subStructureList) { - if (totalStructureList.indexOf(alternateStructure) != -1 && totalStructureList.get( - totalStructureList.indexOf(alternateStructure)).getElements().indexOf(element) != -1) { - totalStructureList.set(totalStructureList.indexOf(alternateStructure), - this.parseStructure(branch, totalStructureList.get(totalStructureList.indexOf(alternateStructure)), - totalStructureList.get(totalStructureList.indexOf(alternateStructure)).getElements())); - } - List<InterfaceStructureElementToken> elementList = new LinkedList<InterfaceStructureElementToken>(); - elementList.add(element); - alternateStructure.setElements(elementList); - if (totalStructureList.indexOf(alternateStructure) != -1) { - if (!structureList.contains(alternateStructure)) { - structureList.add(alternateStructure); - } else { - InterfaceStructureToken tempStructure2 = - structureList.get(structureList.indexOf(alternateStructure)); - structureList.remove(alternateStructure); - tempStructure2.getElements().add(element); - structureList.add(tempStructure2); - } + + List<InterfaceStructureToken> structureList = totalStructureList; + + for (InterfaceStructureToken struct : structureList) { + List<InterfaceStructureElementToken> elementList = new LinkedList<InterfaceStructureElementToken>(); + for (InterfaceStructureElementToken element : struct.getElements()) { + ArtifactReadable art = element.getArtifactReadable(); + List<String> allAttributes = + art.getExistingAttributeTypes().stream().map(a -> art.getAttributeValuesAsString(a)).filter( + b -> b.toLowerCase().contains(filter.toLowerCase())).collect(Collectors.toList()); + if (!allAttributes.isEmpty()) { + elementList.add(element); } } + struct.setElements(elementList); } return structureList; } catch (Exception ex) { - System.out.println(ex); return totalStructureList; } } |