public static String generateSetFilter(Set ids, String entityClass, String componentId, String entityAlias) {
Document document = DocumentHelper.createDocument();
Element root = DocumentHelper.createElement("filter");
Element or = root.addElement("and");
Element condition = or.addElement("c");
condition.addAttribute("name", "set");
condition.addAttribute("inExpr", "true");
condition.addAttribute("hidden", "true");
condition.addAttribute("locCaption", "Set filter");
condition.addAttribute("entityAlias", entityAlias);
condition.addAttribute("class", entityClass);
condition.addAttribute("type", ConditionType.CUSTOM.name());
String listOfId = createIdsString(ids);
String randomName = RandomStringUtils.randomAlphabetic(10);
condition.addText(entityAlias + ".id in :component$" + componentId + "." + randomName);
Element param = condition.addElement("param");
param.addAttribute("name", "component$" + componentId + "." + randomName);
param.addAttribute("isFoldersFilterEntitiesSet", "true");
param.addText(listOfId);
document.add(root);
return Dom4j.writeDocument(document, true);
}