code: public void parseBoundaryTimerEventDefinition(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) {
      boundaryActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.BOUNDARY_TIMER);
      TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, boundaryActivity, TimerExecuteNestedActivityJobHandler.TYPE);
  
      // ACT-1427
      if (interrupting) {
        timerDeclaration.setInterruptingTimer(true);
  
        Element timeCycleElement = timerEventDefinition.element("timeCycle");
        if (timeCycleElement != null) {
          addTimeCycleWarning(timeCycleElement, "cancelling boundary");
        }
      }
  
      addTimerDeclaration(boundaryActivity.getEventScope(), timerDeclaration);
  
      for (BpmnParseListener parseListener : parseListeners) {
        parseListener.parseBoundaryTimerEventDefinition(timerEventDefinition, interrupting, boundaryActivity);
      }
    }
docs: Parses a boundary timer event. The end-result will be that the given nested
  activity will get the appropriate {@link ActivityBehavior}.
  
  @param timerEventDefinition
  The XML element corresponding with the timer event details
  @param interrupting
  Indicates whether this timer is interrupting.
  @param boundaryActivity
  The activity which maps to the structure of the timer event on the
  boundary of another activity. Note that this is NOT the activity
  onto which the boundary event is attached, but a nested activity
  inside this activity, specifically created for this event.