SubConfigMeta.java revision 28de0461d82a4e6471c71d793af7a9492ca98dd3
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync/**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * The contents of this file are subject to the terms
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * of the Common Development and Distribution License
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * (the License). You may not use this file except in
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * compliance with the License.
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync *
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * You can obtain a copy of the License at
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * https://opensso.dev.java.net/public/CDDLv1.0.html or
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * opensso/legal/CDDLv1.0.txt
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * See the License for the specific language governing
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync * permission and limitations under the License.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * When distributing Covered Code, include this CDDL
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Header Notice in each file and include the License file
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * at opensso/legal/CDDLv1.0.txt.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * If applicable, add the following below the CDDL Header,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * with the fields enclosed by brackets [] replaced by
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * your own identifying information:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * "Portions Copyrighted [year] [name of copyright owner]"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * $Id: SubConfigMeta.java,v 1.2 2008/06/25 05:42:50 qcheng Exp $
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Portions Copyrighted 2015 ForgeRock AS.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncpackage com.sun.identity.console.base.model;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.shared.datastruct.CollectionHelper;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.shared.locale.Locale;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.iplanet.sso.SSOException;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.iplanet.sso.SSOToken;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.AttributeSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.SMSUtils;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.ServiceConfig;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.ServiceConfigManager;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.ServiceSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.ServiceSchemaManager;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport com.sun.identity.sm.SMSException;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport org.forgerock.openam.utils.StringUtils;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.text.Collator;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.ArrayList;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.HashMap;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.HashSet;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.List;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.Iterator;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.Map;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsyncimport java.util.ResourceBundle;
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsyncimport java.util.Set;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.SortedSet;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.StringTokenizer;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncimport java.util.TreeSet;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync/* - NEED NOT LOG - */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncpublic class SubConfigMeta {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public static final String SUBCONFIG_ID_DELIMITER = "/";
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private static SSOToken adminSSOToken =
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMAdminUtils.getSuperAdminSSOToken();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private String serviceName;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private AMModel amModel;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceConfig globalConfig;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceSchema globalSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private ResourceBundle serviceResourceBundle;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private Set globalSubSchemaNames;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private Map mapServiceSchemaNameToL10NName;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private Set singleInstanceGlobalSubSchemas;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private Set creatableGlobalSubSchemas;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private ServiceSchema corrSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private ServiceConfig parentConfig;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private List globalSubConfigurations;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public SubConfigMeta(String serviceName, AMModel model) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync this.serviceName = serviceName;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel = model;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync initialize();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void resetMeta() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubSchemaNames = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync mapServiceSchemaNameToL10NName = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync singleInstanceGlobalSubSchemas = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync creatableGlobalSubSchemas = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync corrSchema = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubConfigurations = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns true if there are global sub schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @return true if there are global sub schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public boolean hasGlobalSubSchema() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return (globalSubSchemaNames != null) &&
2d97f8baccdd684bc0a8a15eb86bbe9ff2b85374vboxsync !globalSubSchemaNames.isEmpty();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns list of sub configuration objects.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @return list of sub configuration objects.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @see SMSubConfig
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public List getSubConfigurations() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return (globalSubConfigurations != null) ?
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubConfigurations : new ArrayList();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns a map of sub schema name to its localized name. We should
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * be able to create sub configuration with these names.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @return Map of sub schema name to its localized name.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public Map getCreateableSubSchemaNames() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Map map = new HashMap(creatableGlobalSubSchemas.size() *2);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator i = creatableGlobalSubSchemas.iterator(); i.hasNext(); ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String s = (String)i.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync map.put(s, mapServiceSchemaNameToL10NName.get(s));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return map;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns sub service schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws SMSException if sub schema cannot be determined.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public ServiceSchema getServiceSchema() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return corrSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns sub service schema of current sub schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param name Name of sub schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws SMSException if sub schema cannot be determined.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public ServiceSchema getServiceSchema(String name)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws SMSException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return corrSchema.getSubSchema(name);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns default values of sub service schema of current sub schema. Map
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * of attribute name (String) to attribute values (Set).
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param name Name of sub schema.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws SMSException if default values be determined.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public Map getServiceSchemaDefaultValues(String name)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws SMSException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Map defaultValues = new HashMap();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceSchema ss = corrSchema.getSubSchema(name);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Set attributeSchemas = ss.getAttributeSchemas();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator i = attributeSchemas.iterator(); i.hasNext(); ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AttributeSchema as = (AttributeSchema)i.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Set values = as.getDefaultValues();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (values != null) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync defaultValues.put(as.getName(), values);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return defaultValues;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void initialize() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceConfigManager mgr = new ServiceConfigManager(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync serviceName, adminSSOToken);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalConfig = mgr.getGlobalConfig(null);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (globalConfig != null) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceSchemaManager schemaMgr = new ServiceSchemaManager(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync serviceName, adminSSOToken);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSchema = schemaMgr.getGlobalSchema();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String rbName = schemaMgr.getI18NFileName();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if ((rbName != null) && (rbName.trim().length() > 0)) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync serviceResourceBundle = AMResBundleCacher.getBundle(rbName,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getUserLocale());
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getGlobalSchema" ,e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getGlobalSchema" ,e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private boolean validInstance() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return (globalSchema != null) &&
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync (globalConfig != null) &&
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync (serviceResourceBundle != null);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public void setParentId(String parentId) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (validInstance()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync resetMeta();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync getCorrespondingSchema(parentId);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync getSupportedGlobalSubSchema();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if ((globalSubSchemaNames != null) &&
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync !globalSubSchemaNames.isEmpty()
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync creatableGlobalSubSchemas = new HashSet();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync creatableGlobalSubSchemas.addAll(globalSubSchemaNames);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync getSubConfigurationsFromConfig();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getParentId", e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getParentId", e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Get the parent configuration's display name. It will check if the service configuration
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * has an internationalization key and if it does, the localised name will be returned.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Otherwise the config name itself will be returned.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @return The parent configuration's display name.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public String getParentDisplayName() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String i18nKey = CollectionHelper.getMapAttr(parentConfig.getAttributes(), SMSUtils.I18N_KEY);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return StringUtils.isEmpty(i18nKey) ? parentConfig.getName() : getLocalizedString(i18nKey);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void getSupportedGlobalSubSchema() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubSchemaNames = corrSchema.getSubSchemaNames();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if ((globalSubSchemaNames != null) &&
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync !globalSubSchemaNames.isEmpty()
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync mapServiceSchemaNameToL10NName = new HashMap();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync singleInstanceGlobalSubSchemas = new HashSet();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator i =globalSubSchemaNames.iterator(); i.hasNext();){
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String name = (String)i.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceSchema ss = corrSchema.getSubSchema(name);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String i18nKey = ss.getI18NKey();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if ((i18nKey == null) || (i18nKey.trim().length() == 0)) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync i.remove();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } else {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync mapServiceSchemaNameToL10NName.put(name, getLocalizedString(i18nKey));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (!ss.supportsMultipleConfigurations()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync singleInstanceGlobalSubSchemas.add(name);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getSupportedGlobalSubSchema" ,e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private String getLocalizedString(String key) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return StringUtils.isEmpty(key) ? null : Locale.getString(serviceResourceBundle, key, AMModelBase.debug);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void getCorrespondingSchema(String parentId)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws SSOException, SMSException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync corrSchema = globalSchema;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig = globalConfig;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync StringTokenizer st = new StringTokenizer(parentId,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync SUBCONFIG_ID_DELIMITER);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /*
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * discard the first one because it is always /
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (st.hasMoreTokens()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync st.nextToken();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync while (st.hasMoreTokens()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String configId = st.nextToken();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync configId = AMAdminUtils.replaceString(configId, "%2F", "/");
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync configId = AMAdminUtils.replaceString(configId, "%25", "%");
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig = parentConfig.getSubConfig(configId);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync corrSchema = corrSchema.getSubSchema(parentConfig.getSchemaID());
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void getSubConfigurationsFromConfig() {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] params = {serviceName, parentConfig.getComponentName()};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("ATTEMPT_READ_GLOBAL_SUB_CONFIGURATION_NAMES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Set names = parentConfig.getSubConfigNames();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if ((names != null) && !names.isEmpty()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Collator collator = Collator.getInstance(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getUserLocale());
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync SortedSet set = new TreeSet(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync new SMSubConfigComparator(collator));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator iter = names.iterator(); iter.hasNext(); ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String name = (String)iter.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ServiceConfig conf = parentConfig.getSubConfig(name);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String schemaID = conf.getSchemaID();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (globalSubSchemaNames.contains(schemaID)) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String displayType = (String)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync mapServiceSchemaNameToL10NName.get(schemaID);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String localizedName = getLocalizedString(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CollectionHelper.getMapAttr(conf.getAttributes(), SMSUtils.I18N_KEY));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync set.add(new SMSubConfig(conf.getComponentName(), name, displayType, localizedName));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (singleInstanceGlobalSubSchemas.contains(schemaID)) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync creatableGlobalSubSchemas.remove(schemaID);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (!set.isEmpty()) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubConfigurations = new ArrayList(set.size());
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync globalSubConfigurations.addAll(set);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("SUCCEED_READ_GLOBAL_SUB_CONFIGURATION_NAMES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SSO_EXCEPTION_READ_GLOBAL_SUB_CONFIGURATION_NAMES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getSubConfigurations", e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SMS_EXCEPTION_READ_GLOBAL_SUB_CONFIGURATION_NAMES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AMModelBase.debug.error("SubConfigMeta.getSubConfigurations", e);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Deletes sub configurations.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param names Set of sub configuration names that are to be deleted.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws AMConsoleException if sub configurations cannot be deleted.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public void deleteSubConfigurations(Set names)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws AMConsoleException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String curName = null;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (parentConfig != null) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] params = new String[3];
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params[0] = serviceName;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params[1] = parentConfig.getComponentName();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator iter = names.iterator(); iter.hasNext(); ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync curName = (String)iter.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params[2] = curName;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "ATTEMPT_DELETE_GLOBAL_SUB_CONFIGURATION", params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig.removeSubConfig(curName);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync removeFromSubConfigList(curName);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SUCCEED_DELETE_GLOBAL_SUB_CONFIGURATION", params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync curName, amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("SSO_EXCEPTION_DELETE_GLOBAL_SUB_CONFIGURATION",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync curName, amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("SMS_EXCEPTION_DELETE_GLOBAL_SUB_CONFIGURATION",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync private void removeFromSubConfigList(String name) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync boolean removed = false;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for (Iterator i = globalSubConfigurations.iterator();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync i.hasNext() && !removed;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync SMSubConfig sc = (SMSubConfig)i.next();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if (sc.getName().equals(name)) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync i.remove();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync removed = true;
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Creates a new sub configuration.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param name Name of sub configuration.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param schemaName Name of schema name.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param values Map of attribute name to its values.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws AMConsoleException if sub configuration cannot be created.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public void createSubConfig(String name, String schemaName, Map values)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws AMConsoleException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] params = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync name, schemaName};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "ATTEMPT_CREATE_GLOBAL_SUB_CONFIGURATION", params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig.addSubConfig(name, schemaName, 0, values);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SUCCEED_CREATE_GLOBAL_SUB_CONFIGURATION", params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync name, schemaName, amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("SSO_EXCEPTION_CREATE_GLOBAL_SUB_CONFIGURATION",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync name, schemaName, amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent("SMS_EXCEPTION_CREATE_GLOBAL_SUB_CONFIGURATION",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Returns attribute values.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @return attribute values.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws AMConsoleException if attribute values cannot be determined.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public Map getSubConfigAttributeValues()
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws AMConsoleException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] params = {serviceName, parentConfig.getComponentName()};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SUCCEED_READ_GLOBAL_SUB_CONFIGURATION_ATTRIBUTE_VALUES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync return parentConfig.getAttributes();
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync /**
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * Set attribute values.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @param values Attribute values.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync * @throws AMConsoleException if attribute values cannot be set.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync */
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync public void setSubConfigAttributeValues(Map values)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throws AMConsoleException {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync try {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] params = {serviceName, parentConfig.getComponentName()};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "ATTEMPT_WRITE_GLOBAL_SUB_CONFIGURATION_ATTRIBUTE_VALUES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync parentConfig.setAttributes(values);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SUCCEED_WRITE_GLOBAL_SUB_CONFIGURATION_ATTRIBUTE_VALUES",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync params);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SSOException e) {
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SSO_EXCEPTION_WRITE_GLOBAL_SUB_CONFIGURATION_ATTRIBUTE_VALU",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync } catch (SMSException e) {
b8908d384db2324f04a2f68a13e67ea32ebf609avboxsync String[] paramsEx = {serviceName, parentConfig.getComponentName(),
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.getErrorString(e)};
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync amModel.logEvent(
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync "SMS_EXCEPTION_WRITE_GLOBAL_SUB_CONFIGURATION_ATTRIBUTE_VALU",
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync paramsEx);
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync throw new AMConsoleException(amModel.getErrorString(e));
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync }
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync}
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync