PoliticianGhantChartManagerImpl.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.chartfactory.impl;

  20. import java.util.Comparator;
  21. import java.util.Date;
  22. import java.util.Optional;
  23. import java.util.function.Function;

  24. import org.springframework.stereotype.Service;

  25. import com.hack23.cia.model.external.riksdagen.person.impl.AssignmentData;
  26. import com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.PoliticianGhantChartManager;

  27. /**
  28.  * The Class PoliticianGhantChartManagerImpl.
  29.  */
  30. @Service
  31. public final class PoliticianGhantChartManagerImpl extends AbstractGhantChartManagerImpl<AssignmentData>
  32.         implements PoliticianGhantChartManager {

  33.     /** The Constant DEPARTEMENT. */
  34.     private static final String DEPARTEMENT = "Departement";

  35.     /** The Constant KAMMARUPPDRAG. */
  36.     private static final String KAMMARUPPDRAG = "kammaruppdrag";

  37.     /** The Constant LEDIG. */
  38.     private static final String LEDIG = "LEDIG";

  39.     /**
  40.      * Instantiates a new politician ghant chart manager impl.
  41.      */
  42.     public PoliticianGhantChartManagerImpl() {
  43.         super();
  44.     }

  45.     /**
  46.      * Gets the comparator.
  47.      *
  48.      * @return the comparator
  49.      */
  50.     @Override
  51.     protected Comparator<AssignmentData> getComparator() {
  52.         return (o1, o2) -> o1.getFromDate().compareTo(o2.getFromDate());
  53.     }

  54.     /**
  55.      * Gets the role mapping.
  56.      *
  57.      * @return the role mapping
  58.      */
  59.     @Override
  60.     protected Function<AssignmentData, String> getRoleMapping() {
  61.         return new RoleMapping();
  62.     }

  63.     /**
  64.      * Gets the step mapping.
  65.      *
  66.      * @return the step mapping
  67.      */
  68.     @Override
  69.     protected StepMapping<AssignmentData> getStepMapping() {
  70.         return new StepMapping<>() {

  71.             @Override
  72.             public String getBackgroundColor(final AssignmentData t) {
  73.                 String color;

  74.                 final String parliamentType = KAMMARUPPDRAG;

  75.                 if (LEDIG.equalsIgnoreCase(t.getStatus())) {
  76.                     color = "e3e3e3";
  77.                 } else if (parliamentType.equalsIgnoreCase(t.getAssignmentType())) {
  78.                     color = "0eab76";
  79.                 } else if (DEPARTEMENT.equalsIgnoreCase(t.getAssignmentType())) {

  80.                     color = "ded858";
  81.                 } else {
  82.                     color = "3271c8";
  83.                 }

  84.                 return color;
  85.             }

  86.             @Override
  87.             public Object getFirstName(final AssignmentData t) {
  88.                 return "";
  89.             }

  90.             @Override
  91.             public Date getFromDate(final AssignmentData t) {
  92.                 return t.getFromDate();
  93.             }

  94.             @Override
  95.             public Object getLastName(final AssignmentData t) {
  96.                 return "";
  97.             }

  98.             @Override
  99.             public String getOrg(final AssignmentData t) {
  100.                 return t.getDetail();
  101.             }

  102.             @Override
  103.             public String getParty(final AssignmentData t) {
  104.                 return t.getOrgCode();
  105.             }

  106.             @Override
  107.             public String getRoleCode(final AssignmentData t) {
  108.                 return t.getRoleCode();
  109.             }

  110.             @Override
  111.             public Date getToDate(final AssignmentData t) {
  112.                 return Optional.ofNullable(t.getToDate()).orElseGet(Date::new);
  113.             }

  114.         };
  115.     }

  116.     /**
  117.      * The Class RoleMapping.
  118.      */
  119.     private static final class RoleMapping implements Function<AssignmentData, String> {

  120.         /** The Constant RIKSDAGSLEDAMOT. */
  121.         private static final String RIKSDAGSLEDAMOT = "Riksdagsledamot";

  122.         /**
  123.          * Apply.
  124.          *
  125.          * @param t the t
  126.          * @return the string
  127.          */
  128.         @Override
  129.         public String apply(final AssignmentData t) {
  130.             if (KAMMARUPPDRAG.equalsIgnoreCase(t.getAssignmentType())) {
  131.                 return RIKSDAGSLEDAMOT;
  132.             } else {
  133.                 return t.getAssignmentType() + '.' + t.getDetail() + ' ' + t.getRoleCode();
  134.             }

  135.         }
  136.     }

  137. }