public void childRemoved(@NotNull PsiTreeChangeEventImpl event) {
   event.setCode(PsiTreeChangeEventImpl.PsiEventType.CHILD_REMOVED);
   if (LOG.isDebugEnabled()) {
     LOG.debug("childRemoved: child = " + event.getChild() + ", parent = " + event.getParent());
   }
   fireEvent(event);
   afterChange(true);
 }
 @Override
 public void beforeChildRemoval(@NotNull PsiTreeChangeEventImpl event) {
   beforeChange(true);
   event.setCode(PsiTreeChangeEventImpl.PsiEventType.BEFORE_CHILD_REMOVAL);
   if (LOG.isDebugEnabled()) {
     LOG.debug(
         "beforeChildRemoval: child = " + event.getChild() + ", parent = " + event.getParent());
   }
   fireEvent(event);
 }
 public void beforeChildMovement(@NotNull PsiTreeChangeEventImpl event) {
   beforeChange(true);
   event.setCode(PsiTreeChangeEventImpl.PsiEventType.BEFORE_CHILD_MOVEMENT);
   if (LOG.isDebugEnabled()) {
     LOG.debug(
         "beforeChildMovement: child = "
             + event.getChild()
             + ", oldParent = "
             + event.getOldParent()
             + ", newParent = "
             + event.getNewParent());
   }
   fireEvent(event);
 }