com.iplanet.am.sdk
Interface AMTemplate

All Superinterfaces:
AMConstants, AMObject

public interface AMTemplate
extends AMObject

Represents a service template associated with a AMObject. Sun Java System Access Manager distinguishes between virtual and entry attibutes. Per iDS terminology, virtual attribute is an attribute that is not physically stored in an LDAP entry but still returned with the LDAP entry as a result of a LDAP search operation. Virtual attributes are analagous to the "inherited" attributes. Entry attributes are non-inherited attributes. For each AMObject, virtual attributes can be grouped in a Template on a per-service basis. Hence, there may be one service Template per service for any given AMObject. A given object may have more than one Template, in total, one each for each of the services for that object. Such templates determine the service attributes inherited by all the other objects within the scope of this object.

When any object inherits more than one template for the same service (by virtue of being in the scope of two or more objects with service templates), conflicts between such templates are resolved by the use of template priorities. In this priority scheme, zero is the highest possible priority with the lower priorities extending towards finity. Templates with higher priorities will be favored over and to the exclusion of templates with lower priorities. Templates which do not have an explicitly assigned priority are considered to have the lowest priority possible, or no priority. In the case where two or more templates are being considered for inheritance of an attribute value, and they have the same (or no) priority, the result is undefined, but does not exclude the possibility that a value will be returned, however arbitrarily chosen.

The two types of templates supported in Identity Management are: Organization templates and Dynamic templates. Organizatin templates manage service attributes of services that are registered to an organization, while dynamic templates manage service attributes for both organizations and roles.

Note: Policy templates are no longer supported by AM SDK. Use com.sun.identity.policy package to manage policy attributes.

Code sample on how to obtain service templates from AMOrganization object:

