package com.intrbiz.bergamot.model; import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.TreeMap; /** * A grouping of checks by category and then application */ public class Category<T> { private String name; private List<T> checks = new LinkedList<T>(); private Map<String, Application<T>> applications = new TreeMap<String, Application<T>>(); public Category(String name) { super(); this.name = name; } public String getName() { return name; } public Collection<T> getChecks() { return checks; } public void addCheck(T check) { this.checks.add(check); } public Collection<Application<T>> getApplications() { return applications.values(); } public Application<T> getOrAddApplication(String name) { Application<T> application = this.applications.get(name.toLowerCase()); if (application == null) { application = new Application<T>(name); this.applications.put(name.toLowerCase(), application); } return application; } }