edu.internet2.middleware.grouper.ui
Class DefaultTemplateResolverImpl

java.lang.Object
  extended by edu.internet2.middleware.grouper.ui.DefaultTemplateResolverImpl
All Implemented Interfaces:
TemplateResolver

public class DefaultTemplateResolverImpl
extends Object
implements TemplateResolver

Default implementation of the Grouper TemplateResolver interface. Deals with groups, subjects, stems and Collections. GroupFields will be added. New objectTypes can be supported by extending this Class

Version:
$Id: DefaultTemplateResolverImpl.java,v 1.4 2005/07/28 10:10:36 isgwb Exp $
Author:
Gary Brown.

Constructor Summary
DefaultTemplateResolverImpl()
          Default constructor
 
Method Summary
 String getAuditEntryTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
           
 String getCollectionTemplateName(Object object, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Get template name for provided Collection and view.
 String getCompositeTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Composites don't have types so simple lookup.
 String getFieldTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Depending on the Field type (list or atribute) may want to have different template.
 String getGrouperGroupTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Depending on the Group type may want to have different template.
 String getGrouperStemTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Get template name for a stem.
 String getGroupTypeTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Find template for a group type.
 String getI2miSubjectTemplateName(Object object, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Depending on the subject type may want to have a different template.
 String getMembershipTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Get template name for a Membership.
 String getObjectType(Object obj)
          Given an Object determine its type.
 String getSubjectPrivilegeTemplateName(Object obj, String view, ResourceBundle mediaResources, HttpServletRequest request)
          Get template name for a SubjectPrivilege (type=access/naming).
 String getTemplateName(Object obj, String view, ResourceBundle bundle, HttpServletRequest request)
          Given an Object and the name of a view, use the ResourceBundle to determine which JSP should render the view.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultTemplateResolverImpl

public DefaultTemplateResolverImpl()
Default constructor

Method Detail

getObjectType

public String getObjectType(Object obj)
Description copied from interface: TemplateResolver
Given an Object determine its type. The type is not necessarily the Java type - it can be an entity type e.g. GroupAsMap has an object type of GrouperGroup

Specified by:
getObjectType in interface TemplateResolver
Parameters:
obj - object to determine type of
Returns:
generic type of obj

getTemplateName

public String getTemplateName(Object obj,
                              String view,
                              ResourceBundle bundle,
                              HttpServletRequest request)
Description copied from interface: TemplateResolver
Given an Object and the name of a view, use the ResourceBundle to determine which JSP should render the view. request is redundant at the moment.

Specified by:
getTemplateName in interface TemplateResolver
Parameters:
obj - object to be rendered
view - name of template
bundle - ResourceBundle containing keys which can be maped to template names
request - current HttpServletRequest
Returns:
name of template to use to render obj

getGrouperGroupTemplateName

public String getGrouperGroupTemplateName(Object obj,
                                          String view,
                                          ResourceBundle mediaResources,
                                          HttpServletRequest request)
Depending on the Group type may want to have different template. Look for more specific keys first: TODO groups can have multiple types - how best to cope?

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getGrouperStemTemplateName

public String getGrouperStemTemplateName(Object obj,
                                         String view,
                                         ResourceBundle mediaResources,
                                         HttpServletRequest request)
Get template name for a stem. Look for:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getMembershipTemplateName

public String getMembershipTemplateName(Object obj,
                                        String view,
                                        ResourceBundle mediaResources,
                                        HttpServletRequest request)
Get template name for a Membership. Look for:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getGroupTypeTemplateName

public String getGroupTypeTemplateName(Object obj,
                                       String view,
                                       ResourceBundle mediaResources,
                                       HttpServletRequest request)
Find template for a group type. Look for more specific keys first:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getCompositeTemplateName

public String getCompositeTemplateName(Object obj,
                                       String view,
                                       ResourceBundle mediaResources,
                                       HttpServletRequest request)
Composites don't have types so simple lookup. Look for more specific keys first, then default:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getAuditEntryTemplateName

public String getAuditEntryTemplateName(Object obj,
                                        String view,
                                        ResourceBundle mediaResources,
                                        HttpServletRequest request)

getFieldTemplateName

public String getFieldTemplateName(Object obj,
                                   String view,
                                   ResourceBundle mediaResources,
                                   HttpServletRequest request)
Depending on the Field type (list or atribute) may want to have different template. Look for more specific keys first:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getSubjectPrivilegeTemplateName

public String getSubjectPrivilegeTemplateName(Object obj,
                                              String view,
                                              ResourceBundle mediaResources,
                                              HttpServletRequest request)
Get template name for a SubjectPrivilege (type=access/naming). Look for:

Parameters:
obj - object to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getI2miSubjectTemplateName

public String getI2miSubjectTemplateName(Object object,
                                         String view,
                                         ResourceBundle mediaResources,
                                         HttpServletRequest request)
Depending on the subject type may want to have a different template. The same subject type may be retrieved by different Sources, and may have different attributes available. Look for more specific keys first. If a value=* then don`t use the specific default - try the next key instead/

Parameters:
object - to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template

getCollectionTemplateName

public String getCollectionTemplateName(Object object,
                                        String view,
                                        ResourceBundle mediaResources,
                                        HttpServletRequest request)
Get template name for provided Collection and view. If none specified use default.

Parameters:
object - to find template for
view - name of template to find
mediaResources - ResourceBundle containing template names and values
request - HttpServletRequest
Returns:
name of template