propertylist/IPropertylist: removed obsolete loadHash_sub()
[metux-java.git] / util / VersionStack.java
blob6c05a33acf5211de3d03dff7dae361d5d3ad6a8a
2 package org.de.metux.util;
4 import java.util.Hashtable;
5 import java.util.Enumeration;
7 public class VersionStack
9 Hashtable index = new Hashtable();
11 public VersionStack()
15 public VersionStack(String[] v)
17 for (int x=0; x<v.length; x++)
18 if (v[x]!=null)
19 add(new Version(v[x]));
22 public VersionStack(Version[] v)
24 for (int x=0; x<v.length; x++)
25 if (v[x]!=null)
26 add(v[x]);
29 public Version[] getVersions()
31 if (index.size()==0)
32 return null;
34 Version list[] = new Version[index.size()];
35 int x=0;
36 for (Enumeration e=index.keys(); e.hasMoreElements();)
37 list[x++] = (Version)index.get((Version)e.nextElement());
38 return list;
41 public String toString()
43 if (index.size()==0)
44 return null;
46 String s = null;
47 for (Enumeration e=index.keys(); e.hasMoreElements();)
49 Version v = (Version)index.get((Version)e.nextElement());
50 s = ((s==null)?"":s+" ")+v;
53 return s;
56 public boolean containsVersion(Version v)
58 Version v2 = (Version)index.get(v);
59 if (v2==null)
60 return false;
62 if (v2.equals(v))
63 return true;
65 throw new RuntimeException("ugh: index mismatch: "+v2+" - "+v);
68 public boolean add(Version nv)
70 index.put(nv,nv);
71 return true;
74 public Version[] getLowers(Version delim)
76 VersionStack st = new VersionStack();
77 divide(delim,st,null);
78 return st.getVersions();
81 public Version[] getHighers(Version delim)
83 VersionStack st = new VersionStack();
84 divide(delim,null,st);
85 return st.getVersions();
88 public int size()
90 return index.size();
93 public void divide(Version delim, VersionStack lowers, VersionStack highers)
95 for (Enumeration e=index.keys(); e.hasMoreElements(); )
97 Version v = (Version)index.get((Version)e.nextElement());
98 switch (v.compareTo(delim))
100 case 0: break;
101 case -1:
102 if (lowers!=null) lowers.add(v); break;
103 case 1:
104 if (highers!=null) highers.add(v); break;