1 32 33 package com.jeantessier.metrics; 34 35 import java.util.*; 36 37 import org.apache.oro.text.perl.*; 38 39 import com.jeantessier.text.*; 40 41 public class MetricsConfiguration { 42 private static final Perl5Util perl = new Perl5Util(new MaximumCapacityPatternCache()); 43 44 private List projectMeasurements = new LinkedList(); 45 private List groupMeasurements = new LinkedList(); 46 private List classMeasurements = new LinkedList(); 47 private List methodMeasurements = new LinkedList(); 48 private Map groupDefinitions = new HashMap(); 49 50 public List getProjectMeasurements() { 51 return Collections.unmodifiableList(projectMeasurements); 52 } 53 54 public void addProjectMeasurement(MeasurementDescriptor descriptor) { 55 projectMeasurements.add(descriptor); 56 } 57 58 public List getGroupMeasurements() { 59 return Collections.unmodifiableList(groupMeasurements); 60 } 61 62 public void addGroupMeasurement(MeasurementDescriptor descriptor) { 63 groupMeasurements.add(descriptor); 64 } 65 66 public List getClassMeasurements() { 67 return Collections.unmodifiableList(classMeasurements); 68 } 69 70 public void addClassMeasurement(MeasurementDescriptor descriptor) { 71 classMeasurements.add(descriptor); 72 } 73 74 public List getMethodMeasurements() { 75 return Collections.unmodifiableList(methodMeasurements); 76 } 77 78 public void addMethodMeasurement(MeasurementDescriptor descriptor) { 79 methodMeasurements.add(descriptor); 80 } 81 82 public void addGroupDefinition(String name, String pattern) { 83 Collection bucket = (Collection) groupDefinitions.get(name); 84 85 if (bucket == null) { 86 bucket = new LinkedList(); 87 groupDefinitions.put(name, bucket); 88 } 89 90 bucket.add(pattern); 91 } 92 93 public Collection getGroups(String name) { 94 Collection result = new HashSet(); 95 96 Iterator i = groupDefinitions.keySet().iterator(); 97 while (i.hasNext()) { 98 String key = (String ) i.next(); 99 100 if (groupDefinitions.get(key) != null) { 101 Iterator j = ((Collection) groupDefinitions.get(key)).iterator(); 102 while (j.hasNext()) { 103 if (perl.match((String ) j.next(), name)) { 104 result.add(key); 105 } 106 } 107 } 108 } 109 110 return result; 111 } 112 } 113 | Popular Tags |