com.wirelessgalicia.logos.vista.web.services.ConsumidorVistaImplService.java Source code

Java tutorial

Introduction

Here is the source code for com.wirelessgalicia.logos.vista.web.services.ConsumidorVistaImplService.java

Source

/*
 * This file is part of HomeWell-Health
 *
 * Copyright (C) 2011-2012 WirelessGalicia S.L.
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 * 
 */
package com.wirelessgalicia.logos.vista.web.services;

import java.util.Hashtable;

import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.wireadmin.Consumer;
import org.osgi.service.wireadmin.WireConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.osgi.context.BundleContextAware;

import com.wirelessgalicia.logos.vista.web.almacen.IAlmacenEventos;
import com.wirelessgalicia.logos.vista.web.almacen.IAlmacenResultados;
import com.wirelessgalicia.logos.vista.web.consumers.ConsumidorEventosVistaService;
import com.wirelessgalicia.logos.vista.web.consumers.ConsumidorResultadosVistaService;

import es.sergas.chuac.logos.modelo.gestorpruebas.vo.ConsumidorVistaVO;
import es.sergas.chuac.logos.modelo.wireadminmanager.services.ConsumidorVistaService;

import es.sergas.chuac.logos.servicios.wireadminmanager.vista.eventos.WireAdminManagerVistaEventosService;
import es.sergas.chuac.logos.servicios.wireadminmanager.vista.resultados.WireAdminManagerVistaResultadosService;

/**
 * 
 * @author frodcal
 *
 */

public class ConsumidorVistaImplService implements ConsumidorVistaService, BundleContextAware {

    private Logger LOGGER = LoggerFactory.getLogger(ConsumidorVistaImplService.class.getName());

    private ConsumidorVistaVO consumidorResultadosVO;
    private ConsumidorVistaVO consumidorEventosVO;

    /**
     * Productor de pruebas
     */
    private ConsumidorResultadosVistaService consumidorResultadosService;
    private ConsumidorEventosVistaService consumidorEventosService;

    private BundleContext bundleContext;

    private WireAdminManagerVistaResultadosService wireAdminVistaResultadosService;
    private WireAdminManagerVistaEventosService wireAdminVistaEventosService;

    /**
     * @param wireAdminVistaService the wireAdminVista to set
     */
    public void setWireAdminVistaEventosService(WireAdminManagerVistaEventosService wireAdminVistaEventosService) {
        this.wireAdminVistaEventosService = wireAdminVistaEventosService;
    }

    public void setWireAdminVistaResultadosService(
            WireAdminManagerVistaResultadosService wireAdminVistaResultadosService) {
        this.wireAdminVistaResultadosService = wireAdminVistaResultadosService;
    }

    @Override
    public void setBundleContext(BundleContext bc) {
        bundleContext = bc;
    }

    public ConsumidorVistaVO getConsumidorResultadosVO() {
        return consumidorResultadosVO;
    }

    public void setConsumidorResultadosVO(ConsumidorVistaVO consumidorResultadosVO) {
        this.consumidorResultadosVO = consumidorResultadosVO;
    }

    public ConsumidorVistaVO getConsumidorEventosVO() {
        return consumidorEventosVO;
    }

    public void setConsumidorEventosVO(ConsumidorVistaVO consumidorEventosVO) {
        this.consumidorEventosVO = consumidorEventosVO;
    }

    public void setConsumidorResultadosService(ConsumidorResultadosVistaService consumidorResultados) {
        this.consumidorResultadosService = consumidorResultados;
    }

    public void setConsumidorEventosService(ConsumidorEventosVistaService consumidorEventos) {
        this.consumidorEventosService = consumidorEventos;
    }

    /**
     * Arranca el servicio del productor de pruebas
     */
    @Override
    public void start() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("Arrancando Servicio del consumidor para la vista");
        if (consumidorResultadosVO != null) {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("CONSUMIDOR:" + consumidorResultadosVO);
            }
            registrarConsumidorResultados();
            wireAdminVistaResultadosService.conectarConsumidorConProductores(consumidorResultadosVO);

            registrarConsumidorEventos();
            wireAdminVistaEventosService.conectarConsumidorConProductores(consumidorEventosVO);
        } else
            LOGGER.info("El consumidor para la vista no esta configurado");

    }

    @Override
    public void stop() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("Parando del consumidor para la vista...");
        desconectarConsumidorResultados();
        desconectarConsumidorEventos();
    }

    /**
     * Crea el consumidor de pruebas
     */
    @Override
    public ServiceRegistration registrarConsumidorResultados() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("registrarConsumidorResultados(" + consumidorResultadosVO + ")");
        this.consumidorResultadosService = new ConsumidorResultadosVistaService(bundleContext,
                consumidorResultadosVO);
        Hashtable<String, Object> props = new Hashtable<String, Object>();
        props.put(WireConstants.WIREADMIN_CONSUMER_FLAVORS, consumidorResultadosVO.getSabores());
        props.put(org.osgi.framework.Constants.SERVICE_PID, consumidorResultadosVO.getIdServicio());
        props.put(org.osgi.framework.Constants.SERVICE_DESCRIPTION, consumidorResultadosVO.getDescServicio());
        if (LOGGER.isInfoEnabled())
            LOGGER.info("Consumidor que se va a registrar:" + consumidorResultadosVO + " flavors: "
                    + consumidorResultadosVO.getSabores());
        ServiceRegistration serviceReg = bundleContext.registerService(Consumer.class.getName(),
                consumidorResultadosService, props);
        return serviceReg;
    }

    /**
     * Crea el consumidor de pruebas
     */
    @Override
    public ServiceRegistration registrarConsumidorEventos() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("registrarConsumidorEventos(" + consumidorEventosVO + ")");
        this.consumidorEventosService = new ConsumidorEventosVistaService(bundleContext, consumidorEventosVO);
        Hashtable<String, Object> props = new Hashtable<String, Object>();
        props.put(WireConstants.WIREADMIN_CONSUMER_FLAVORS, consumidorEventosVO.getSabores());
        props.put(org.osgi.framework.Constants.SERVICE_PID, consumidorEventosVO.getIdServicio());
        props.put(org.osgi.framework.Constants.SERVICE_DESCRIPTION, consumidorEventosVO.getDescServicio());
        if (LOGGER.isInfoEnabled())
            LOGGER.info("Consumidor que se va a registrar:" + consumidorEventosVO + " flavors: "
                    + consumidorEventosVO.getSabores());
        ServiceRegistration serviceReg = bundleContext.registerService(Consumer.class.getName(),
                consumidorEventosService, props);
        return serviceReg;
    }

    /**
     * Desconecta el consumidor 
     */
    @Override
    public void desconectarConsumidorResultados() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("desconectarConsumidorResultados()");
        wireAdminVistaResultadosService.desconectarConsumidor(consumidorResultadosVO);

    }

    /**
     * Desconecta el consumidor 
     */
    @Override
    public void desconectarConsumidorEventos() {
        if (LOGGER.isTraceEnabled())
            LOGGER.trace("desconectarConsumidorEventos()");
        wireAdminVistaResultadosService.desconectarConsumidor(consumidorEventosVO);

    }

}