question: void eventPreModify ( ActionType type , long position , boolean isSingle ) { if ( type != currentActionType || ! isSingle || System . currentTimeMillis ( ) - previousTime > MERGE_TIME || ( type == ActionType . INSERT || type == ActionType . OVERWRITE ) && actionExclusiveEnd ( ) != position || type == ActionType . DELETE && actionPosition ( ) != position && actionPosition ( ) - 1L != position ) { startAction ( type , isSingle ) ; } else { isBackspace = actionPosition ( ) > position ; } if ( isSingle && type == ActionType . INSERT ) { updateNewRange ( position ) ; previousTime = System . currentTimeMillis ( ) ; } }
target:  User event: single/block delete/insert/overwrite. Called before any change has been done