-package org.simantics.history.examples;\r
-\r
-import java.util.List;\r
-import java.util.UUID;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.Datatypes;\r
-import org.simantics.databoard.accessor.StreamAccessor;\r
-import org.simantics.databoard.accessor.error.AccessorException;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.RecordBinding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.type.RecordType;\r
-import org.simantics.databoard.util.Bean;\r
-import org.simantics.history.History;\r
-import org.simantics.history.HistoryException;\r
-import org.simantics.history.HistoryItem;\r
-import org.simantics.history.HistoryManager;\r
-import org.simantics.history.ItemManager;\r
-\r
-public class HistoryExample1 {\r
-\r
- public static void main(String[] args) throws HistoryException, BindingException, AccessorException {\r
- \r
- /// Example1: Create History Manager & Item\r
- // Create History Manager\r
- HistoryManager history = History.createMemoryHistory();\r
- \r
- // Create a sample format\r
- RecordType sampleFormat = new RecordType();\r
- sampleFormat.addComponent("time", Datatypes.DOUBLE );\r
- sampleFormat.addComponent("value", Datatypes.DOUBLE );\r
- sampleFormat.addComponent("quality", Datatypes.BYTE );\r
- \r
- // Create History Item configuration\r
- String id = UUID.randomUUID().toString();\r
- HistoryItem hi = new HistoryItem(id, sampleFormat);\r
- \r
- // Create the item in the history\r
- history.create( hi );\r
- \r
- /// Example 2: Write data to history item's stream (without Collector)\r
- {\r
- // Open item for writing\r
- StreamAccessor sa = history.openStream(id, "rw");\r
- // Create bean based binding for the sample\r
- RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleFormat );\r
- // Create sample object\r
- Bean sample = (Bean) sampleBinding.createPartial();\r
- try {\r
- \r
- // Set quality\r
- sample.setField(2, Bindings.BYTE, (byte)0);\r
- \r
- // Write 10 samples\r
- for (int i=0; i<10; i++) {\r
- \r
- // Set time\r
- sample.setField(0, Bindings.DOUBLE, 1.0*i );\r
- // Set Value\r
- sample.setField(1, Bindings.DOUBLE, 100.0*i );\r
- \r
- sa.add(sampleBinding, sample); \r
- }\r
- } finally {\r
- sa.flush();\r
- sa.close();\r
- }\r
- }\r
- \r
- /// Example 3: Read & print data\r
- {\r
- // Open stream from history\r
- StreamAccessor aa = history.openStream(id, "r");\r
- // Read sample type\r
- RecordType sampleType = (RecordType) aa.type().componentType;\r
- // Create bean binding\r
- RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleType );\r
- // Create sample object\r
- Bean sample = (Bean) sampleBinding.createPartial();\r
- \r
- try {\r
- for (int i=0; i<aa.size(); i++) {\r
- aa.get(i, sampleBinding, sample);\r
- System.out.println(i+": "+sample);\r
- }\r
- } finally {\r
- aa.close();\r
- }\r
- }\r
- \r
- /// Example 4: To search and read history items\r
- // Read items from history. Each item is a record with various fields.\r
- // The fields depending on usage and initialization.\r
- //\r
- // If collector is used, it adds a field called "collectorState" that persists\r
- // the state data and subscription parameters. \r
- Bean[] items = history.getItems();\r
- \r
- // ItemManager is a utility that helps in the management of items \r
- ItemManager im = new ItemManager( items );\r
- \r
- // Print all item Ids\r
- System.out.println("Items Identifiers:");\r
- for ( String itemId : im.toIdArray() )\r
- {\r
- System.out.println( itemId );\r
- }\r
- \r
- // To search an item by id, use\r
- List<Bean> result = im.search("id", id);\r
- \r
- // To search items of specific parameter, say file format, use\r
- im.search("format", sampleFormat);\r
- \r
- // Or interval\r
- im.search("interval", 0.1);\r
- \r
- }\r
- \r
-}\r
+package org.simantics.history.examples;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.Datatypes;
+import org.simantics.databoard.accessor.StreamAccessor;
+import org.simantics.databoard.accessor.error.AccessorException;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.RecordBinding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.type.RecordType;
+import org.simantics.databoard.util.Bean;
+import org.simantics.history.History;
+import org.simantics.history.HistoryException;
+import org.simantics.history.HistoryItem;
+import org.simantics.history.HistoryManager;
+import org.simantics.history.ItemManager;
+
+public class HistoryExample1 {
+
+ public static void main(String[] args) throws HistoryException, BindingException, AccessorException {
+
+ /// Example1: Create History Manager & Item
+ // Create History Manager
+ HistoryManager history = History.createMemoryHistory();
+
+ // Create a sample format
+ RecordType sampleFormat = new RecordType();
+ sampleFormat.addComponent("time", Datatypes.DOUBLE );
+ sampleFormat.addComponent("value", Datatypes.DOUBLE );
+ sampleFormat.addComponent("quality", Datatypes.BYTE );
+
+ // Create History Item configuration
+ String id = UUID.randomUUID().toString();
+ HistoryItem hi = new HistoryItem(id, sampleFormat);
+
+ // Create the item in the history
+ history.create( hi );
+
+ /// Example 2: Write data to history item's stream (without Collector)
+ {
+ // Open item for writing
+ StreamAccessor sa = history.openStream(id, "rw");
+ // Create bean based binding for the sample
+ RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleFormat );
+ // Create sample object
+ Bean sample = (Bean) sampleBinding.createPartial();
+ try {
+
+ // Set quality
+ sample.setField(2, Bindings.BYTE, (byte)0);
+
+ // Write 10 samples
+ for (int i=0; i<10; i++) {
+
+ // Set time
+ sample.setField(0, Bindings.DOUBLE, 1.0*i );
+ // Set Value
+ sample.setField(1, Bindings.DOUBLE, 100.0*i );
+
+ sa.add(sampleBinding, sample);
+ }
+ } finally {
+ sa.flush();
+ sa.close();
+ }
+ }
+
+ /// Example 3: Read & print data
+ {
+ // Open stream from history
+ StreamAccessor aa = history.openStream(id, "r");
+ // Read sample type
+ RecordType sampleType = (RecordType) aa.type().componentType;
+ // Create bean binding
+ RecordBinding sampleBinding = (RecordBinding) Bindings.getBeanBinding( sampleType );
+ // Create sample object
+ Bean sample = (Bean) sampleBinding.createPartial();
+
+ try {
+ for (int i=0; i<aa.size(); i++) {
+ aa.get(i, sampleBinding, sample);
+ System.out.println(i+": "+sample);
+ }
+ } finally {
+ aa.close();
+ }
+ }
+
+ /// Example 4: To search and read history items
+ // Read items from history. Each item is a record with various fields.
+ // The fields depending on usage and initialization.
+ //
+ // If collector is used, it adds a field called "collectorState" that persists
+ // the state data and subscription parameters.
+ Bean[] items = history.getItems();
+
+ // ItemManager is a utility that helps in the management of items
+ ItemManager im = new ItemManager( items );
+
+ // Print all item Ids
+ System.out.println("Items Identifiers:");
+ for ( String itemId : im.toIdArray() )
+ {
+ System.out.println( itemId );
+ }
+
+ // To search an item by id, use
+ List<Bean> result = im.search("id", id);
+
+ // To search items of specific parameter, say file format, use
+ im.search("format", sampleFormat);
+
+ // Or interval
+ im.search("interval", 0.1);
+
+ }
+
+}