public void addBreakpoint(ITransformationBreakpointHandler breakpoint)
     throws ViatraDebuggerException {
   if (!breakpoints.contains(breakpoint)) {
     if (breakpoint instanceof ConditionalTransformationBreakpointHandler && engine != null) {
       ((ConditionalTransformationBreakpointHandler) breakpoint).setEngine(engine);
     }
     breakpoints.add(breakpoint);
   }
 }
 @Override
 public void initializeListener(ViatraQueryEngine engine) {
   this.engine = engine;
   for (ITransformationBreakpointHandler breakpoint : breakpoints) {
     if (breakpoint instanceof ConditionalTransformationBreakpointHandler && engine != null) {
       try {
         ((ConditionalTransformationBreakpointHandler) breakpoint).setEngine(engine);
       } catch (ViatraDebuggerException e) {
         ViatraQueryLoggingUtil.getDefaultLogger().error(e.getMessage(), e);
       }
     }
   }
 }