CommitteeDataSeriesFactoryImpl.java

  1. /*
  2.  * Copyright 2010-2025 James Pether Sörling
  3.  *
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  *
  8.  *   http://www.apache.org/licenses/LICENSE-2.0
  9.  *
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  *
  16.  *  $Id$
  17.  *  $HeadURL$
  18. */
  19. package com.hack23.cia.web.impl.ui.application.views.common.dataseriesfactory.impl;

  20. import org.dussan.vaadin.dcharts.data.DataSeries;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Propagation;
  24. import org.springframework.transaction.annotation.Transactional;

  25. import com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommittee;
  26. import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenParty;
  27. import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenPartySummary;
  28. import com.hack23.cia.service.api.ApplicationManager;
  29. import com.hack23.cia.service.api.DataContainer;
  30. import com.hack23.cia.web.impl.ui.application.views.common.dataseriesfactory.api.CommitteeDataSeriesFactory;

  31. /**
  32.  * The Class CommitteeDataSeriesFactoryImpl.
  33.  */
  34. @Service
  35. @Transactional(propagation=Propagation.REQUIRED, readOnly = true)
  36. public final class CommitteeDataSeriesFactoryImpl implements CommitteeDataSeriesFactory {

  37.     /** The application manager. */
  38.     @Autowired
  39.     private ApplicationManager applicationManager;

  40.     /**
  41.      * Instantiates a new committee data series factory impl.
  42.      */
  43.     public CommitteeDataSeriesFactoryImpl() {
  44.         super();
  45.     }


  46.     @Override
  47.     public DataSeries createChartTimeSeriesTotalDaysServedCommitteeByParty() {
  48.         DataSeries dataSeries = new DataSeries();

  49.         final DataContainer<ViewRiksdagenParty, String> dataContainer = applicationManager
  50.                 .getDataContainer(ViewRiksdagenParty.class);

  51.         final DataContainer<ViewRiksdagenPartySummary, String> partySummarydataContainer = applicationManager
  52.                 .getDataContainer(ViewRiksdagenPartySummary.class);

  53.         partySummarydataContainer.getAll();

  54.         for (final ViewRiksdagenParty data : dataContainer.getAll()) {
  55.             final ViewRiksdagenPartySummary summary = partySummarydataContainer.load(data.getPartyId());
  56.             if (summary != null && summary.isActive()) {

  57.                 dataSeries =dataSeries.newSeries().add(data.getPartyName(),summary.getTotalDaysServedCommittee());
  58.             }
  59.         }
  60.         return dataSeries;
  61.     }


  62.     @Override
  63.     public DataSeries createCommitteeChartTimeSeriesAll() {
  64.         DataSeries dataSeries = new DataSeries();

  65.         final DataContainer<ViewRiksdagenCommittee, String> dataContainer = applicationManager
  66.                 .getDataContainer(ViewRiksdagenCommittee.class);

  67.         for (final ViewRiksdagenCommittee data : dataContainer.getAll()) {
  68.             dataSeries =dataSeries.newSeries().add(data.getEmbeddedId().getDetail(),data.getTotalAssignments());
  69.         }
  70.         return dataSeries;
  71.     }



  72.     @Override
  73.     public DataSeries createCommitteeChartTimeSeriesCurrent() {
  74.         DataSeries dataSeries = new DataSeries();

  75.         final DataContainer<ViewRiksdagenCommittee, String> dataContainer = applicationManager
  76.                 .getDataContainer(ViewRiksdagenCommittee.class);

  77.         for (final ViewRiksdagenCommittee data : dataContainer.getAll()) {
  78.             if (data.isActive()) {
  79.                 dataSeries =dataSeries.newSeries().add(data.getEmbeddedId().getDetail(),data.getCurrentMemberSize());
  80.             }
  81.         }
  82.         return dataSeries;
  83.     }
  84. }