// Path: src/main/java/com/codereligion/bugsnag/logback/model/NotificationVO.java
// public class NotificationVO {
// 
//     /**
//      * The api key associated with the project. Informs bugsnag which project has generated this error.
//      */
//     private String apiKey;
// 
//     /**
//      * This object describes the notifier itself. These properties are used
//      * within bugsnag to track error rates from a notifier.
//      */
//     private NotifierVO notifier = new NotifierVO();
// 
//     /**
//      * A list of error events that bugsnag should be notified of. In the current version of his notifier
//      * the list will contain only one event.
//      */
//     private List<EventVO> events = Lists.newArrayList();
// 
//     public String getApiKey() {
//         return apiKey;
//     }
// 
//     public void setApiKey(final String apiKey) {
//         this.apiKey = apiKey;
//     }
// 
//     public List<EventVO> getEvents() {
//         return events;
//     }
// 
//     public void addEvents(final List<EventVO> events) {
//         this.events.addAll(events);
//     }
// 
//     public NotifierVO getNotifier() {
//         return notifier;
//     }
// }


import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import com.codereligion.bugsnag.logback.model.NotificationVO;
import com.google.common.base.Splitter;
import com.google.common.collect.Sets;
import java.util.Set;

    @Override
    public void start() {
        if (configuration.isInvalid()) {
            configuration.addErrors(this);
            return;
        }

        sender.start(configuration, this);
        super.start();
    }

    @Override
    public void stop() {

        if (!isStarted()) {
            return;
        }

        sender.stop();
        super.stop();
    }

    @Override
    protected void append(final ILoggingEvent event) {

        if (!isStarted() || configuration.isStageIgnored() || shouldNotNotifyFor(event)) {
            return;
        }

// Path: src/main/java/com/codereligion/bugsnag/logback/model/NotificationVO.java
// public class NotificationVO {
// 
//     /**
//      * The api key associated with the project. Informs bugsnag which project has generated this error.
//      */
//     private String apiKey;
// 
//     /**
//      * This object describes the notifier itself. These properties are used
//      * within bugsnag to track error rates from a notifier.
//      */
//     private NotifierVO notifier = new NotifierVO();
// 
//     /**
//      * A list of error events that bugsnag should be notified of. In the current version of his notifier
//      * the list will contain only one event.
//      */
//     private List<EventVO> events = Lists.newArrayList();
// 
//     public String getApiKey() {
//         return apiKey;
//     }
// 
//     public void setApiKey(final String apiKey) {
//         this.apiKey = apiKey;
//     }
// 
//     public List<EventVO> getEvents() {
//         return events;
//     }
// 
//     public void addEvents(final List<EventVO> events) {
//         this.events.addAll(events);
//     }
// 
//     public NotifierVO getNotifier() {
//         return notifier;
//     }
// }


// Path: src/main/java/com/codereligion/bugsnag/logback/Appender.java
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import com.codereligion.bugsnag.logback.model.NotificationVO;
import com.google.common.base.Splitter;
import com.google.common.collect.Sets;
import java.util.Set;


    @Override
    public void start() {
        if (configuration.isInvalid()) {
            configuration.addErrors(this);
            return;
        }

        sender.start(configuration, this);
        super.start();
    }

    @Override
    public void stop() {

        if (!isStarted()) {
            return;
        }

        sender.stop();
        super.stop();
    }

    @Override
    protected void append(final ILoggingEvent event) {

        if (!isStarted() || configuration.isStageIgnored() || shouldNotNotifyFor(event)) {
            return;
        }

        final NotificationVO notification = converter.convertToNotification(event);