public List<EntityData> findEntitesByTags(String[] tags, boolean matchAll, Search search) { Set<String> refs = new HashSet<String>(); if (matchAll) { HashSet<String> allTags = new HashSet<String>(); for (int i = 0; i < tags.length; i++) { allTags.add(tags[i]); } for (Entry<String, Set<String>> entry : entityTags.entrySet()) { if (entry.getValue().containsAll(allTags)) { refs.add(entry.getKey()); } } } else { for (String key : entityTags.keySet()) { Set<String> s = entityTags.get(key); for (int i = 0; i < tags.length; i++) { if (s.contains(tags[i])) { refs.add(key); } } } } ArrayList<EntityData> results = new ArrayList<EntityData>(); for (String ref : refs) { results.add( new EntityData(ref, (String)null) ); } Collections.sort(results, new EntityData.ReferenceComparator()); return results; }
Collections.sort(results, new EntityData.ReferenceComparator()); } else {
public List<EntityData> findEntitesByTags(String[] tags, boolean matchAll, Search search) { Set<String> refs = new HashSet<String>(); if (matchAll) { HashSet<String> allTags = new HashSet<String>(); for (int i = 0; i < tags.length; i++) { allTags.add(tags[i]); } for (Entry<String, Set<String>> entry : entityTags.entrySet()) { if (entry.getValue().containsAll(allTags)) { refs.add(entry.getKey()); } } } else { for (String key : entityTags.keySet()) { Set<String> s = entityTags.get(key); for (int i = 0; i < tags.length; i++) { if (s.contains(tags[i])) { refs.add(key); } } } } ArrayList<EntityData> results = new ArrayList<EntityData>(); for (String ref : refs) { results.add( new EntityData(ref, (String)null) ); } Collections.sort(results, new EntityData.ReferenceComparator()); return results; }