@Override public final Object calculate(List<Object> args) { VNumber arg = (VNumber) args.get(0); if (arg == null) { return null; } return ValueFactory.newVDouble(calculate(arg.getValue().doubleValue()), arg, arg, ValueFactory.displayNone()); }
@Override public VMultiDouble readValue() { Instant reference = electReferenceTimeStamp(collectors); if (reference == null) return null; TimeInterval allowedInterval = TimeInterval.around(tolerance, reference); List<VDouble> values = new ArrayList<VDouble>(collectors.size()); StringBuilder buffer = new StringBuilder(); for (ReadFunction<List<VDouble>> collector : collectors) { List<VDouble> data = collector.readValue(); if (log.isLoggable(Level.FINE)) { buffer.append(data.size()).append(", "); } VDouble value = closestElement(data, allowedInterval, reference); values.add(value); } if (log.isLoggable(Level.FINE)) { log.fine(buffer.toString()); } return ValueFactory.newVMultiDouble(values, ValueFactory.alarmNone(), ValueFactory.newTime(reference), ValueFactory.displayNone()); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); VNumber index = (VNumber) args.get(1); int i = index.getValue().intValue(); return newVNumber(numberArray.getData().getDouble(i), numberArray, numberArray, displayNone()); }
@Override public final Object calculate(List<Object> args) { Object arg1 = args.get(0); Object arg2 = args.get(1); if (arg1 == null || arg2 == null) { return null; } Alarm alarm = ValueUtil.highestSeverityOf(args, false); Time time = ValueUtil.latestTimeOf(args); if (time == null) { time = ValueFactory.timeNow(); } return ValueFactory.newVDouble( calculate(((VNumber) args.get(0)).getValue().doubleValue(), ((VNumber) args.get(1)).getValue().doubleValue()) , alarm, time, ValueFactory.displayNone()); }
/** * A constant representing an int. Alarm will be none, timestamp now * and no display information. * * @param value the constant value * @return an int expression */ public static DesiredRateExpression<VInt> vConst(int value) { return constant(newVInt(value, alarmNone(), timeNow(), displayNone()), Integer.toString(value)); }
@Override public Object calculate(final List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray arg1 = (VNumberArray) args.get(0); VNumber arg2 = (VNumber) args.get(1); VNumber arg3 = (VNumber) args.get(2); return newVNumberArray( ListMath.rescale(arg1.getData(), arg2.getValue().doubleValue(), arg3.getValue().doubleValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); } }
/** * A constant representing a double. Alarm will be none, timestamp now * and no display information. * * @param value the constant value * @return a double expression */ public static DesiredRateExpression<VDouble> vConst(double value) { return constant(newVDouble(value, alarmNone(), timeNow(), displayNone()), Double.toString(value)); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray arg1 = (VNumberArray) args.get(0); VNumber arg2 = (VNumber) args.get(1); return newVNumberArray( calculate(arg1.getData(), arg2.getValue().doubleValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumber arg1 = (VNumber) args.get(0); VNumberArray arg2 = (VNumberArray) args.get(1); return newVNumberArray( calculate(arg1.getValue().doubleValue(), arg2.getData()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); int fromIndex = ((VNumber) args.get(1)).getValue().intValue(); int toIndex = ((VNumber) args.get(2)).getValue().intValue(); return newVNumberArray( ListMath.limit(numberArray.getData(), fromIndex, toIndex), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } // args[0] is a VEnum VEnum value = (VEnum) args.get(0); return newVInt(value.getIndex(), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } Number arg1 = ((VNumber) args.get(0)).getValue(); Number arg2 = ((VNumber) args.get(1)).getValue(); if (arg1 instanceof Float || arg2 instanceof Float || arg1 instanceof Double || arg2 instanceof Double) { throw new IllegalArgumentException("Operator '" + getName() + "' only works with integers"); } return newVInt( calculate(arg1.intValue(), arg2.intValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
/** * A constant representing a double array. Alarm will be none, timestamp now * and no display information. * * @param values the constant values * @return a double array expression */ public static DesiredRateExpression<VDoubleArray> vConst(ListDouble values) { return constant(newVDoubleArray(values, alarmNone(), timeNow(), displayNone())); }
/** * A constant representing an int array. Alarm will be none, timestamp now * and no display information. * * @param values the constant values * @return an int array expression */ public static DesiredRateExpression<VIntArray> vConst(ListInt values) { return constant(newVIntArray(values, alarmNone(), timeNow(), displayNone())); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray arg1 = (VNumberArray) args.get(0); VNumberArray arg2 = (VNumberArray) args.get(1); return newVNumberArray( calculate(arg1.getData(), arg2.getData()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
/** * A constant representing a double array. Alarm will be none, timestamp now * and no display information. * * @param values the constant values * @return a double array expression */ public static DesiredRateExpression<VDoubleArray> vConst(double... values) { return constant(newVDoubleArray(new ArrayDouble(values), alarmNone(), timeNow(), displayNone())); }
/** * A constant representing an int array. Alarm will be none, timestamp now * and no display information. * * @param values the constant values * @return an int array expression */ public static DesiredRateExpression<VIntArray> vConst(int... values) { return constant(newVIntArray(new ArrayInt(values), alarmNone(), timeNow(), displayNone())); }
/** * A list of constant expressions of type VDouble. * * @param values the list of constants * @return a list of int expression */ public static DesiredRateExpressionList<VInt> vIntConstants(List<Integer> values) { DesiredRateExpressionList<VInt> list = new DesiredRateExpressionListImpl<VInt>(); for (Integer value : values) { list.and(constant(newVInt(value, alarmNone(), timeNow(), displayNone()))); } return list; }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); double min = numberArray.getDimensionDisplay().get(0).getCellBoundaries().getDouble(0); double max = numberArray.getDimensionDisplay().get(0).getCellBoundaries().getDouble(numberArray.getSizes().getInt(0)); return newVNumberArray( new ArrayDouble(min, max), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
/** * A list of constant expressions of type VDouble. * * @param values the list of constants * @return a list of double expression */ public static DesiredRateExpressionList<VDouble> vDoubleConstants(List<Double> values) { DesiredRateExpressionList<VDouble> list = new DesiredRateExpressionListImpl<VDouble>(); for (Double value : values) { list.and(constant(newVDouble(value, alarmNone(), timeNow(), displayNone()))); } return list; }