package qubexplorer.ui;
import java.util.HashMap;
import java.util.Map;
import qubexplorer.ResourceKey;
import qubexplorer.UserCredentials;
/**
*
* @author Victor
*/
public class UserCredentialsRepository {
private static UserCredentialsRepository repository;
private final Map<String, Map<ResourceKey, UserCredentials>> cache = new HashMap<>();
public UserCredentials getUserCredentials(String serverUrl, ResourceKey resourceKey) {
if (cache.containsKey(serverUrl)) {
if (cache.get(serverUrl).containsKey(resourceKey)) {
return cache.get(serverUrl).get(resourceKey);
} else {
return cache.get(serverUrl).get(null);
}
} else {
return null;
}
}
public void saveUserCredentials(String serverUrl, ResourceKey resourceKey, UserCredentials authentication) {
if (!cache.containsKey(serverUrl)) {
cache.put(serverUrl, new HashMap<ResourceKey, UserCredentials>());
}
cache.get(serverUrl).put(null, authentication);
if (resourceKey != null) {
cache.get(serverUrl).put(resourceKey, authentication);
}
}
public static synchronized UserCredentialsRepository getInstance() {
if (repository == null) {
repository = new UserCredentialsRepository();
}
return repository;
}
}