f4dc2016c8f58a789334e9a7ee5d8a15e1283ba3
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.lami.core / src / org / eclipse / tracecompass / internal / provisional / analysis / lami / core / aspect / LamiIRQNameAspect.java
1 /*******************************************************************************
2 * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
9
10 package org.eclipse.tracecompass.internal.provisional.analysis.lami.core.aspect;
11
12 import java.util.Comparator;
13
14 import org.eclipse.jdt.annotation.Nullable;
15 import org.eclipse.tracecompass.internal.provisional.analysis.lami.core.module.LamiTableEntry;
16 import org.eclipse.tracecompass.internal.provisional.analysis.lami.core.types.LamiData;
17 import org.eclipse.tracecompass.internal.provisional.analysis.lami.core.types.LamiIRQ;
18
19 /**
20 * Aspect for the IRQ handler names.
21 *
22 * This resolves the interrupt handler name, (like i915) from a given table
23 * entry.
24 *
25 * @author Philippe Proulx
26 */
27 public class LamiIRQNameAspect extends LamiTableEntryAspect {
28
29 private final int fColIndex;
30
31 /**
32 * Constructor
33 *
34 * @param colName
35 * Column name
36 * @param colIndex
37 * Column index
38 */
39 public LamiIRQNameAspect(String colName, int colIndex) {
40 super(colName + " (" + Messages.LamiAspect_Name +')', null); //$NON-NLS-1$
41 fColIndex = colIndex;
42 }
43
44 @Override
45 public boolean isContinuous() {
46 return false;
47 }
48
49 @Override
50 public boolean isTimeStamp() {
51 return false;
52 }
53
54 @Override
55 public @Nullable String resolveString(LamiTableEntry entry) {
56 LamiData data = entry.getValue(fColIndex);
57 if (data instanceof LamiIRQ) {
58 return ((LamiIRQ) data).getName();
59 }
60 /* Could be null, unknown, etc. */
61 return data.toString();
62 }
63
64 @Override
65 public @Nullable Double resolveDouble(LamiTableEntry entry) {
66 return null;
67 }
68
69 @Override
70 public Comparator<LamiTableEntry> getComparator() {
71 return (o1, o2) -> {
72 String s1 = resolveString(o1);
73 String s2 = resolveString(o2);
74
75 if (s1 == null || s2 == null) {
76 return 0;
77 }
78
79 return s1.compareTo(s2);
80 };
81 }
82
83 }
This page took 0.038239 seconds and 4 git commands to generate.