@Override public String get(Object key) { // if we have this key exactly, use it String value = m_wrapper.get(key); if (value != null) return value; // otherwise break up key as a compound id and find what values we have for these // the values are roles, and we prefer "maintain" to "access" String rv = null; String[] ids = m_provider.unpackId((String)key); for (int i = 0; i < ids.length; i++) { // try this one value = m_wrapper.get(ids[i]); // if we found one already, ask the provider which to keep if (value != null) { rv = m_provider.preferredRole(value, rv); } } return rv; }
preferedRole = groupProvider.preferredRole(preferedRole, exisiting.getRole().getId());