12d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// © 2016 and later: Unicode, Inc. and others.
22d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.normalizer;
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.HashMap;
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Map;
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 1998-2010, International Business Machines Corporation and    *
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Unicode, Inc. All Rights Reserved.                                          *
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Integer-String hash table. Uses Java Hashtable for now.
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * @author Mark Davis
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class IntStringHashtable {
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public IntStringHashtable (String defaultValue) {
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        this.defaultValue = defaultValue;
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void put(int key, String value) {
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (value == defaultValue) {
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            table.remove(new Integer(key));
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        } else {
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            table.put(new Integer(key), value);
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public String get(int key) {
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String value = table.get(new Integer(key));
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (value == null) return defaultValue;
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        return value;
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private String defaultValue;
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private Map<Integer, String> table = new HashMap<Integer, String>();
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}