/*
* 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.authorize;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import org.xdi.oxauth.model.util.Util;
/**
* @author Javier Rojas Blum Date: 03.09.2012
*/
public class UserInfoMember {
private List<Claim> claims;
private List<String> preferredLocales;
public UserInfoMember(JSONObject jsonObject) throws JSONException {
claims = new ArrayList<Claim>();
for (Iterator<String> iterator = jsonObject.keys(); iterator.hasNext(); ) {
String claimName = iterator.next();
ClaimValue claimValue = null;
if (jsonObject.isNull(claimName)) {
claimValue = ClaimValue.createNull();
} else {
JSONObject claimValueJsonObject = jsonObject.getJSONObject(claimName);
if (claimValueJsonObject.has("essential")) {
boolean essential = claimValueJsonObject.getBoolean("essential");
claimValue = ClaimValue.createEssential(essential);
} else if (claimValueJsonObject.has("values")) {
JSONArray claimValueJsonArray = claimValueJsonObject.getJSONArray("values");
List<String> claimValueArr = Util.asList(claimValueJsonArray);
claimValue = ClaimValue.createValueList(claimValueArr);
}
}
Claim claim = new Claim(claimName, claimValue);
claims.add(claim);
}
preferredLocales = new ArrayList<String>();
if (jsonObject.has("preferred_locales")) {
JSONArray preferredLocalesJsonArray = jsonObject.getJSONArray("preferred_locales");
for (int i = 0; i < preferredLocalesJsonArray.length(); i++) {
preferredLocales.add(preferredLocalesJsonArray.getString(i));
}
}
}
public List<Claim> getClaims() {
return claims;
}
public List<String> getPreferredLocales() {
return preferredLocales;
}
}