org.loom.mapping
Class ReloadableActionMappingRepository
java.lang.Object
org.loom.mapping.ReloadableActionMappingRepository
- All Implemented Interfaces:
- ActionMappingRepository, org.zeroturnaround.javarebel.ClassEventListener
@Singleton
public class ReloadableActionMappingRepository
- extends java.lang.Object
- implements ActionMappingRepository, org.zeroturnaround.javarebel.ClassEventListener
ActionMappingRepository that detects changes to classes in the background.
To be used with JavaRebel.
The current implementation supports modifications to any Action class or dependent classes
(classes with annotations that have created validators in any action).
Class additions or deletions are not yet supported.
Fields inherited from interface org.zeroturnaround.javarebel.ClassEventListener |
EVENT_LOADED, EVENT_RELOADED, PRIORITY_CORE, PRIORITY_DEFAULT, PRIORITY_WEB |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReloadableActionMappingRepository
public ReloadableActionMappingRepository(ActionMappingRepository delegate)
ReloadableActionMappingRepository
public ReloadableActionMappingRepository()
priority
public int priority()
- Specified by:
priority
in interface org.zeroturnaround.javarebel.ClassEventListener
onClassEvent
public void onClassEvent(int eventType,
java.lang.Class clazz)
- Load/Reload an action mapping
- Specified by:
onClassEvent
in interface org.zeroturnaround.javarebel.ClassEventListener
isAction
public static boolean isAction(java.lang.Class<?> clazz)
- Returns:
- true if it's a valid Action class, false otherwise
getEvent
public Event getEvent(java.lang.String uri,
LoomServletRequest request)
- Specified by:
getEvent
in interface ActionMappingRepository
- 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
getActionMappingByName
public ActionMapping getActionMappingByName(java.lang.String actionClassName)
- Specified by:
getActionMappingByName
in interface ActionMappingRepository
- Parameters:
actionClassName
- the class name OR the unqualified class name (without the package path)
- Returns:
- the actionMapping
removeActionMapping
public ActionMapping removeActionMapping(java.lang.Class<? extends Action> actionClass)
- Description copied from interface:
ActionMappingRepository
- Remove the action mapping for one action class
- Specified by:
removeActionMapping
in interface ActionMappingRepository
- Parameters:
actionClass
- the action class to be removed
- Returns:
- the removed ActionMapping instance, null if not found
addActionMapping
public void addActionMapping(ActionMapping mapping)
- Specified by:
addActionMapping
in interface ActionMappingRepository
setCatchReloadingExceptions
public void setCatchReloadingExceptions(boolean catchReloadingExceptions)
getMappings
public java.util.Collection<java.lang.String> getMappings()
- Specified by:
getMappings
in interface ActionMappingRepository
getHandle
public java.lang.String getHandle(java.lang.String uri)
- Specified by:
getHandle
in interface ActionMappingRepository
getActionMappingByClass
public ActionMapping getActionMappingByClass(java.lang.Class<? extends Action> actionClass)
- Specified by:
getActionMappingByClass
in interface ActionMappingRepository
- Parameters:
actionClass
- the action class
- Returns:
- the required actionMapping
validateActionMappings
public void validateActionMappings()
- Description copied from interface:
ActionMappingRepository
- Validate the registered ActionMappings to check that there are no two
overlapping events that may produce the same URL
- Specified by:
validateActionMappings
in interface ActionMappingRepository
setActionMappingFactory
public void setActionMappingFactory(ActionMappingFactory actionMappingFactory)
setDelegate
@Inject
public void setDelegate(@Delegate
ActionMappingRepository delegate)