blob: 03bd32381dec170d2ff0fb864f188469f04c1544 [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2017, 2018 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.tracecompass.tmf.core.model.timegraph;
import java.util.Collections;
import java.util.List;
import org.eclipse.tracecompass.tmf.core.model.tree.TmfTreeDataModel;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
/**
* Implementation of {@link ITimeGraphEntryModel}.
*
* @author Simon Delisle
* @since 4.0
*/
public class TimeGraphEntryModel extends TmfTreeDataModel implements ITimeGraphEntryModel {
private final long fStartTime;
private final long fEndTime;
private final boolean fHasRowModel;
private Multimap<String, Object> fMetaData = HashMultimap.create();
/**
* Constructor
*
* @param id
* Entry ID
* @param parentId
* Parent ID
* @param name
* Entry name to be displayed
* @param startTime
* Start time
* @param endTime
* End time
*/
public TimeGraphEntryModel(long id, long parentId, String name, long startTime, long endTime) {
this(id, parentId, Collections.singletonList(name), startTime, endTime, true);
}
/**
* Constructor
*
* @param id
* Entry ID
* @param parentId
* Parent ID
* @param name
* Entry name to be displayed
* @param startTime
* Start time
* @param endTime
* End time
* @param hasRowModel
* true if the entry has a row model
*/
public TimeGraphEntryModel(long id, long parentId, String name, long startTime, long endTime, boolean hasRowModel) {
this(id, parentId, Collections.singletonList(name), startTime, endTime, hasRowModel);
}
/**
* Constructor
*
* @param id
* Entry ID
* @param parentId
* Parent ID
* @param labels
* Entry labels to be displayed
* @param startTime
* Start time
* @param endTime
* End time
* @since 5.0
*/
public TimeGraphEntryModel(long id, long parentId, List<String> labels, long startTime, long endTime) {
this(id, parentId, labels, startTime, endTime, true);
}
/**
* Constructor
*
* @param id
* Entry ID
* @param parentId
* Parent ID
* @param labels
* Entry labels to be displayed
* @param startTime
* Start time
* @param endTime
* End time
* @param hasRowModel
* true if the entry has a row model
* @since 5.0
*/
public TimeGraphEntryModel(long id, long parentId, List<String> labels, long startTime, long endTime, boolean hasRowModel) {
super(id, parentId, labels);
fStartTime = startTime;
fEndTime = endTime;
fHasRowModel = hasRowModel;
}
@Override
public long getStartTime() {
return fStartTime;
}
@Override
public long getEndTime() {
return fEndTime;
}
@Override
public boolean hasRowModel() {
return fHasRowModel;
}
@Override
public Multimap<String, Object> getMetadata() {
return fMetaData;
}
@Override
public String toString() {
return "<name=" + getLabels() + " id=" + getId() + " parentId=" + getParentId() //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ " start=" + fStartTime + " end=" + fEndTime + " hasRowModel=" + hasRowModel() + ">"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}