/** * Performs a case-insensitive lookup of the item name + suffix in the index. * * @param itemName Item name * @param suffix Item suffix * @param autoAdd If true and item name not in index, add it. * @return Item name with suffix as stored internally */ private String lookupItemName(String itemName, String suffix, boolean autoAdd) { return lookupItemName(itemName + "." + suffix, autoAdd); }
/** * Performs a case-insensitive lookup of the item name + suffix in the index. * * @param itemName Item name * @param suffix Item suffix * @param autoAdd If true and item name not in index, add it. * @return Item name with suffix as stored internally */ private String lookupItemName(String itemName, String suffix, boolean autoAdd) { return lookupItemName(itemName + "." + suffix, autoAdd); }
/** * Sets a context item value, qualified with the specified suffix. * * @param itemName Item name * @param value Item value * @param suffix Item suffix */ public void setItem(String itemName, String value, String suffix) { itemName = lookupItemName(itemName, suffix, value != null); items.put(itemName, value); }
/** * Retrieves a context item qualified by a suffix. * * @param itemName Item name * @param suffix Item suffix * @return Item value */ public String getItem(String itemName, String suffix) { return items.get(lookupItemName(itemName, suffix, false)); }
/** * Retrieves a context item by name. * * @param itemName Item name * @return Item value */ public String getItem(String itemName) { return items.get(lookupItemName(itemName, false)); }
/** * Sets a context item value, qualified with the specified suffix. * * @param itemName Item name * @param value Item value * @param suffix Item suffix */ public void setItem(String itemName, String value, String suffix) { itemName = lookupItemName(itemName, suffix, value != null); items.put(itemName, value); }
/** * Retrieves a context item by name. * * @param itemName Item name * @return Item value */ public String getItem(String itemName) { return items.get(lookupItemName(itemName, false)); }
/** * Retrieves a context item qualified by a suffix. * * @param itemName Item name * @param suffix Item suffix * @return Item value */ public String getItem(String itemName, String suffix) { return items.get(lookupItemName(itemName, suffix, false)); }
/** * Sets a context item value. * * @param itemName Item name * @param value Item value */ public void setItem(String itemName, String value) { itemName = lookupItemName(itemName, value != null); if (value == null) { items.remove(itemName); index.remove(itemName.toLowerCase()); } else { items.put(itemName, value); } }
/** * Sets a context item value. * * @param itemName Item name * @param value Item value */ public void setItem(String itemName, String value) { itemName = lookupItemName(itemName, value != null); if (value == null) { items.remove(itemName); index.remove(itemName.toLowerCase()); } else { items.put(itemName, value); } }
/** * Returns a map consisting of suffixes of context items that match the specified prefix. * * @param prefix Item name less any suffix. * @param firstOnly If true, only the first match is returned. Otherwise, all matches are * returned. * @return Map of suffixes whose prefix matches the specified value. The value of each map entry * is the value of the original context item. */ private Map<String, String> getSuffixes(String prefix, Boolean firstOnly) { HashMap<String, String> matches = new HashMap<String, String>(); prefix = normalizePrefix(prefix); int i = prefix.length(); for (String itemName : index.keySet()) { if (itemName.startsWith(prefix)) { String suffix = lookupItemName(itemName, false).substring(i); matches.put(suffix, getItem(itemName)); if (firstOnly) { break; } } } return matches; }
/** * Returns a map consisting of suffixes of context items that match the specified prefix. * * @param prefix Item name less any suffix. * @param firstOnly If true, only the first match is returned. Otherwise, all matches are * returned. * @return Map of suffixes whose prefix matches the specified value. The value of each map entry * is the value of the original context item. */ private Map<String, String> getSuffixes(String prefix, Boolean firstOnly) { HashMap<String, String> matches = new HashMap<>(); prefix = normalizePrefix(prefix); int i = prefix.length(); for (String itemName : index.keySet()) { if (itemName.startsWith(prefix)) { String suffix = lookupItemName(itemName, false).substring(i); matches.put(suffix, getItem(itemName)); if (firstOnly) { break; } } } return matches; }