Commit in lcsim/src/org/lcsim on MAIN
util/lcio/SIOFloatVecBlockHandler.java+28added 1.1
         /SIOFloatVec.java+34added 1.1
         /HandlerManager.java+11.14 -> 1.15
event/FloatVec.java+11added 1.1
event/base/BaseFloatVec.java+40added 1.1
plugin/browser/FloatVecTableModel.java+35added 1.1
              /LCSimEventBrowser.java+11.12 -> 1.13
+150
5 added + 2 modified, total 7 files
Initial support for LCFloatVec

lcsim/src/org/lcsim/util/lcio
SIOFloatVecBlockHandler.java added at 1.1
diff -N SIOFloatVecBlockHandler.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SIOFloatVecBlockHandler.java	4 Mar 2009 08:40:11 -0000	1.1
@@ -0,0 +1,28 @@
+package org.lcsim.util.lcio;
+
+import hep.io.sio.SIOInputStream;
+import hep.io.sio.SIOOutputStream;
+import java.io.IOException;
+
+import org.lcsim.event.FloatVec;
+
+/**
+ *
+ * @author tonyj
+ */
+class SIOFloatVecBlockHandler extends AbstractBlockHandler
+{
+   public String getType() { return "LCFloatVec"; }
+   public Class getClassForType() { return FloatVec.class; }
+   LCIOCallback addCollectionElements(LCIOEvent event, LCIOCollection collection, SIOInputStream in, int n, int version) throws IOException
+   {
+      for (int i = 0; i < n; i++)
+         collection.add(new SIOFloatVec(in, collection.getFlags(), version));
+      return null;
+   }
+   
+   void writeCollectionElement(Object element, SIOOutputStream out, int flags) throws IOException
+   {
+      SIOFloatVec.write((FloatVec) element, out, flags);
+   }
+}

lcsim/src/org/lcsim/util/lcio
SIOFloatVec.java added at 1.1
diff -N SIOFloatVec.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SIOFloatVec.java	4 Mar 2009 08:40:11 -0000	1.1
@@ -0,0 +1,34 @@
+package org.lcsim.util.lcio;
+
+import hep.io.sio.SIOInputStream;
+
+import hep.io.sio.SIOOutputStream;
+import java.io.IOException;
+import org.lcsim.event.FloatVec;
+import org.lcsim.event.base.BaseFloatVec;
+
+/**
+ *
+ * @version $Id: SIOFloatVec.java,v 1.1 2009/03/04 08:40:11 tonyj Exp $
+ */
+class SIOFloatVec extends BaseFloatVec
+{   
+   SIOFloatVec(SIOInputStream in, int flag, int version) throws IOException
+   {
+      int size = in.readInt();
+      float[] data = new float[size];
+      for (int i = 0; i < size; i++)
+         data[i] = in.readFloat();
+      if(version>1002) in.readPTag(this);
+      setVec(data);
+   }
+
+   static void write(FloatVec vec, SIOOutputStream out, int flags) throws IOException
+   {
+         float[] data = vec.toFloatArray();
+         out.writeInt(data.length);
+         for (int i = 0; i < data.length; i++)
+            out.writeFloat(data[i]);
+         out.writePTag(vec) ;
+   }
+}

lcsim/src/org/lcsim/util/lcio
HandlerManager.java 1.14 -> 1.15
diff -u -r1.14 -r1.15
--- HandlerManager.java	9 Oct 2007 22:56:22 -0000	1.14
+++ HandlerManager.java	4 Mar 2009 08:40:11 -0000	1.15
@@ -40,6 +40,7 @@
       register(new SIOTrackerDataBlockHandler());
       register(new SIOTrackerPulseBlockHandler());
       register(new SIOVertexBlockHandler());
+      register(new SIOFloatVecBlockHandler());
    }
    static HandlerManager instance()
    {

lcsim/src/org/lcsim/event
FloatVec.java added at 1.1
diff -N FloatVec.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ FloatVec.java	4 Mar 2009 08:40:11 -0000	1.1
@@ -0,0 +1,11 @@
+package org.lcsim.event;
+
+import java.util.List;
+
+/**
+ * 
+ * @author tonyj
+ */
+public interface FloatVec extends List<Float> {
+    float[] toFloatArray();
+}

lcsim/src/org/lcsim/event/base
BaseFloatVec.java added at 1.1
diff -N BaseFloatVec.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ BaseFloatVec.java	4 Mar 2009 08:40:11 -0000	1.1
@@ -0,0 +1,40 @@
+package org.lcsim.event.base;
+
+import java.util.AbstractList;
+import org.lcsim.event.FloatVec;
+
+/**
+ * Unmodifiable implementation of FloatVec. 
+ * @author tonyj
+ */
+public class BaseFloatVec extends AbstractList<Float> implements FloatVec  {
+
+    private float[] vec;
+
+    public BaseFloatVec(float[] vec) {
+        this.vec = vec;
+    }
+
+    protected BaseFloatVec() {
+
+    }
+    protected void setVec(float[] vec) {
+        this.vec = vec;
+    }
+
+    @Override
+    public Float get(int index) {
+        return vec[index];
+    }
+
+    @Override
+    public int size() {
+        return vec.length;
+    }
+
+    public float[] toFloatArray() {
+        return vec;
+    }
+
+
+}

lcsim/src/org/lcsim/plugin/browser
FloatVecTableModel.java added at 1.1
diff -N FloatVecTableModel.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ FloatVecTableModel.java	4 Mar 2009 08:40:11 -0000	1.1
@@ -0,0 +1,35 @@
+package org.lcsim.plugin.browser;
+
+import java.util.Arrays;
+import org.lcsim.event.FloatVec;
+
+
+/**
+ *
+ * @author tonyj
+ */
+class FloatVecTableModel extends GenericTableModel
+{
+   private static final String[] columns = {"I","Size","Data"};
+   private static Class klass = FloatVec.class;
+
+   FloatVecTableModel()
+   {
+      super(klass,columns);
+   }
+   public Object getValueAt(int row, int column)
+   {
+      FloatVec vec = (FloatVec) getData(row);
+      switch (column) {
+          case 0: return row;
+          case 1: return vec.size();
+          case 2: return Arrays.toString(vec.toFloatArray());
+          default: return null;
+      }
+   }
+   
+   public Class getColumnClass(int column)
+   {
+      return column==2 ? String.class : Integer.class;
+   }
+}

lcsim/src/org/lcsim/plugin/browser
LCSimEventBrowser.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- LCSimEventBrowser.java	24 Sep 2007 21:03:00 -0000	1.12
+++ LCSimEventBrowser.java	4 Mar 2009 08:40:11 -0000	1.13
@@ -78,6 +78,7 @@
       lookup.add(new TrackerPulseTableModel());
       lookup.add(new TrackerDataTableModel());
       lookup.add(new VertexTableModel());
+      lookup.add(new FloatVecTableModel());
    }
    
    public LCSimEventBrowser(Studio app, SequentialRecordLoop loop)
CVSspam 0.2.8