public void addActionMapping ( ActionModel mapping ) { String mappingPath = mapping . getPath ( ) ; ActionModel conflictingActionMapping = ( ActionModel ) _actionMappings . get ( mappingPath ) ; if ( conflictingActionMapping != null ) { ActionModel defaultMappingForThisPath = conflictingActionMapping ; // // If the new action mapping takes no form, then it has the highest precedence, and replaces the existing // "natural" mapping for the given path. Otherwise, replace the existing one if the existing one has a // form bean and if the new mapping's form bean type comes alphabetically before the existing one's. // if ( mapping . getFormBeanName ( ) == null || ( conflictingActionMapping . getFormBeanName ( ) != null && getBeanType ( mapping ) . compareTo ( getBeanType ( conflictingActionMapping ) ) < 0 ) ) { _actionMappings . remove ( mappingPath ) ; _actionMappings . put ( mappingPath , mapping ) ; defaultMappingForThisPath = mapping ; conflictingActionMapping . setOverloaded ( false ) ; addDisambiguatedActionMapping ( conflictingActionMapping ) ; } else { addDisambiguatedActionMapping ( mapping ) ; } defaultMappingForThisPath . setOverloaded ( true ) ; defaultMappingForThisPath . setComment ( DUPLICATE_ACTION_COMMENT . replaceAll ( "\\{0\\}" , mappingPath ) ) ; // @TODO I18N } else { _actionMappings . put ( mappingPath , mapping ) ; } }
Adds a new ActionMapping to this StrutsApp .