View Javadoc

1   package net.sf.jhunlang.jmorph;
2   
3   import java.io.Serializable;
4   
5   import java.util.HashMap;
6   import java.util.Map;
7   
8   public class Conditionsmap implements Serializable
9   {
10    /***
11     * The {@link Conditions#index} of the <code>Conditions</code> created next. 
12     */
13    protected int nextIndex;
14    /***
15     * Stores different interned Conditions instances
16     */
17    protected final Map conds = new HashMap();
18  
19    public int size()
20    {
21      return conds.size();
22    }
23  
24    /***
25     * Return the <code>Conditions</code> instance wrapping
26     * <code>conditions</code>. Look for the instance in {@link #conds}
27     * and return it if found. Otherwise create a new <code>Conditions</code>
28     * instance and put it into {@link #conds} and return the new instance.
29     * @param conditions the {@link Condition} array to wrap
30     * @return the <code>Conditions</code> instance wrapping
31     * <code>conditions</code>
32     */
33    public Conditions getConditions(Condition[] conditions)
34    {
35      Conditions c = new Conditions(conditions);
36      Conditions old = (Conditions)conds.get(c);
37      if (old == null)
38      {
39        c.setIndex(nextIndex++);
40        old = c;
41        conds.put(old, old);
42      }
43      return old;
44    }
45  }