@Override protected String format(T resource, Locale locale) { String output; if (resource instanceof FloatResource) output = ValueResourceUtils.getValue((FloatResource) resource, 2); // default; override in derived class, if necessary // FIXME or use parameter? else output = ValueResourceUtils.getValue(resource); return output; };
protected void write(V resource, T value) { ValueResourceUtils.setValue(resource, value); }
/** * See {@link #interpolate(SampledValue, SampledValue, long, InterpolationMode, boolean)}. * The default value <tt>badQualityForUndefined = false</tt> is used here. * @param previous * @param next * @param t * @param mode * @return */ public static SampledValue interpolate(SampledValue previous, SampledValue next, long t, InterpolationMode mode) { return interpolate(previous, next, t, mode, false); }
int sz = getSize(array); if (idx < 0 || idx >= sz) return false; Object value = getValue(array); if (array instanceof IntegerArrayResource) { int[] values = (int[]) value; if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx); setValue(array, newValues); if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx); setValue(array, newValues); if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx); setValue(array, newValues); if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx); setValue(array, newValues); if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx); setValue(array, newValues); if (idx < sz-1) System.arraycopy(values, idx+1, newValues, idx, sz-1-idx);
@Override public JSONObject retrieveGETData(OgemaHttpRequest req) { writeLock(); try { List<String> ints; if (array == null || !array.exists()) { // update(Collections.<String> emptyList()); ints = Collections.<String> emptyList(); } else { String path = array.getPath(); int sz = ValueResourceUtils.getSize(array); ints = new ArrayList<>(); for (int i=0;i< Math.min(sz, 50);i++) { // TODO paging ints.add(path + "__" + i); } ints.add(path + "__" + sz); // we allow adding a field as well } update(ints); // this is the only part where it is important to have the resource path in the line id; // if the resource changes, this will remove old lines; if the id was only the index, this would fail return super.retrieveGETData(req); } finally { writeUnlock(); } }
@Override public Class<? extends Value> getValueType() { if (isMemoryTimeseries) return ((MemoryTimeSeries) input).getValueType(); if (input instanceof Schedule) return ValueResourceUtils.getValueType((Schedule) input); if (input instanceof RecordedData) return FloatValue.class; // best guess... we'd actually need a ResourceAccess to determine the resource type return null; }
/** * Shifts the values of a temperature schedule by 273.15 (from Kelvin to Celsius) * * @param readOnlyTimeSeries * @return */ public static MemoryTimeSeries getTemperatureScheduleInCelsius(ReadOnlyTimeSeries readOnlyTimeSeries) { return affineTransformation(readOnlyTimeSeries,1,-273.15F); }
if (!array.exists()) return false; int sz = getSize(array); if (sz < idx || idx < 0) return false;
@Override protected ReadOnlyTimeSeries readResource(Schedule resource) { return new ArrayTimeSeries(ValueResourceUtils.getValueType(resource)).read(resource,interval[0],interval[1]); }
@SuppressWarnings("unchecked") protected T read(V resource) { return (T) ValueResourceUtils.getValue(resource); }
@Override protected void setResourceValue(S resource, String value, List<String> displayedValues) { if(valuesToSet == null) super.setResourceValue(resource, value, displayedValues); for(Entry<String, String> e: valuesToSet.entrySet()) { if(e.getValue().equals(value)) { ValueResourceUtils.setValue(resource, e.getKey()); return; } } } };
@Override public SampledValue getValue(long time) { SampledValue prev = getPreviousValue(time); SampledValue next = getNextValue(time); return ValueResourceUtils.interpolate(prev, next, time, getInterpolationMode()); }
return false; int finalInt = getTrailingInt(resource); if (finalInt > ValueResourceUtils.getSize(array)) return false; Flexbox snippet;
@SuppressWarnings("unchecked") protected T readResource(V resource) { return (T) ValueResourceUtils.getValue(resource); }
@Override protected void setResourceValue(S resource, String value, List<String> displayedValues) { if(valuesToSet == null) super.setResourceValue(resource, value, displayedValues); for(Entry<String, String> e: valuesToSet.entrySet()) { if(e.getValue().equals(value)) { ValueResourceUtils.setValue(resource, e.getKey()); return; } } } };
@Override public SampledValue getValue(long time) { if (mode == null || mode == InterpolationMode.NONE) { final Iterator<SampledValue> it = iterator(time, time); return it.hasNext() ? it.next() : null; } final Iterator<SampledValue> it = iterator(Long.MIN_VALUE, time); if (!it.hasNext()) return null; SampledValue last = it.next(); if (last.getTimestamp() == time) return last; if (last.getTimestamp() > time) return null; while (it.hasNext()) { SampledValue sv = it.next(); if (sv.getTimestamp() == time) return sv; if (sv.getTimestamp() > time) return ValueResourceUtils.interpolate(last, sv, time, mode); last = sv; } if (mode == InterpolationMode.STEPS || mode == InterpolationMode.NEAREST) return new SampledValue(last.getValue(), time, last.getQuality()); return null; }