/* * oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text. * * Copyright (c) 2014, Gluu */ package org.xdi.oxauth.model.common; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import java.util.Set; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import com.google.common.collect.Sets; /** * @author Yuriy Zabrovarnyy * @version 0.9, 04/06/2014 */ @XmlRootElement public class SessionIdAccessMap implements Serializable { @XmlElement(name = "map") private Map<String, Boolean> permissionGranted; public SessionIdAccessMap() { } public SessionIdAccessMap(Map<String, Boolean> permissionGranted) { this.permissionGranted = permissionGranted; } public Map<String, Boolean> getPermissionGranted() { return permissionGranted; } public void setPermissionGranted(Map<String, Boolean> permissionGranted) { this.permissionGranted = permissionGranted; } @XmlTransient public Set<String> clientIds() { return Sets.newHashSet(permissionGranted.keySet()); } public Set<String> getClientIds(boolean granted) { Set<String> clientIds = Sets.newHashSet(); for (Map.Entry<String, Boolean> entry : permissionGranted.entrySet()) { if (entry.getValue().equals(granted) ) { clientIds.add(entry.getKey()); } } return clientIds; } public Boolean get(String clientId) { ensureInitialized(); final Boolean result = permissionGranted.get(clientId); return result != null ? result : false; } private void ensureInitialized() { if (permissionGranted == null) { permissionGranted = new HashMap<String, Boolean>(); } } public void put(String clientId, Boolean granted) { ensureInitialized(); permissionGranted.put(clientId, granted); } public void putIfAbsent(String clientId) { ensureInitialized(); if (permissionGranted.get(clientId) == null) { permissionGranted.put(clientId, false); } } }