Juan José Ramos Cassella created GEODE-5523:
-----------------------------------------------
Summary: Remove DefaultHashMap
Key: GEODE-5523
URL: https://issues.apache.org/jira/browse/GEODE-5523
Project: Geode
Issue Type: Improvement
Components: general, jmx, statistics
Reporter: Juan José Ramos Cassella
The class {{MBeanStatsMonitor}} exposes the static class {{DefaultHashMap}},
which is basically a wrapper of a simple {{java.util.Map}} that returns a
default value ({{0}}) when the requested key doesn't exist.
{code}
public static class DefaultHashMap { // TODO: delete this class
private Map<String, Number> internalMap = new HashMap<>();
public DefaultHashMap() {}
public Number get(final String key) {
return internalMap.get(key) != null ? internalMap.get(key) : 0;
}
public void put(final String key, final Number value) {
internalMap.put(key, value);
}
public void clear() {
internalMap.clear();
}
/**
* For testing only
*/
Map<String, Number> getInternalMap() {
return this.internalMap;
}
}
{code}
The containing class, {{MBeanStatsMonitor}}, also has a method that prevents
{{null}} values from being returned when accessing the {{Map}}, which is
redundant:
{code}
public Number getStatistic(final String statName) {
Number value = statsMap.get(statName);
return value != null ? value : 0;
}
{code}
The class {{DefaultHashMap}} should be eliminated, and the method
{{getStatistic}} should be refactored to use {{Map.getOrDefault(Object key, V
defaultValue)}} instead of executing the logic manually.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)