AMTemplate orgTemplate;
if (org.orgTemplateExists("iPlanetAMAuthService") {
orgTemplate = org.getTemplate("iPlanetAMAuthService", 
AMTemplate.ORGANIZATION_TEMPLATE);
Map attributes = orgTemplate.getAttributes();
- more code here -
}


AMTemplate dynTemplate = org.getTemplate("iPlanetAMSessionService",
AMTemplates.DYNAMIC_TEMPLATE);
if (dynTemplate.isExists()) {
Map attributes = dynTemplate.getAttributes();
- more code here -
}


Field Summary
static int ALL_TEMPLATES
          Represents both dynamic and policy template for a service
static int DYNAMIC_TEMPLATE
          Represents the Dynamic template type
static int ORGANIZATION_TEMPLATE
          Represents an Organization template type
static int POLICY_TEMPLATE
          Represents a Policy template type
static int UNDEFINED_PRIORITY
          Represents the priority of a template whose priority is not explicitly set.
 
Fields inherited from interface com.iplanet.am.sdk.AMObject
ACTIVE, ACTIVE_VALUE, ASSIGNABLE_DYNAMIC_GROUP, DELETED, DELETED_VALUE, DYNAMIC_GROUP, FILTERED_ROLE, GROUP, GROUP_CONTAINER, GROUP_PROFILE, INACTIVE, INACTIVE_VALUE, MANAGED_ROLE, ORGANIZATION, ORGANIZATIONAL_UNIT, PEOPLE_CONTAINER, POLICY, RESOURCE, ROLE, ROLE_PROFILE, SERVICE, STATIC_GROUP, TEMPLATE, UNDETERMINED_OBJECT_TYPE, UNKNOWN_OBJECT_TYPE, USER
 
Fields inherited from interface com.iplanet.am.sdk.AMConstants
ADD_MEMBER, ADMIN_GROUPS_ENABLED_ATTR, ADMIN_ROLE_ATTR, ADMINISTRATION_SERVICE, CACHE_ENABLED_DISABLED_KEY, CACHE_MAX_SIZE_KEY, COMPLIANCE_SPECIAL_FILTER_ATTR, COMPLIANCE_USER_DELETION_ATTR, CONTAINER_DEFAULT_TEMPLATE_ROLE, CONTAINER_SUPPORTED_TYPES_ATTRIBUTE, DCT_ATTRIBUTE_LIST_ATTR, DCT_ENABLED_ATTR, DOMAIN_ADMINISTRATORS, DOMAIN_HELP_DESK_ADMINISTRATORS, EMAIL_ATTRIBUTE, FILTER_ATTR_NAME, INET_ADMIN_OBJECT_CLASS, INET_DOMAIN_STATUS_ATTR, INET_DOMAIN_STATUS_ATTRIBUTE, INVALID_USERID_CHARACTERS, OTHER_COSATTR_TYPE, POLICY_COSATTR_TYPE, POLICY_SUFFIX, PRE_POST_PROCESSING_MODULES_ATTR, REMOVE_ATTRIBUTE, REMOVE_MEMBER, REQUIRED_SERVICES_ATTR, ROLE_MANAGED_CONTAINER_DN_ATTRIBUTE, SCOPE_BASE, SCOPE_ONE, SCOPE_SUB, SERVICE_STATUS_ATTRIBUTE, STATIC_GROUP_DN_ATTRIBUTE, SUBSCRIBABLE_ATTRIBUTE, UNIQUE_ATTRIBUTE_LIST_ATTRIBUTE, UNIQUE_MEMBER_ATTRIBUTE, USER_CREATE_NOTIFICATION_LIST, USER_DELETE_NOTIFICATION_LIST, USER_ENCRYPTED_PASSWORD_ATTRIBUTE, USER_ENTRY_PROCESSING_IMPL, USER_MODIFY_NOTIFICATION_LIST, USER_PASSWORD_ATTRIBUTE, USER_SEARCH_RETURN_ATTR, USERID_PASSWORD_VALIDATION_CLASS
 
Method Summary
 java.util.Set getAttributeSchemas()
          Returns a set of Attribute Schemas that defines the schema (metadata) of this template.
 java.util.Set getPolicyNames()
          Returns a set of policy distinguished names if this AMTemplate is a named policy template, otherwise returns null.
 int getPriority()
          Returns the priority of this template in the DIT.
 java.lang.String getServiceName()
          Gets the name of the service to which this template belongs.
 int getType()
          Gets the type of the template.
 void setPriority(int priority)
          Sets the priority of this template in the DIT
 
Methods inherited from interface com.iplanet.am.sdk.AMObject
addEventListener, assignPolicies, assignServices, createPolicyTemplate, createPolicyTemplate, createTemplate, createTemplate, delete, delete, getAssignedServices, getAttribute, getAttributeByteArray, getAttributes, getAttributes, getAttributesByteArray, getAttributesByteArray, getAttributesFromDataStore, getAttributesFromDataStore, getDN, getOrganizationDN, getParentDN, getPolicy, getPolicyTemplate, getServiceAttributes, getServiceStatus, getStringAttribute, getTemplate, isExists, modifyService, purge, removeAttributes, removeEventListener, search, setAttributeByteArray, setAttributes, setAttributesByteArray, setServiceStatus, setStringAttribute, store, store, unassignPolicies, unassignServices
 

Field Detail

POLICY_TEMPLATE

public static final int POLICY_TEMPLATE
Represents a Policy template type

DYNAMIC_TEMPLATE

public static final int DYNAMIC_TEMPLATE
Represents the Dynamic template type

ORGANIZATION_TEMPLATE

public static final int ORGANIZATION_TEMPLATE
Represents an Organization template type

ALL_TEMPLATES

public static final int ALL_TEMPLATES
Represents both dynamic and policy template for a service

UNDEFINED_PRIORITY

public static final int UNDEFINED_PRIORITY
Represents the priority of a template whose priority is not explicitly set.
Method Detail

getServiceName

public java.lang.String getServiceName()
Gets the name of the service to which this template belongs. This method can be used in conjunction with SMS APIs to get the AttributeSchema/ServiceSchema for the service.
Returns:
service name.

getAttributeSchemas

public java.util.Set getAttributeSchemas()
                                  throws AMException,
                                         SSOException
Returns a set of Attribute Schemas that defines the schema (metadata) of this template.
Returns:
Set of com.sun.identity.sm.AttributeSchema for this template.
Throws:
AMException - if an error is encountered when trying to access/retrieve data from the data store.
SSOException - if the single sign on token is no longer valid.

getPriority

public int getPriority()
                throws SSOException
Returns the priority of this template in the DIT.
Returns:
priority.
Throws:
SSOException - if the single sign on token is no longer valid.

setPriority

public void setPriority(int priority)
                 throws AMException,
                        SSOException
Sets the priority of this template in the DIT
Parameters:
priority - priority
Throws:
AMException - if an error is encountered when trying to access/retrieve data from the data store.
SSOException - if the single sign on token is no longer valid.

getType

public int getType()
Gets the type of the template.
Returns:
Returns one of the following possible values:
  • DYNAMIC_TEMPLATE
  • ORGANIZATION_TEMPLATE

getPolicyNames

public java.util.Set getPolicyNames()
                             throws AMException,
                                    SSOException
Returns a set of policy distinguished names if this AMTemplate is a named policy template, otherwise returns null.
Returns:
set of policy distinguished names.
Throws:
AMException - if an error is encountered when trying to access/retrieve data from the data store.
SSOException - if the single sign on token is no longer valid.


Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.