SaveListener.java

package sk.iway.iwcm.components.structuremirroring;

import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

import sk.iway.iwcm.Logger;
import sk.iway.iwcm.doc.DocDetails;
import sk.iway.iwcm.doc.GroupDetails;
import sk.iway.iwcm.editor.EditorForm;
import sk.iway.iwcm.system.ConfDetails;
import sk.iway.iwcm.system.spring.events.WebjetEvent;

/**
 * Pocuva eventy z WebJETu potrebne na mirroring struktury
 */
@Component
public class SaveListener {

   /**
    * Ulozenie/zmazanie adresara
    * @param event
    */
   @EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.doc.GroupDetails'")
   public void handleGroupSave(final WebjetEvent<GroupDetails> event) {
      try {
         //Logger.debug(SaveListener.class, "================================================= handleGroupSave type=" + event.getEventType() + ", source=" + event.getSource().getClass()+" thread="+Thread.currentThread().getName());
         GroupMirroringServiceV9 service = new GroupMirroringServiceV9();
         service.handleGroupSave(event.getSource(), event.getEventType());
      } catch (Exception ex) {
          Logger.error(SaveListener.class, ex);
      }
   }

    /**
    * Ulozenie web stranky vo forme EditorForm (stara verzia)
    * @param event
    */
    @EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.editor.EditorForm'")
    public void handleEditorSave(final WebjetEvent<EditorForm> event) {
       try {
          Logger.debug(SaveListener.class, "================================================= handleEditorSave type=" + event.getEventType() + ", source=" + event.getSource().getClass()+" thread="+Thread.currentThread().getName());
          DocMirroringServiceV9 service = new DocMirroringServiceV9();
          DocDetails doc = event.getSource().toDocDetails();
          service.handleDocSave(doc, event.getEventType());
          event.getSource().setSyncId(doc.getSyncId());
       } catch (Exception ex) {
        Logger.error(SaveListener.class, ex);
       }
    }

   /**
    * Ulozenie/Zmazanie web stranky vo forme DocDetails
    * @param event
    */
   @EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.doc.DocDetails'")
   public void handleDocSave(final WebjetEvent<DocDetails> event) {
      try {
         Logger.debug(SaveListener.class, "================================================= handleEditorSave type=" + event.getEventType() + ", source=" + event.getSource().getClass()+" thread="+Thread.currentThread().getName());
         DocMirroringServiceV9 service = new DocMirroringServiceV9();
         service.handleDocSave(event.getSource(), event.getEventType());
      } catch (Exception ex) {
        Logger.error(SaveListener.class, ex);
      }
   }

   /**
    * Ulozenie konfiguracie, potrebujeme to na nastavenie syncu korenovych adesarov mirroringu
    * @param event
    */
   @EventListener(condition = "#event.clazz eq 'sk.iway.iwcm.system.ConfDetails'")
   public void handleConfSave(final WebjetEvent<ConfDetails> event) {
      try {
         //Logger.debug(SaveListener.class, "================================================= handleConfSave type=" + event.getEventType() + ", source=" + event.getSource().getClass()+" thread="+Thread.currentThread().getName());
         ConfDetails conf = event.getSource();
         if (conf == null) return;

         if ("structureMirroringConfig".equals(conf.getName())) {
            Logger.debug(SaveListener.class, "conf name="+conf.getName()+" value="+conf.getValue());
            MirroringService.checkRootGroupsConfig();
         }
      } catch (Exception ex) {
        Logger.error(SaveListener.class, ex);
      }
   }

}