private ComponentSearchResultDTO search(final String searchStr, final ProcessGroup group) {
final List<String> matches = new ArrayList<>();
final ProcessGroup parent = group.getParent();
if (parent == null) {
return null;
}
addIfAppropriate(searchStr, group.getIdentifier(), "Id", matches);
addIfAppropriate(searchStr, group.getVersionedComponentId().orElse(null), "Version Control ID", matches);
addIfAppropriate(searchStr, group.getName(), "Name", matches);
addIfAppropriate(searchStr, group.getComments(), "Comments", matches);
final ComponentVariableRegistry varRegistry = group.getVariableRegistry();
if (varRegistry != null) {
final Map<VariableDescriptor, String> variableMap = varRegistry.getVariableMap();
for (final Map.Entry<VariableDescriptor, String> entry : variableMap.entrySet()) {
addIfAppropriate(searchStr, entry.getKey().getName(), "Variable Name", matches);
addIfAppropriate(searchStr, entry.getValue(), "Variable Value", matches);
}
}
if (matches.isEmpty()) {
return null;
}
final ComponentSearchResultDTO result = new ComponentSearchResultDTO();
result.setId(group.getIdentifier());
result.setName(group.getName());
result.setGroupId(parent.getIdentifier());
result.setMatches(matches);
return result;
}