org.loom.mapping
Class ActionMappingRepository

java.lang.Object
  extended by org.loom.mapping.ActionMappingRepository
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware
Direct Known Subclasses:
ReloadableActionMappingRepository

public class ActionMappingRepository
extends java.lang.Object
implements org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean

Central repository of all configured ActionMapping instances.

Author:
Ignacio Coloma

Constructor Summary
ActionMappingRepository()
           
 
Method Summary
 void addActionMapping(ActionMapping mapping)
           
 void afterPropertiesSet()
           
 Action createActionInstance(ActionMapping mapping)
          Create an Action instance for the corresponding ActionMapping
 ActionMapping getActionMappingByClass(java.lang.Class<? extends Action> actionClass)
           
 ActionMapping getActionMappingByName(java.lang.String actionClassName)
           
 ActionMappingFactory getActionMappingFactory()
           
 org.springframework.context.ApplicationContext getApplicationContext()
           
 Event getEvent(java.lang.String uri, LoomServletRequest request)
           
 java.lang.String getHandle(java.lang.String uri)
           
 java.lang.String getHandleSeparator()
           
 java.util.Map<java.lang.String,ActionMapping> getMappings()
           
 ActionMapping removeActionMapping(java.lang.Class<? extends Action> actionClass)
          Remove the action mapping for one action class
 void scanAndRegisterActions()
          Scan and register all Action instances detected by Spring
 void setActionMappingFactory(ActionMappingFactory actionMappingFactory)
           
 void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
           
 void setHandleSeparator(java.lang.String handleSeparator)
           
 void validateActionMappings()
          Validate the registered ActionMappings to check that there are no two overlapping events that may produce the same URL
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActionMappingRepository

public ActionMappingRepository()
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

scanAndRegisterActions

public void scanAndRegisterActions()
Scan and register all Action instances detected by Spring

Parameters:
actionMappingRepository - the repository where detected mappings should be registered

getEvent

public Event getEvent(java.lang.String uri,
                      LoomServletRequest request)
Parameters:
uri - the uri as returned by request.getServletPath()
request - the current request object
Returns:
the ActionMapping corresponding to this request, null if no Action was a match

getHandle

public java.lang.String getHandle(java.lang.String uri)

removeActionMapping

public ActionMapping removeActionMapping(java.lang.Class<? extends Action> actionClass)
Remove the action mapping for one action class

Parameters:
actionClass - the action class to be removed
Returns:
the removed ActionMapping instance, null if not found

createActionInstance

public Action createActionInstance(ActionMapping mapping)
Create an Action instance for the corresponding ActionMapping


validateActionMappings

public void validateActionMappings()
Validate the registered ActionMappings to check that there are no two overlapping events that may produce the same URL


addActionMapping

public void addActionMapping(ActionMapping mapping)

getActionMappingByName

public ActionMapping getActionMappingByName(java.lang.String actionClassName)
Parameters:
actionClassName - the class name OR the unqualified class name (without the package path)
Returns:
the actionMapping
Throws:
java.lang.IllegalArgumentException - if there is no action registered with that class name

getActionMappingByClass

public ActionMapping getActionMappingByClass(java.lang.Class<? extends Action> actionClass)
Parameters:
actionClass - the action class
Returns:
the required actionMapping
Throws:
java.lang.IllegalArgumentException - if there is no action registered with that class name

getMappings

public java.util.Map<java.lang.String,ActionMapping> getMappings()

getHandleSeparator

public java.lang.String getHandleSeparator()

setHandleSeparator

public void setHandleSeparator(java.lang.String handleSeparator)

setApplicationContext

public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
Specified by:
setApplicationContext in interface org.springframework.context.ApplicationContextAware

setActionMappingFactory

public void setActionMappingFactory(ActionMappingFactory actionMappingFactory)

getApplicationContext

public org.springframework.context.ApplicationContext getApplicationContext()

getActionMappingFactory

public ActionMappingFactory getActionMappingFactory()


The Loom Framework 1.6-SNAPSHOT.
Licensed under the Apache License, Version 2.0 by Extrema Sistemas de Informacion S.L.