sclass SnippetTitles { Map titles = synchroHashMap(); S get(S snippetID) { if (snippetID == null) null; long id = parseSnippetID(snippetID); if (titles.containsKey(id)) ret titles.get(id); else { S title = getSnippetTitle_safe(snippetID); titles.put(id, title); ret title; } } // like get, but only check the cache S probe(S id) { ret titles.get(parseSnippetID(id)); } // advanced uses void put(S id, S title) { titles.put(parseSnippetID(id), title); } bool has(S id) { ret titles.containsKey(parseSnippetID(id)); } void clear() { titles.clear(); } }