001    package jp.osdl.jbento2.analyzer;
002    
003    import java.util.ArrayList;
004    import java.util.Collections;
005    import java.util.Iterator;
006    import java.util.List;
007    import java.util.TreeSet;
008    
009    
010    public class SampleUtils {
011    
012        public static Time getMinStartTime(SampleList samples) {
013            TreeSet ts = new TreeSet();
014            for (Iterator it = samples.iterator(); it.hasNext(); ) {
015                Sample sample = (Sample)it.next();
016                ts.add(sample.getStartTime());
017            }
018            if (ts.isEmpty()) {
019                return Time.ZERO;
020            }
021            return (Time)ts.first();
022        }
023    
024        public static Time getMaxStartTime(SampleList samples) {
025            TreeSet ts = new TreeSet();
026            for (Iterator it = samples.iterator(); it.hasNext(); ) {
027                Sample sample = (Sample)it.next();
028                ts.add(sample.getStartTime());
029            }
030            if (ts.isEmpty()) {
031                return Time.ZERO;
032            }
033            return (Time)ts.last();
034        }
035    
036        public static Time getMinEndTime(SampleList samples) {
037            TreeSet ts = new TreeSet();
038            for (Iterator it = samples.iterator(); it.hasNext(); ) {
039                Sample sample = (Sample)it.next();
040                ts.add(sample.getEndTime());
041            }
042            if (ts.isEmpty()) {
043                return Time.ZERO;
044            }
045            return (Time)ts.first();
046        }
047    
048        public static Time getMaxEndTime(SampleList samples) {
049            TreeSet ts = new TreeSet();
050            for (Iterator it = samples.iterator(); it.hasNext(); ) {
051                Sample sample = (Sample)it.next();
052                ts.add(sample.getEndTime());
053            }
054            if (ts.isEmpty()) {
055                return Time.ZERO;
056            }
057            return (Time)ts.last();
058        }
059    
060        public static Time[] getStartTimes(SampleList samples) {
061            Time[] result = new Time[samples.size()];
062            for (int i = 0; i < result.length; i++) {
063                result[i] = samples.get(i).getStartTime();
064            }
065            return result;
066        }
067    
068        public static Time[] getEndTimes(SampleList samples) {
069            Time[] result = new Time[samples.size()];
070            for (int i = 0; i < result.length; i++) {
071                result[i] = samples.get(i).getEndTime();
072            }
073            return result;
074        }
075    
076        public static String[] getRequestTypes(SampleList samples) {
077            List result = new ArrayList();
078            for (Iterator it = samples.iterator(); it.hasNext(); ) {
079                Sample sample = (Sample)it.next();
080                if (!result.contains(sample.getRequestType())) {
081                    result.add(sample.getRequestType());
082                }
083            }
084            Collections.sort(result);
085            return (String[])result.toArray(new String[result.size()]);
086        }
087    
088        public static SampleList select(SampleList samples, String requestType) {
089            SampleList result = new SampleList();
090            for (Iterator it = samples.iterator(); it.hasNext(); ) {
091                Sample sample = (Sample)it.next();
092                if (requestType.equals(sample.getRequestType())) {
093                    result.add(sample);
094                }
095            }
096            return result;
097        }
098    
099    }