@Override public ClientScopeModel getClientScopeById(String id, RealmModel realm) { CachedClientScope cached = cache.get(id, CachedClientScope.class); if (cached != null && !cached.getRealm().equals(realm.getId())) { cached = null; } if (cached == null) { Long loaded = cache.getCurrentRevision(id); ClientScopeModel model = getRealmDelegate().getClientScopeById(id, realm); if (model == null) return null; if (invalidations.contains(id)) return model; cached = new CachedClientScope(loaded, realm, model); cache.addRevisioned(cached, startupRevision); } else if (invalidations.contains(id)) { return getRealmDelegate().getClientScopeById(id, realm); } else if (managedClientScopes.containsKey(id)) { return managedClientScopes.get(id); } ClientScopeAdapter adapter = new ClientScopeAdapter(realm, cached, this); managedClientScopes.put(id, adapter); return adapter; }