use of org.eclipse.tracecompass.internal.provisional.analysis.lami.core.aspect.LamiTimestampAspect in project tracecompass by tracecompass.
the class LamiAspectTest method lamiTimestampAspectTest.
/**
* Test the timestamp aspect
*
* @throws JSONException
* won't happen
*/
@Test
public void lamiTimestampAspectTest() throws JSONException {
LamiTableEntryAspect aspect = new LamiTimestampAspect(ASPECT_NAME, 0);
LamiTableEntry entry1 = createLamiData(1);
LamiTableEntry entry2 = createLamiData(2);
assertEquals(ASPECT_NAME, aspect.getLabel());
assertEquals(ASPECT_NAME, aspect.getName());
assertEquals(0, aspect.getComparator().compare(entry1, entry2));
assertNull(aspect.resolveString(entry1));
assertNull(aspect.resolveNumber(entry1));
}
use of org.eclipse.tracecompass.internal.provisional.analysis.lami.core.aspect.LamiTimestampAspect in project tracecompass by tracecompass.
the class LamiAspectTest method testAspectEquality.
/**
* Test the equivalence of aspects, for aggregating in views.
*/
@Test
public void testAspectEquality() {
LamiTableEntryAspect aspect1 = new LamiTimestampAspect(ASPECT_NAME, 0);
LamiTableEntryAspect aspect2 = new LamiTimeRangeEndAspect(ASPECT_NAME, 5);
LamiTableEntryAspect aspect3 = new LamiProcessTIDAspect(ASPECT_NAME, 0);
assertTrue(aspect1.arePropertiesEqual(aspect1));
assertTrue(aspect1.arePropertiesEqual(aspect2));
assertFalse(aspect1.arePropertiesEqual(aspect3));
assertTrue(aspect2.arePropertiesEqual(aspect1));
assertTrue(aspect2.arePropertiesEqual(aspect2));
assertFalse(aspect2.arePropertiesEqual(aspect3));
assertFalse(aspect3.arePropertiesEqual(aspect1));
assertFalse(aspect3.arePropertiesEqual(aspect2));
assertTrue(aspect3.arePropertiesEqual(aspect3));
}
use of org.eclipse.tracecompass.internal.provisional.analysis.lami.core.aspect.LamiTimestampAspect in project tracecompass by tracecompass.
the class LamiAnalysis method getAspectsFromColumnDescriptions.
private static List<LamiTableEntryAspect> getAspectsFromColumnDescriptions(JSONArray columnDescriptions) throws JSONException {
ImmutableList.Builder<LamiTableEntryAspect> aspectsBuilder = new ImmutableList.Builder<>();
for (int j = 0; j < columnDescriptions.length(); j++) {
JSONObject column = columnDescriptions.getJSONObject(j);
DataType columnDataType;
String columnClass = column.optString(LamiStrings.CLASS, null);
if (columnClass == null) {
columnDataType = DataType.MIXED;
} else {
columnDataType = getDataTypeFromString(columnClass);
}
String columnTitle = column.optString(LamiStrings.TITLE, null);
if (columnTitle == null) {
// $NON-NLS-1$
columnTitle = String.format("%s #%d", columnDataType.getTitle(), j + 1);
}
final int colIndex = j;
switch(columnDataType) {
case TIME_RANGE:
/*
* We will add 3 aspects, to represent the start, end and
* duration of this time range.
*/
aspectsBuilder.add(new LamiTimeRangeBeginAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiTimeRangeEndAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiTimeRangeDurationAspect(columnTitle, colIndex));
break;
case TIMESTAMP:
aspectsBuilder.add(new LamiTimestampAspect(columnTitle, colIndex));
break;
case PROCESS:
aspectsBuilder.add(new LamiProcessNameAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiProcessPIDAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiProcessTIDAspect(columnTitle, colIndex));
break;
case IRQ:
aspectsBuilder.add(new LamiIRQTypeAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiIRQNameAspect(columnTitle, colIndex));
aspectsBuilder.add(new LamiIRQNumberAspect(columnTitle, colIndex));
break;
case DURATION:
aspectsBuilder.add(new LamiDurationAspect(columnTitle, colIndex));
break;
case MIXED:
aspectsBuilder.add(new LamiMixedAspect(columnTitle, colIndex));
break;
// $CASES-OMITTED$
default:
String units = column.optString(LamiStrings.UNIT, null);
if (units == null) {
units = columnDataType.getUnits();
}
/* We will add only one aspect representing the element */
LamiTableEntryAspect aspect = new LamiGenericAspect(columnTitle, units, colIndex, columnDataType.isContinuous(), false);
aspectsBuilder.add(aspect);
break;
}
}
/*
* SWT quirk : we need an empty column at the end or else the last data
* column will clamp to the right edge of the view if it is
* right-aligned.
*/
aspectsBuilder.add(LamiEmptyAspect.INSTANCE);
return aspectsBuilder.build();
}
Aggregations