a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: IDPPDemographics.java,v 1.2 2008/06/25 05:47:16 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.liberty.ws.idpp.container;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.datastruct.CollectionHelper;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.idpp.common.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.idpp.plugin.*;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.idpp.IDPPServiceManager;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This class <code>IDPPDemographics</code> is an implementation of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>IDPPContainer</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class IDPPDemographics extends IDPPBaseContainer {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:constructor:init.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets the common name jaxb element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param userMap user map
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return CommonNameElement JAXB Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception IDPPException.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Object getContainerObject(Map userMap) throws IDPPException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getContainerObject:Init");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster PPType ppType = IDPPUtils.getIDPPFactory().createPPElement();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.getIDPPFactory().createDemographicsElement();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String displayLang = CollectionHelper.getMapAttr(userMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_DISPLAY_LANG_ELEMENT).toLowerCase());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster de.setDisplayLanguage(getDSTString(displayLang));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_LANGUAGE_ELEMENT).toLowerCase());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster de.getLanguage().add(getDSTString((String)iter.next()));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String birthDay = CollectionHelper.getMapAttr(userMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_BIRTH_DAY_ELEMENT).toLowerCase());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String age = CollectionHelper.getMapAttr(userMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_AGE_ELEMENT).toLowerCase());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String timeZone = CollectionHelper.getMapAttr(userMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_TIME_ZONE_ELEMENT).toLowerCase());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "IDPPDemographics:getContainerObject: JAXB failure", je);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets required common name container attributes.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a set of required container attributes
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster set.add(IDPPConstants.DEMO_GRAPHICS_DISPLAY_LANG_ELEMENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster set.add(IDPPConstants.DEMO_GRAPHICS_LANGUAGE_ELEMENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster set.add(IDPPConstants.DEMO_GRAPHICS_BIRTH_DAY_ELEMENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster set.add(IDPPConstants.DEMO_GRAPHICS_AGE_ELEMENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster set.add(IDPPConstants.DEMO_GRAPHICS_TIME_ZONE_ELEMENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets the container attributes for a given select expression.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param select Select expression.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a set of required user attributes.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Set getContainerAttributesForSelect(String select) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getContainer" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AttributesForSelect:Init");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String expContext = IDPPUtils.getExpressionContext(select);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getContainer" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AttributesForSelect:exp context = " + expContext);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if(expContext == null || expContext.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if(expContext.equals(IDPPConstants.DEMOGRAPHICS_ELEMENT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Processes modify container values and returns key value/pair to be
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param select Select expression.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param data list of new data objects.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Map Attribute key value pair map for the given select.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception IDPPException.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Map getDataMapForSelect(String select, List data)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getDataMapForSelect:Init");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String expContext = IDPPUtils.getExpressionContext(select);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getDataMapForSelect:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if(expContext == null && expContext.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if(expContext.equals(IDPPConstants.DEMOGRAPHICS_ELEMENT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (dataElement instanceof DemographicsElement)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_DISPLAY_LANG_ELEMENT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (dataElement instanceof DisplayLanguageElement)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_DISPLAY_LANG_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_BIRTH_DAY_ELEMENT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster map = getAttributeMap(IDPPConstants.DEMO_GRAPHICS_AGE_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_LANGUAGE_ELEMENT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.error("IDPPDemographics:getDataMapForSelect"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "Unsupported element");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getDataMapForSelect:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets the Demographics container attributes in a hashmap.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param obj DemographicsType JAXB object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param map map that sets attribute/value pairs.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Map Attribute value pair map that needs to be modified.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception IDPPException.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Map getDemographicsMap(Object obj, Map map)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getDemographicsMap:Init");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DemographicsType demoGraphs = (DemographicsType)obj;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.bundle.getString("invalid Element"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster getAttributeMap(IDPPConstants.DEMO_GRAPHICS_DISPLAY_LANG_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster getAttributeMap(IDPPConstants.DEMO_GRAPHICS_AGE_ELEMENT, age, map);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster getAttributeMap(IDPPConstants.DEMO_GRAPHICS_TIME_ZONE_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster getAttributeMap(IDPPConstants.DEMO_GRAPHICS_BIRTH_DAY_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets the Lanaguage attributes map
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param dataObject list of data objects
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param map map to be filled in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Map map to be returned
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception IDPPException
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Map getLanguageMap(List dataObject, Map map) throws IDPPException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPUtils.debug.message("IDPPDemographics:getLanguageMap:Init");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IDPPConstants.DEMO_GRAPHICS_LANGUAGE_ELEMENT, null, map);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return getAttributeMap(IDPPConstants.DEMO_GRAPHICS_LANGUAGE_ELEMENT,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Checks if there are any binary attributes.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;