@Override Value createScheduleValue(Integer value) { return new IntegerValue(value); } };
@Override public Value createOgemaValue() { return new IntegerValue(value); }
/** * @see ValueResourceUtils#getSampledValues(float[], long[]) */ public static List<SampledValue> getSampledValues(int[] values, long[] timestamps) { if (values.length != timestamps.length) throw new IllegalArgumentException("Array length must coincide. Got length " + values.length + " and " + timestamps.length); List<SampledValue> v = new ArrayList<>(); for (int i=0;i<values.length;i++) { v.add(new SampledValue(new IntegerValue(values[i]), timestamps[i], Quality.GOOD)); } return v; }
@Override SampledValue createValue(long time) { return new SampledValue(new IntegerValue(el.getData().getInt()), time, Quality.GOOD); }
/** * Create a {@link Value} from a {@link Number}. * @param value * either a {@link Float}, {@link Double}, {@link Integer}, {@link Long}, {@link Short} or {@link Byte}. * @throws IllegalArgumentException * if <tt>value</tt> is not of admissible type * @return */ public static Value createValue(final Number value) throws IllegalArgumentException { if (value instanceof Float) { final float f = value.floatValue(); return f == 0F ? FloatValue.ZERO : Float.isNaN(f) ? FloatValue.NAN : new FloatValue(f); } if (value instanceof Integer || value instanceof Short) return new IntegerValue(value.intValue()); if (value instanceof Long) return new LongValue(value.longValue()); if (value instanceof Double) return new DoubleValue(value.doubleValue()); if (value instanceof Byte) return new ByteArrayValue(new byte[]{value.byteValue()}); throw new IllegalArgumentException("Value type " + value.getClass() + " not supported"); }
private static Value transformBack(SingleValueResource in, float factor, float offset) { final Object value = ValueResourceUtils.getValue((ValueResource) in); if (in instanceof FloatResource) return new FloatValue(((float) value - offset) / factor); else if (in instanceof IntegerResource) return new IntegerValue(((int) value - (int) offset) / ((int) factor)); else if (in instanceof TimeResource) return new LongValue(((long) value - (long) offset) / ((long) factor)); else if (in instanceof BooleanResource) return new BooleanValue((boolean) value && (factor >= 0)); else throw new IllegalArgumentException("Unsupported resource type " + in.getResourceType().getName()); }
private List<SampledValue> getIntegerValues() { assert baseElement.isVirtual() || !((VirtualTreeElement) m_values).isVirtual() : "Schedule state inconsistent"; final long[] times = m_times.getData().getLongArr(); final int[] values = m_values.getData().getIntArr(); final int[] qualities = m_qualities.getData().getIntArr(); List<SampledValue> result = new ArrayList<>(values.length); for (int i = 0; i < values.length; ++i) { final int v = values[i]; final long t = times[i]; final Quality q = Quality.getQuality(qualities[i]); result.add(new SampledValue(new IntegerValue(v), t, q)); } return result; }
AtomicReference<Integer> i = new AtomicReference<>(); manager.getValueAsInt(valueid, i); return new IntegerValue(i.get()); case LIST: throw new UnsupportedOperationException(); AtomicReference<Short> s = new AtomicReference<>(); manager.getValueAsShort(valueid, s); return new IntegerValue(s.get()); case STRING: AtomicReference<String> ss = new AtomicReference<>();
final void resourceChanged(final long t, final SingleValueResource resource) { final Value v; if (resource instanceof FloatResource) v = new FloatValue(((FloatResource) resource).getValue()); else if (resource instanceof IntegerResource) v = new IntegerValue(((IntegerResource) resource).getValue()); else if (resource instanceof BooleanResource) v = new BooleanValue(((BooleanResource) resource).getValue()); else if (resource instanceof TimeResource) v = new LongValue(((TimeResource) resource).getValue()); else throw new IllegalArgumentException(); values.add(new SampledValue(v, t, Quality.GOOD)); }
Value getValue(N value) { if (value == null) value = getNullReplacement(); if (type == Float.class) return new FloatValue((Float) value); if (type == Integer.class) return new IntegerValue((Integer) value); if (type == Long.class) return new LongValue((Long) value); if (type == String.class) { return new StringValue((String) value); } return new FloatValue((Float) value); }
@Override public Value integrate(SampledValue x0, SampledValue x1, Class<? extends Value> valueType) { final long dt = x1.getTimestamp() - x0.getTimestamp(); final boolean emptyDomain = (dt == 0 || x0.getQuality() == Quality.BAD || x1.getQuality() == Quality.BAD); final Value value = x0.getValue(); if (value instanceof FloatValue || value instanceof DoubleValue || value instanceof BooleanValue) { if (emptyDomain) { return new FloatValue(0.f); } return new FloatValue(value.getFloatValue() * dt); } if (value instanceof LongValue) { if (emptyDomain) { return new LongValue(0L); } return new LongValue(value.getLongValue() * dt); } if (value instanceof IntegerValue) { if (emptyDomain) { return new IntegerValue(0); } return new IntegerValue((int) (value.getIntegerValue() * dt)); } throw new IllegalArgumentException("Cannot integrate a function with non-numerical value type " + value.getClass().getCanonicalName()); }
public static Value getValue(SingleValueResource resource) { if (resource instanceof FloatResource) { return new FloatValue(((FloatResource) resource).getValue()); } else if (resource instanceof IntegerResource) { return new IntegerValue(((IntegerResource) resource).getValue()); } else if (resource instanceof BooleanResource) { return new BooleanValue(((BooleanResource) resource).getValue()); } else if (resource instanceof TimeResource) { return new LongValue(((TimeResource) resource).getValue()); } else throw new RuntimeException(); }
private static Value transform(Value in, float factor, float offset) { if (in instanceof FloatValue) return new FloatValue(in.getFloatValue() * factor + offset); else if (in instanceof IntegerValue) return new IntegerValue(in.getIntegerValue() * ((int) factor) + (int) offset); // problematic... else if (in instanceof LongValue) return new LongValue(in.getLongValue() * ((long) factor) + (long) offset);// problematic... else if (in instanceof BooleanValue) return new BooleanValue(in.getBooleanValue() && (factor >= 0)); else return in; }
@Override public Value integrate(SampledValue x0, SampledValue x1, Class<? extends Value> valueType) { final long dt = x1.getTimestamp() - x0.getTimestamp(); final boolean emptyDomain = (dt == 0 || x0.getQuality() == Quality.BAD || x1.getQuality() == Quality.BAD); final Value v0 = x0.getValue(); final Value v1 = x1.getValue(); if (v0 instanceof FloatValue || v0 instanceof DoubleValue || v0 instanceof BooleanValue) { if (emptyDomain) return new FloatValue(0.f); return new FloatValue(0.5f * (v0.getFloatValue() + v1.getFloatValue()) * dt); } if (v0 instanceof LongValue) { if (emptyDomain) return new LongValue(0L); return new LongValue((v0.getLongValue() + v1.getLongValue()) * dt / 2); } if (v0 instanceof IntegerValue) { if (emptyDomain) return new IntegerValue(0); return new IntegerValue((int) ((v0.getIntegerValue() + v1.getIntegerValue()) * dt / 2)); } throw new IllegalArgumentException("Cannot integrate a function with non-numerical value type " + v0.getClass().getCanonicalName()); }
private SampledValue interpolateInt(SampledValue x0, SampledValue x1, long t) { final long t0 = x0.getTimestamp(); if (t == t0) { return new SampledValue(x0.getValue(), x0.getTimestamp(), x0.getQuality()); } final long t1 = x1.getTimestamp(); if (t == t1) { return new SampledValue(x1.getValue(), x1.getTimestamp(), x1.getQuality()); } final int y0 = x0.getValue().getIntegerValue(); final int y1 = x1.getValue().getIntegerValue(); final float inv_dt = 1.f / (float) (t1 - t0); final float relDist = ((float) (t - t0)) * inv_dt; final int y = y0 + (int) (relDist * (y1 - y0)); final Quality q0 = x0.getQuality(); final Quality q1 = x1.getQuality(); final Quality quality = (q0 == Quality.GOOD && q1 == Quality.GOOD) ? Quality.GOOD : Quality.BAD; return new SampledValue(new IntegerValue(y), t, quality); }