blob: a9090dafb84c8e0a739bea1655a32c212948afb5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.internal.util;
import java.util.HashMap;
/**
* Straightforward, many-to-one map from Strings to ints, based on a Java
* {@link java.util.HashMap HashMap}.
*
*
*/
public class StringToIntMap {
private static final int DEFAULT_VALUE = 0;
private HashMap<String, Integer> map;
/**
* Constructor.
*
* @see java.lang.Object#Object()
*/
public StringToIntMap() {
super();
this.map = new HashMap<String, Integer>();
}
/**
* Check if the the argument string is defined as a key in this map.
*
* @see java.util.Map#containsKey(java.lang.Object)
* @param key
* The string to be looked up.
* @return <code>true</code> if a value is defined for this string; <code>false</code> else.
*/
public boolean containsKey(String key) {
return this.map.containsKey(key);
}
/**
* Get the value for the key.
*
* @param key
* The string to be looked up.
* @return The int value for <code>key</code>, or <code>0</code> if <code>key</code> is not
* a key in the map. Use {@link #containsKey(String) containsKey()} to find out if
* <code>key</code> is actually defined in the map.
*/
public int get(String key) {
Integer i = (Integer) this.map.get(key);
if (i == null) {
return DEFAULT_VALUE;
}
return i.intValue();
}
/**
* Add a key-value pair to the map.
*
* @param key
* The string key.
* @param value
* The int value.
* @return The previous value of <code>key</code>, if it was set. <code>0</code> else.
*/
public int put(String key, int value) {
Integer i = (Integer) this.map.get(key);
int rc;
if (i == null) {
rc = 0;
} else {
rc = i.intValue();
}
i = Integer.valueOf(value);
this.map.put(key, i);
return rc;
}
}