/******************************************************************************* * Copyright (c) 2007 VTT Technical Research Centre of Finland and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ package org.simantics.trend; import java.io.File; import java.util.UUID; import org.simantics.databoard.util.Bean; import org.simantics.history.Collector; import org.simantics.history.History; import org.simantics.history.HistoryException; import org.simantics.history.util.subscription.SubscriptionItem; import org.simantics.history.HistoryManager; import org.simantics.history.impl.CollectorImpl; import org.simantics.simulation.data.DatasourceAdapter; import org.simantics.simulation.data.PseudoSolver; import org.simantics.trend.configuration.TrendSamplingFormats; import org.simantics.utils.FileUtils; /** * Test Data initializes PseudoSolver, HistoryCollector and DatasourceRepository * * @author Toni Kalajainen */ public class TestData { public PseudoSolver solver; public File workarea; public HistoryManager historyManager; public Collector collector; public DatasourceAdapter adapter; public String subscriptionId = UUID.randomUUID().toString(); public TestData() throws HistoryException { historyManager = History.createMemoryHistory(); collector = new CollectorImpl( historyManager ); init(); } public TestData(File workarea) throws HistoryException { this.workarea = workarea; historyManager = History.openFileHistory(workarea); collector = new CollectorImpl( historyManager ); init(); } void init() throws HistoryException { solver = new PseudoSolver(); SubscriptionItem[] hi = null; hi = SubscriptionItem.createItems( PseudoSolver.SINE, subscriptionId, TrendSamplingFormats.createAnalogSamplingFormats(0, 0, "m") ); historyManager.create(hi); collector.addItems(hi); hi = SubscriptionItem.createItems( PseudoSolver.RAMP, subscriptionId, TrendSamplingFormats.createBinarySamplingFormats(0) ); historyManager.create(hi); collector.addItems(hi); hi = SubscriptionItem.createItems( PseudoSolver.RANDOM, subscriptionId, TrendSamplingFormats.createAnalogSamplingFormats(0, 0, "j") ); historyManager.create(hi); collector.addItems(hi); adapter = new DatasourceAdapter( collector ); solver.addListener(adapter); } public void dispose() { solver.removeListener(adapter); adapter.reset(); solver.stop(); collector.close(); try { for (Bean bean : collector.getItems()) { String id = (String) bean.getFieldUnchecked("id"); historyManager.delete(id); } } catch (HistoryException e) { e.printStackTrace(); } historyManager.close(); if (workarea != null) { FileUtils.deleteDir(workarea); } } }