From: Lukas P. <pe...@us...> - 2002-08-31 08:40:37
|
Update of /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/data In directory usw-pr-cvs1:/tmp/cvs-serv2629 Modified Files: BacktraceSupport.java Added Files: MergeFrameData.java Log Message: better design of backtrace --- NEW FILE: MergeFrameData.java --- /* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"); you may not use this file except * in compliance with the License. A copy of the License is available * at http://www.sun.com/ * * The Original Code is the Java Profiler module. The Initial Developers * of the Original Code are Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. * * Portions created by Jan Stola are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Pavel Vacha are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Michal Pise are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Petr Luner are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Lukas Petru are Copyright (C) 2000-2001. * All Rights Reserved. * * Portions created by Marek Przeczek are Copyright (C) 2000-2001. * All Rights Reserved. * * Contributors: Jan Stola, Pavel Vacha, Michal Pise, Petr Luner, * Lukas Petru and Marek Przeczek. */ package net.sourceforge.javaprofiler.module.data; import java.util.*; import net.sourceforge.javaprofiler.jpi.FrameRef; /** This class represents a group of <code>TraceRef</code> objects which share * the same frame at some trace level. Object of this class provides access to * the shared frame and to a list of merged traces. * @author Lukas Petru */ public class MergeFrameData { private final FrameRef frame; private final List traces; public MergeFrameData(FrameRef keyFrame, List tracesBucket) { frame=keyFrame; traces=tracesBucket; } public FrameRef getFrame() { return frame; } public List getTraces() { return traces; } } /* * $Log: MergeFrameData.java,v $ * Revision 1.1 2002/08/31 08:40:34 petrul * better design of backtrace * */ Index: BacktraceSupport.java =================================================================== RCS file: /cvsroot/javaprofiler/module/net/sourceforge/javaprofiler/module/data/BacktraceSupport.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** BacktraceSupport.java 23 Aug 2002 18:13:42 -0000 1.1 --- BacktraceSupport.java 31 Aug 2002 08:40:34 -0000 1.2 *************** *** 45,56 **** */ public class BacktraceSupport { ! /** Splits a list of <code>TraceRef</code> objects into a map which has ! * <code>FrameRef</code> of selected level as key and a list of traces ! * containing this frame as a value. * @param traces List of <code>TraceRef</code>. * @param level Has value 1 to N, where value 1 means last called method * and higher numbers mean callers. */ ! public static Map split(List traces, int level) { if (level < 1) throw new IllegalArgumentException(String.valueOf(level)); --- 45,56 ---- */ public class BacktraceSupport { ! /** Splits a list of <code>TraceRef</code> objects into a list of <code> ! * MergeFrameData</code>. The traces are split by frame of a selected ! * level. * @param traces List of <code>TraceRef</code>. * @param level Has value 1 to N, where value 1 means last called method * and higher numbers mean callers. */ ! public static List split(List traces, int level) { if (level < 1) throw new IllegalArgumentException(String.valueOf(level)); *************** *** 70,74 **** bucket.add(tr); } ! return map; } --- 70,82 ---- bucket.add(tr); } ! // convert map to MergeFrameData list ! List res=new ArrayList(); ! it=map.entrySet().iterator(); ! while (it.hasNext()) { ! java.util.Map.Entry entry=(java.util.Map.Entry) it.next(); ! res.add(new MergeFrameData((FrameRef) entry.getKey(), ! (List) entry.getValue())); ! } ! return res; } *************** *** 115,118 **** --- 123,129 ---- /* * $Log$ + * Revision 1.2 2002/08/31 08:40:34 petrul + * better design of backtrace + * * Revision 1.1 2002/08/23 18:13:42 petrul * added cpu backtrace view |