PartyGhantChartManagerImpl.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.Locale;
  23. import java.util.Optional;
  24. import java.util.function.Function;

  25. import org.springframework.stereotype.Service;

  26. import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenPartyRoleMember;
  27. import com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.PartyGhantChartManager;

  28. /**
  29.  * The Class PartyGhantChartManagerImpl.
  30.  */
  31. @Service
  32. public final class PartyGhantChartManagerImpl extends AbstractGhantChartManagerImpl<ViewRiksdagenPartyRoleMember>
  33.         implements PartyGhantChartManager {

  34.     /**
  35.      * Instantiates a new party ghant chart manager impl.
  36.      */
  37.     public PartyGhantChartManagerImpl() {
  38.         super();
  39.     }

  40.     /**
  41.      * Gets the comparator.
  42.      *
  43.      * @return the comparator
  44.      */
  45.     @Override
  46.     protected Comparator<ViewRiksdagenPartyRoleMember> getComparator() {
  47.         return (o1, o2) -> o1.getFromDate().compareTo(o2.getFromDate());
  48.     }

  49.     /**
  50.      * Gets the role mapping.
  51.      *
  52.      * @return the role mapping
  53.      */
  54.     @Override
  55.     protected Function<ViewRiksdagenPartyRoleMember, String> getRoleMapping() {
  56.         return new RoleMapping();
  57.     }

  58.     /**
  59.      * Gets the step mapping.
  60.      *
  61.      * @return the step mapping
  62.      */
  63.     @Override
  64.     protected StepMapping<ViewRiksdagenPartyRoleMember> getStepMapping() {
  65.         return new StepMapping<>() {

  66.             @Override
  67.             public String getBackgroundColor(final ViewRiksdagenPartyRoleMember roleMember) {
  68.                 String color;

  69.                 if (roleMember.getRoleCode().toLowerCase(Locale.ENGLISH).contains("vice")) {
  70.                     color = "A8D999";
  71.                 } else if (roleMember.getRoleCode().toLowerCase(Locale.ENGLISH).contains("partiledare")
  72.                         || roleMember.getRoleCode().toLowerCase(Locale.ENGLISH).contains("språkrör")
  73.                         || roleMember.getRoleCode().toLowerCase(Locale.ENGLISH).contains("partisekreterare")) {
  74.                     color = "3271c8";
  75.                 } else {
  76.                     color = "0eab76";
  77.                 }

  78.                 return color;
  79.             }

  80.             @Override
  81.             public Object getFirstName(final ViewRiksdagenPartyRoleMember roleMember) {
  82.                 return roleMember.getFirstName();
  83.             }

  84.             @Override
  85.             public Date getFromDate(final ViewRiksdagenPartyRoleMember roleMember) {
  86.                 return roleMember.getFromDate();
  87.             }

  88.             @Override
  89.             public Object getLastName(final ViewRiksdagenPartyRoleMember roleMember) {
  90.                 return roleMember.getLastName();
  91.             }

  92.             @Override
  93.             public String getOrg(final ViewRiksdagenPartyRoleMember roleMember) {
  94.                 return roleMember.getDetail();
  95.             }

  96.             @Override
  97.             public String getParty(final ViewRiksdagenPartyRoleMember roleMember) {
  98.                 return roleMember.getParty();
  99.             }

  100.             @Override
  101.             public String getRoleCode(final ViewRiksdagenPartyRoleMember roleMember) {
  102.                 return roleMember.getRoleCode();
  103.             }

  104.             @Override
  105.             public Date getToDate(final ViewRiksdagenPartyRoleMember roleMember) {
  106.                 return Optional.ofNullable(roleMember.getToDate()).orElseGet(Date::new);
  107.             }

  108.         };
  109.     }

  110.     /**
  111.      * The Class RoleMapping.
  112.      */
  113.     private static final class RoleMapping implements Function<ViewRiksdagenPartyRoleMember, String> {

  114.         /**
  115.          * Apply.
  116.          *
  117.          * @param roleMember the role member
  118.          * @return the string
  119.          */
  120.         @Override
  121.         public String apply(final ViewRiksdagenPartyRoleMember roleMember) {
  122.             return roleMember.getRoleCode();
  123.         }
  124.     }

  125. }