package eu.dnetlib.data.statsmanager;

import eu.dnetlib.api.DriverService;
import eu.dnetlib.api.data.StatsManagerService;
import eu.dnetlib.domain.ActionType;
import eu.dnetlib.domain.ResourceType;
import eu.dnetlib.domain.enabling.Notification;
import gr.uoa.di.driver.app.DriverServiceImpl;
import gr.uoa.di.driver.enabling.issn.NotificationListener;

/**
 * Created by antleb on 10/25/14.
 */
public class StatsManagerServiceImpl extends DriverServiceImpl implements StatsManagerService {

    private StatsManagerServiceBlackboardHandler statsManagerServiceBlackboardHandler;

    public void init() {
        super.init();

        this.subscribe(
                ActionType.UPDATE,
                ResourceType.STATSMANAGERSERVICERESOURCETYPE,
                this.getServiceEPR().getParameter("serviceId"),
                "RESOURCE_PROFILE/BODY/BLACKBOARD/LAST_REQUEST",
                new NotificationListener() {

                    @Override
                    public void processNotification(Notification notification) {
                        statsManagerServiceBlackboardHandler.notified(
                                notification.getSubscriptionId(),
                                notification.getTopic(),
                                notification.getIsId(),
                                notification.getMessage());
                    }
                });
    }

    public StatsManagerServiceBlackboardHandler getStatsManagerServiceBlackboardHandler() {
        return statsManagerServiceBlackboardHandler;
    }

    public void setStatsManagerServiceBlackboardHandler(StatsManagerServiceBlackboardHandler statsManagerServiceBlackboardHandler) {
        this.statsManagerServiceBlackboardHandler = statsManagerServiceBlackboardHandler;
    }
}
