/*******************************************************************************
* Copyright (c) 2009 STMicroelectronics.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.gprof.view.histogram;
import java.util.LinkedList;
import org.eclipse.linuxtools.internal.gprof.symbolManager.Bucket;
/**
* Tree node corresponding to a line
*
* @author Xavier Raynaud <xavier.raynaud@st.com>
*/
public class HistLine extends AbstractTreeElement {
public final int line;
private final LinkedList<HistBucket> children = new LinkedList<>();
/**
* Constructor
* @param parent
* @param lineNumber
*/
public HistLine(HistFunction parent, int lineNumber) {
super(parent);
this.line = lineNumber;
}
void addBucket(Bucket b) {
this.children.add(new HistBucket(this,b));
}
@Override
public LinkedList<? extends TreeElement> getChildren() {
return this.children;
}
@Override
public int getCalls() {
return -1;
}
@Override
public String getName() {
String functionName = getParent().getName();
return functionName + " (" + getParent().getParent().getName() + ":" + this.line + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
@Override
public int getSamples() {
int ret = 0;
for (HistBucket b : children) {
ret += b.getSamples();
}
return ret;
}
@Override
public int getSourceLine() {
return this.line;
}
@Override
public String getSourcePath() {
return getParent().getParent().getSourcePath();
}
}