// Path: send-notification/src/main/java/fr/jcgay/notification/configuration/OperatingSystem.java
// public class OperatingSystem {
// 
//     private final String currentOs;
// 
//     public OperatingSystem() {
//         currentOs = System.getProperty("os.name").toLowerCase();
//     }
// 
//     public OperatingSystem(String currentOs) {
//         this.currentOs = currentOs.toLowerCase();
//     }
// 
//     public boolean isMac() {
//         return currentOs.contains("mac");
//     }
// 
//     public boolean isWindows() {
//         return currentOs.contains("win");
//     }
// 
//     @Override
//     public String toString() {
//         return "OperatingSystem{" +
//                 "currentOs='" + currentOs + '\'' +
//                 '}';
//     }
// }


import com.google.code.jgntp.GntpErrorStatus;
import com.google.code.jgntp.GntpListener;
import com.google.code.jgntp.GntpNotification;
import fr.jcgay.notification.configuration.OperatingSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
        @Override
        public void onNotificationError(GntpNotification notification, GntpErrorStatus status, String description) {
            LOGGER.error(error("Growl notification has failed.\n {}: {}\n {}"), status, description, notification);
        }

        @Override
        public void onCommunicationError(Throwable t) {
            LOGGER.error(error("Cannot communicate with Growl."), t);
        }
    },
    DEBUG {
        @Override
        public void onRegistrationError(GntpErrorStatus status, String description) {
            LOGGER.debug(error("Growl registration has failed.\n {}: {}"), status, description);
        }

        @Override
        public void onNotificationError(GntpNotification notification, GntpErrorStatus status, String description) {
            LOGGER.debug(error("Growl notification has failed.\n {}: {}\n {}"), status, description, notification);
        }

        @Override
        public void onCommunicationError(Throwable t) {
            LOGGER.debug(error("Cannot communicate with Growl."), t);
        }
    };

    private static final Logger LOGGER = LoggerFactory.getLogger(GntpSlf4jListener.class);
    private static final String OSX_URL = "https://github.com/jcgay/send-notification/wiki/Growl-(OS-X)";
    private static final String WINDOWS_URL = "https://github.com/jcgay/send-notification/wiki/Growl-(Windows)";
// Path: send-notification/src/main/java/fr/jcgay/notification/configuration/OperatingSystem.java
// public class OperatingSystem {
// 
//     private final String currentOs;
// 
//     public OperatingSystem() {
//         currentOs = System.getProperty("os.name").toLowerCase();
//     }
// 
//     public OperatingSystem(String currentOs) {
//         this.currentOs = currentOs.toLowerCase();
//     }
// 
//     public boolean isMac() {
//         return currentOs.contains("mac");
//     }
// 
//     public boolean isWindows() {
//         return currentOs.contains("win");
//     }
// 
//     @Override
//     public String toString() {
//         return "OperatingSystem{" +
//                 "currentOs='" + currentOs + '\'' +
//                 '}';
//     }
// }


// Path: send-notification/src/main/java/fr/jcgay/notification/notifier/growl/GntpSlf4jListener.java
import com.google.code.jgntp.GntpErrorStatus;
import com.google.code.jgntp.GntpListener;
import com.google.code.jgntp.GntpNotification;
import fr.jcgay.notification.configuration.OperatingSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

        @Override
        public void onNotificationError(GntpNotification notification, GntpErrorStatus status, String description) {
            LOGGER.error(error("Growl notification has failed.\n {}: {}\n {}"), status, description, notification);
        }

        @Override
        public void onCommunicationError(Throwable t) {
            LOGGER.error(error("Cannot communicate with Growl."), t);
        }
    },
    DEBUG {
        @Override
        public void onRegistrationError(GntpErrorStatus status, String description) {
            LOGGER.debug(error("Growl registration has failed.\n {}: {}"), status, description);
        }

        @Override
        public void onNotificationError(GntpNotification notification, GntpErrorStatus status, String description) {
            LOGGER.debug(error("Growl notification has failed.\n {}: {}\n {}"), status, description, notification);
        }

        @Override
        public void onCommunicationError(Throwable t) {
            LOGGER.debug(error("Cannot communicate with Growl."), t);
        }
    };

    private static final Logger LOGGER = LoggerFactory.getLogger(GntpSlf4jListener.class);
    private static final String OSX_URL = "https://github.com/jcgay/send-notification/wiki/Growl-(OS-X)";
    private static final String WINDOWS_URL = "https://github.com/jcgay/send-notification/wiki/Growl-(Windows)";
    private static final OperatingSystem currentOs = new OperatingSystem();