added Hash.vals(); this is a temporary hack to be removed later
[org.ibex.util.git] / src / org / ibex / util / Hash.java
index 6952e82..ae95978 100644 (file)
@@ -1,9 +1,6 @@
-// Copyright (C) 2003 Adam Megacz <adam@ibex.org> all rights reserved.
-//
-// You may modify, copy, and redistribute this code under the terms of
-// the GNU Library Public License version 2.1, with the exception of
-// the portion of clause 6a after the semicolon (aka the "obnoxious
-// relink clause")
+// Copyright 2000-2005 the Contributors, as shown in the revision logs.
+// Licensed under the Apache Public Source License 2.0 ("the License").
+// You may not use this file except in compliance with the License.
 
 package org.ibex.util;
 
@@ -17,6 +14,9 @@ import java.util.*;
  *  Not threadsafe.
  */
 public class Hash implements java.io.Serializable {
+
+    public static final long serialVersionUID = 8177551301264350283L;
+
     /** this object is inserted as key in a slot when the
      *  corresponding value is removed -- this ensures that the
      *  probing sequence for any given key remains the same even if
@@ -46,6 +46,15 @@ public class Hash implements java.io.Serializable {
     /** the number of entries with a non-null value */
     public int size() { return size; }
 
+    public Object[] vals() {
+        Object[] ret = new Object[size()];
+        int j = 0;
+        for(int i=0; i<vals.length; i++)
+            if (vals[i] != null && vals[i] != placeholder)
+                ret[j++] = vals[i];
+        return ret;
+    }
+
     /** empties the table */
     public void clear() {
         size = 0;