Search in sources :

Example 6 with VTable

use of org.diirt.vtype.VTable in project yamcs-studio by yamcs.

the class ColumnOfVTableFunction method calculate.

@Override
public Object calculate(final List<Object> args) {
    VTable table = (VTable) args.get(0);
    VString columnName = (VString) args.get(1);
    if (columnName == null || table == null) {
        return null;
    }
    int index = -1;
    for (int i = 0; i < table.getColumnCount(); i++) {
        if (Objects.equals(columnName.getValue(), table.getColumnName(i))) {
            index = i;
        }
    }
    if (index == -1) {
        throw new RuntimeException("Table does not contain column '" + columnName.getValue() + "'");
    }
    Class<?> type = table.getColumnType(index);
    if (String.class.isAssignableFrom(type)) {
        @SuppressWarnings("unchecked") List<String> data = (List<String>) table.getColumnData(index);
        return ValueFactory.newVStringArray(data, ValueFactory.alarmNone(), ValueFactory.timeNow());
    }
    if (Double.TYPE.isAssignableFrom(type)) {
        ListDouble data = (ListDouble) table.getColumnData(index);
        return ValueFactory.newVDoubleArray(data, ValueFactory.alarmNone(), ValueFactory.timeNow(), ValueFactory.displayNone());
    }
    if (Integer.TYPE.isAssignableFrom(type)) {
        ListInt data = (ListInt) table.getColumnData(index);
        return ValueFactory.newVIntArray(data, ValueFactory.alarmNone(), ValueFactory.timeNow(), ValueFactory.displayNone());
    }
    throw new RuntimeException("Unsupported type " + type.getSimpleName());
}
Also used : ListInt(org.diirt.util.array.ListInt) VString(org.diirt.vtype.VString) VTable(org.diirt.vtype.VTable) List(java.util.List) ListDouble(org.diirt.util.array.ListDouble) VString(org.diirt.vtype.VString)

Example 7 with VTable

use of org.diirt.vtype.VTable in project yamcs-studio by yamcs.

the class TableRangeFilterFunction method calculate.

@Override
public Object calculate(final List<Object> args) {
    VTable table = (VTable) args.get(0);
    VString columnName = (VString) args.get(1);
    VType min = (VType) args.get(2);
    VType max = (VType) args.get(3);
    if (columnName == null || columnName.getValue() == null || table == null || min == null || max == null) {
        return null;
    }
    VTable result = VTableFactory.tableRangeFilter(table, columnName.getValue(), min, max);
    return result;
}
Also used : VType(org.diirt.vtype.VType) VString(org.diirt.vtype.VString) VTable(org.diirt.vtype.VTable)

Example 8 with VTable

use of org.diirt.vtype.VTable in project yamcs-studio by yamcs.

the class TableStringMatchFilterFunction method calculate.

@Override
public Object calculate(final List<Object> args) {
    VTable table = (VTable) args.get(0);
    VString columnName = (VString) args.get(1);
    VString substring = (VString) args.get(2);
    if (columnName == null || columnName.getValue() == null || table == null || substring == null) {
        return null;
    }
    VTable result = VTableFactory.tableStringMatchFilter(table, columnName.getValue(), substring.getValue());
    return result;
}
Also used : VString(org.diirt.vtype.VString) VTable(org.diirt.vtype.VTable)

Example 9 with VTable

use of org.diirt.vtype.VTable in project yamcs-studio by yamcs.

the class TableUnionFunction method calculate.

@Override
public Object calculate(final List<Object> args) {
    VString columnName = (VString) args.get(0);
    VStringArray columnValues = (VStringArray) args.get(1);
    List<VTable> tables = new ArrayList<>();
    for (int i = 2; i < args.size(); i++) {
        Object object = args.get(i);
        tables.add((VTable) object);
    }
    return VTableFactory.union(columnName, columnValues, tables.toArray(new VTable[tables.size()]));
}
Also used : VString(org.diirt.vtype.VString) VTable(org.diirt.vtype.VTable) ArrayList(java.util.ArrayList) VStringArray(org.diirt.vtype.VStringArray)

Aggregations

VString (org.diirt.vtype.VString)9 VTable (org.diirt.vtype.VTable)9 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)2 List (java.util.List)2 Map (java.util.Map)2 ArrayInt (org.diirt.util.array.ArrayInt)2 ListInt (org.diirt.util.array.ListInt)2 ListNumber (org.diirt.util.array.ListNumber)2 VType (org.diirt.vtype.VType)2 AbstractList (java.util.AbstractList)1 Range (org.diirt.util.Range)1 Statistics (org.diirt.util.Statistics)1 BufferInt (org.diirt.util.array.BufferInt)1 ListDouble (org.diirt.util.array.ListDouble)1 VNumberArray (org.diirt.vtype.VNumberArray)1 VStringArray (org.diirt.vtype.VStringArray)1