package org.rhq.enterprise.gui.definition.group; import java.util.ArrayList; import java.util.List; import javax.faces.model.SelectItem; public class GroupDefinitionLibraryUIBean { private SelectItem[] groupedItems; private SelectItem[] simpleItems; public SelectItem getGroupedItemLabel() { SelectItem groupedItemLabel = new SelectItem("grouped", "One group for every..."); groupedItemLabel.setDisabled(true); return groupedItemLabel; } public SelectItem[] getGroupedItems() { if (groupedItems == null) { List<SelectItem> list = new ArrayList<SelectItem>(); add(list, "JBossAS clusters in the system", "groupby resource.trait[partitionName]", "resource.type.plugin = JBossAS", "resource.type.name = JBossAS Server"); add(list, "Clustered enterprise application archive (EAR)", "groupby resource.parent.trait[partitionName]", "groupby resource.name", "resource.type.plugin = JBossAS", "resource.type.name = Enterprise Application (EAR)"); add(list, "Unique JBossAS versions in inventory", "groupby resource.trait[jboss.system:type=Server:VersionName]", "resource.type.plugin = JBossAS", "resource.type.name = JBossAS Server"); add(list, "Platform resource in inventory", "resource.type.category = PLATFORM", "groupby resource.name"); add(list, "Unique resource type in inventory", "groupby resource.type.plugin", "groupby resource.type.name"); groupedItems = list.toArray(new SelectItem[list.size()]); } return groupedItems; } public SelectItem getSimpleItemLabel() { SelectItem simpleItemLabel = new SelectItem("simple", "Exactly one group containing..."); simpleItemLabel.setDisabled(true); return simpleItemLabel; } public SelectItem[] getSimpleItems() { if (simpleItems == null) { List<SelectItem> list = new ArrayList<SelectItem>(); add(list, "All JBossAS hosting any version of 'my' app", "resource.type.plugin = JBossAS", "resource.type.name = JBossAS Server", "resource.child.name.contains = my"); add(list, "All Non-secured JBossAS servers", "empty resource.pluginConfiguration[principal]", "resource.type.plugin = JBossAS", "resource.type.name = JBossAS Server"); add(list, "All resources currently down", "resource.availability = DOWN"); simpleItems = list.toArray(new SelectItem[list.size()]); } return simpleItems; } private void add(List<SelectItem> items, String label, String... expressions) { StringBuilder builder = new StringBuilder(); int i = 0; for (String expression : expressions) { if (i++ != 0) { builder.append(";"); } builder.append(expression); } SelectItem result = new SelectItem(builder.toString(), " - " + label); items.add(result); } }