/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: AMAttributeSchema.java,v 1.3 2008/06/25 05:41:19 qcheng Exp $ * */ package com.iplanet.am.sdk; import java.util.Set; import com.iplanet.sso.SSOException; import com.sun.identity.sm.AttributeSchema; import com.sun.identity.sm.SMSException; /** * The class AMAttributeSchema provides the interfaces to obtain * meta information about service configuration variable. * * @deprecated This class has been deprecated. Please use * com.sun.identity.sm.AttributeSchema. * @supported.all.api */ public class AMAttributeSchema extends Object { /** * The TYPE_SINGLE attribute type specifies that the * attribute can have only a single value */ public static final int TYPE_SINGLE = 1; /** * The TYPE_LIST attribute type specifies that the attribute * can have multiple values, i.e., multi-valued attribute */ public static final int TYPE_LIST = 2; /** * The TYPE_SINGLE_CHOICE attribute type specifies that the * attribute can have value defined by the getChoiceValues * method of AMAttributeSchema. */ public static final int TYPE_SINGLE_CHOICE = 3; /** * The TYPE_MULTIPLE_CHOICE attribute type specifies that the * attribute can have multiple values defined by the * getChoiceValues method of AMAttributeSchema. */ public static final int TYPE_MULTIPLE_CHOICE = 4; /** * The TYPE_SIGNATURE attribute type specifies that the * attribute is a signing attribute. */ public static final int TYPE_SIGNATURE = 20; /** * The VALIDATOR attribute type specifies that the attribute * defines a attribute validator plugin. */ public static final int TYPE_VALIDATOR = 21; /** * The UITYPE_RADIO attribute type specifies that the * attribute should be display as a radio button. */ public static final int UITYPE_RADIO = 22; /** * The UITYPE_LINK attribute type specifies that the * attribute should be display as a link. */ public static final int UITYPE_LINK = 23; /** * The UITYPE_BUTTON attribute type specifies that the * attribute should be display as a button. */ public static final int UITYPE_BUTTON = 24; /** * The UITYPE_UNDEFINED attribute type specifies that the UI * type is not defined. */ public static final int UITYPE_UNDEFINED = 25; /** * The SYNTAX_BOOLEAN attribute syntax specifies that the * attribute is of boolean type, i.e., can have a value of either * true or * false */ public static final int SYNTAX_BOOLEAN = 5; /** * The SYNTAX_EMAIL attribute syntax specifies that the * attribute is a email address. */ public static final int SYNTAX_EMAIL = 6; /** * The SYNTAX_URL attribute syntax specifies that the * attribute is a URL. */ public static final int SYNTAX_URL = 7; /** * The SYNTAX_STRING attribute syntax specifies that the * attribute is of text type, i.e., can have any unicode characters */ public static final int SYNTAX_STRING = 8; /** * The SYNTAX_PASSWORD attribute syntax specifies that the * attribute is of password type, will be used by UI to mask the password * typed. */ public static final int SYNTAX_PASSWORD = 9; /** * The SYNTAX_NUMERIC attribute syntax specifies that the * attribute is numeric, i.e., can have numbers only. */ public static final int SYNTAX_NUMERIC = 10; /** * The SYNTAX_NUMBER attribute syntax specifies that the * attribute is a number. */ public static final int SYNTAX_NUMBER = 11; /** * The SYNTAX_PERCENT attribute syntax specifies that the * attribute is a percentage. */ public static final int SYNTAX_PERCENT = 12; /** * The SYNTAX_NUMBER_RANGE attribute syntax specifies that * the attribute is a number within a range. */ public static final int SYNTAX_NUMBER_RANGE = 13; /** * The SYNTAX_DECIMAL_RANGE attribute syntax specifies that * the attribute is a decimal number within a range. */ public static final int SYNTAX_DECIMAL_RANGE = 14; /** * The SYNTAX_DECIMAL_NUMBER attribute syntax specifies that * the attribute is a floating point number, e.g., 1.5, 3.56, etc. */ public static final int SYNTAX_DECIMAL_NUMBER = 15; /** * The SYNTAX_DN attribute syntax specifies that the * attribute should be an LDAP distinguished name (DN). */ public static final int SYNTAX_DN = 16; /** * The SYNTAX_PARAGRAPH attribute syntax specifies that the * attribute should be a paragraph */ public static final int SYNTAX_PARAGRAPH = 17; /** * The SYNTAX_DATE attribute syntax specifies that the * attribute should be a date */ public static final int SYNTAX_DATE = 18; /** * The SYNTAX_XML attribute syntax specifies that the * attribute should be a XML blob */ public static final int SYNTAX_XML = 19; /** * The SYNTAX_ENCRYPTED_PASSWORD attribute syntax specifies * that the attribute is of password type, will be used by UI to mask the * password typed. */ public static final int SYNTAX_ENCRYPTED_PASSWORD = 20; /** * The SYNTAX_SCRIPT attribute syntax specifies that the * attribute should be a script */ public static final int SYNTAX_SCRIPT = 21; private AttributeSchema attrSchema; protected AMAttributeSchema(AttributeSchema as) { attrSchema = as; } /** * The method returns the name of the attribute * * @return name of the attribute */ public String getName() { return attrSchema.getName(); } /** * The method returns the type of the attribute i.e., single, list or choice * * @return the type of the attribute. */ public int getType() { String type = attrSchema.getType().toString(); // Map the SMS attribute type to public attribute type if (type.equals(AttributeSchema.Type.SINGLE.toString())) return TYPE_SINGLE; else if (type.equals(AttributeSchema.Type.LIST.toString())) return TYPE_LIST; else if (type.equals(AttributeSchema.Type.SINGLE_CHOICE.toString())) return TYPE_SINGLE_CHOICE; else if (type.equals(AttributeSchema.Type.MULTIPLE_CHOICE.toString())) return TYPE_MULTIPLE_CHOICE; else if (type.equals(AttributeSchema.Type.SIGNATURE.toString())) return TYPE_SIGNATURE; else if (type.equals(AttributeSchema.Type.VALIDATOR.toString())) return TYPE_VALIDATOR; return -1; // Should'nt occur } /** * The method returns the UI type of the attribute i.e., link, button, ... * * @return the UI type of the attribute; UITYPE_UNDEFINED if * the UI type is not defined for the attribute */ public int getUIType() { AttributeSchema.UIType uitype = attrSchema.getUIType(); // Map the SMS attribute UI type to public attribute type if (uitype == null) { // UI type not defined return UITYPE_UNDEFINED; } else if (uitype.equals(AttributeSchema.UIType.RADIO)) { return UITYPE_RADIO; } else if (uitype.equals(AttributeSchema.UIType.LINK)) { return UITYPE_LINK; } else if (uitype.equals(AttributeSchema.UIType.BUTTON)) { return UITYPE_BUTTON; } return UITYPE_UNDEFINED; } /** * The method returns the syntax of the attribute i.e., string, boolean, * distinguished name (String), numeric. * * @return syntax of the attribute */ public int getSyntax() { String syntax = attrSchema.getSyntax().toString(); // Map the SMS attribute type to public attribute type if (syntax.equals(AttributeSchema.Syntax.BOOLEAN.toString())) return SYNTAX_BOOLEAN; else if (syntax.equals(AttributeSchema.Syntax.EMAIL.toString())) return SYNTAX_EMAIL; else if (syntax.equals(AttributeSchema.Syntax.URL.toString())) return SYNTAX_URL; else if (syntax.equals(AttributeSchema.Syntax.STRING.toString())) return SYNTAX_STRING; else if (syntax.equals(AttributeSchema.Syntax.ENCRYPTED_PASSWORD .toString())) return SYNTAX_ENCRYPTED_PASSWORD; else if (syntax.equals(AttributeSchema.Syntax.PASSWORD.toString())) return SYNTAX_PASSWORD; else if (syntax.equals(AttributeSchema.Syntax.NUMERIC.toString())) return SYNTAX_NUMERIC; else if (syntax.equals(AttributeSchema.Syntax.NUMBER.toString())) return SYNTAX_NUMBER; else if (syntax.equals(AttributeSchema.Syntax.PERCENT.toString())) return SYNTAX_PERCENT; else if (syntax.equals(AttributeSchema.Syntax.NUMBER_RANGE.toString())) return SYNTAX_NUMBER_RANGE; else if (syntax.equals(AttributeSchema.Syntax.DECIMAL_RANGE.toString())) return SYNTAX_DECIMAL_RANGE; else if (syntax .equals(AttributeSchema.Syntax.DECIMAL_NUMBER.toString())) return SYNTAX_DECIMAL_NUMBER; else if (syntax.equals(AttributeSchema.Syntax.DN.toString())) return SYNTAX_DN; else if (syntax.equals(AttributeSchema.Syntax.PARAGRAPH.toString())) return SYNTAX_PARAGRAPH; else if (syntax.equals(AttributeSchema.Syntax.XML.toString())) return SYNTAX_XML; else if (syntax.equals(AttributeSchema.Syntax.DATE.toString())) return SYNTAX_DATE; else if (syntax.equals(AttributeSchema.Syntax.SCRIPT.toString())) return SYNTAX_SCRIPT; return -1; } /** * Returns the value of the cosQualifier for this attribute * that is default or merge-schemes. * * @return String value of cosQualifier. */ public String getCosQualifier() { return attrSchema.getCosQualifier(); } /** * The method returns the default value of the attribute; * * @return Set containing the default values of the attribute or * Collections.EMPTY_SET otherwise */ public Set getDefaultValues() { return attrSchema.getDefaultValues(); } /** * If the attribute is of choice type, this method returns the possible * values for the attribute; null otherwise * * @return String array of possible choice values; null otherwise */ public String[] getChoiceValues() { return attrSchema.getChoiceValues(); } /** * Given a choice value, this method returns the i18nKey for that choice * value * * @param cValue * the choice value * @return the i18N key corresponding to the choice value */ public String getChoiceValueI18NKey(String cValue) { return attrSchema.getChoiceValueI18NKey(cValue); } /** * Returns I18N key to describe the configuration attribute. * * @return i18n index key to the resource bundle */ public String getI18NKey() { return attrSchema.getI18NKey(); } /** * Set I18N key to describe the configuration attribute * * @param i18nKey * value of i18nKey. * @throws AMException */ public void setI18NKey(String i18nKey) throws AMException { try { attrSchema.setI18NKey(i18nKey); } catch (SMSException se) { AMCommonUtils.debug.message( "AMAttributeSchema.setAttributeDefaults(Map): ", se); throw new AMException(AMSDKBundle.getString("916"), "916"); } catch (SSOException so) { AMCommonUtils.debug.message( "AMAttributeSchema.setAttributeDefaults(Map): ", so); throw new AMException(AMSDKBundle.getString("916"), "916"); } } /** * Method to get starting range for possible values of the attribute * * @return starting range for the attribute value */ public String getStartRange() { return attrSchema.getStartRange(); } /** * Method to get ending range for possible values of the attribute * * @return ending range for the attribute value */ public String getEndRange() { return attrSchema.getEndRange(); } /** * Method to get service specific attributes. It return the value of the * "any" attribute, if set in the XML schema for the service * * @return value of "any" attribute */ public String getAny() { return attrSchema.getAny(); } /** * Returns URL of the view bean for the attribute. * * @return URL for view bean */ public String getPropertiesViewBeanURL() { return attrSchema.getPropertiesViewBeanURL(); } /** * Method to get the string value for "TRUE" * * @return String for TRUE value */ public String getTrueValue() { return attrSchema.getTrueValue(); } /** * Method to get the i18n Key for BooleanTrueValue. * * @return String i18nKey for TRUE value */ public String getTrueValueI18NKey() { return attrSchema.getTrueValueI18NKey(); } /** * Method to get string value for "FALSE" * * @return String for FALSE value */ public String getFalseValue() { return attrSchema.getFalseValue(); } /** * Method to get the i18n Key for BooleanFalseValue. * * @return String i18nKey for FALSE value. */ public String getFalseValueI18NKey() { return attrSchema.getFalseValueI18NKey(); } /** * Method that returns the String representation of the * AMAttributeSchema. * * @return String representation of the AMAttributeSchema/ */ public String toString() { return attrSchema.toString(); } }