@Override public MemoryTimeSeries clone() { return new ArrayTimeSeries(this, m_type); }
@Override public void setSchedule(Schedule schedule, ReadOnlyTimeSeries function) throws NoSuchResourceException { final String path = schedule.getPath(); if (!m_scheduleMap.containsKey(path)) { throw new NoSuchResourceException("Can not set a value for schedule " + schedule.toString() + " in transaction: Resource had not been registered before. Be sure to register the resource to the transaction with addResource(...) before trying to set a value for it"); } final RwPair<MemoryTimeSeries> pair = m_scheduleMap.get(path); final Class<? extends Value> valueType = getValueType(schedule); final MemoryTimeSeries state = new ArrayTimeSeries(function, valueType); pair.write = state; }
@Override protected ReadOnlyTimeSeries readResource(Schedule resource) { return new ArrayTimeSeries(ValueResourceUtils.getValueType(resource)).read(resource,interval[0],interval[1]); }
private void readSchedules(ResourceAccess resAcc) { for (String path : m_scheduleMap.keySet()) { final Schedule schedule = (Schedule) resAcc.getResource(path); final RwPair<MemoryTimeSeries> pair = m_scheduleMap.get(path); if (!schedule.exists()) { pair.read = null; continue; } if (pair.read == null) { final Class<? extends Value> valueType = getValueType(schedule); pair.read = new ArrayTimeSeries(valueType); } pair.read.read(schedule); } }
private void writeSchedules(ResourceAccess resAcc) { for (String path : m_scheduleMap.keySet()) { final Schedule schedule = (Schedule) resAcc.getResource(path); final RwPair<MemoryTimeSeries> pair = m_scheduleMap.get(path); final MemoryTimeSeries value = pair.write; if (!schedule.exists()) { pair.read = null; } else if (value == null) { if (pair.read == null) { final Class<? extends Value> valueType = getValueType(schedule); pair.read = new ArrayTimeSeries(valueType); } pair.read.read(schedule); } else { value.write(schedule); if (pair.read == null) { final Class<? extends Value> valueType = getValueType(schedule); pair.read = new ArrayTimeSeries(valueType); } pair.read.read(schedule); } } }