MinistryGhantChartManagerImpl.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.internal.application.data.ministry.impl.ViewRiksdagenGovermentRoleMember;
  26. import com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.MinistryGhantChartManager;

  27. /**
  28.  * The Class MinistryGhantChartManagerImpl.
  29.  */
  30. @Service
  31. public final class MinistryGhantChartManagerImpl extends AbstractGhantChartManagerImpl<ViewRiksdagenGovermentRoleMember>
  32.         implements MinistryGhantChartManager {

  33.     /**
  34.      * Instantiates a new ministry ghant chart manager impl.
  35.      */
  36.     public MinistryGhantChartManagerImpl() {
  37.         super();
  38.     }

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

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

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

  65.             @Override
  66.             public String getBackgroundColor(final ViewRiksdagenGovermentRoleMember roleMember) {
  67.                 return ChartUtils.getRoleColor(roleMember.getRoleCode(), "statsråd", "statsminister");
  68.             }

  69.             @Override
  70.             public Object getFirstName(final ViewRiksdagenGovermentRoleMember roleMember) {
  71.                 return roleMember.getFirstName();
  72.             }

  73.                     @Override
  74.             public Date getFromDate(final ViewRiksdagenGovermentRoleMember roleMember) {
  75.                 return roleMember.getFromDate();
  76.             }

  77.             @Override
  78.             public Object getLastName(final ViewRiksdagenGovermentRoleMember roleMember) {
  79.                 return roleMember.getLastName();
  80.             }

  81.             @Override
  82.             public String getOrg(final ViewRiksdagenGovermentRoleMember roleMember) {
  83.                 return roleMember.getDetail();
  84.             }

  85.             @Override
  86.             public String getParty(final ViewRiksdagenGovermentRoleMember roleMember) {
  87.                 return roleMember.getParty();
  88.             }

  89.             @Override
  90.             public String getRoleCode(final ViewRiksdagenGovermentRoleMember roleMember) {
  91.                 return roleMember.getRoleCode();
  92.             }

  93.             @Override
  94.             public Date getToDate(final ViewRiksdagenGovermentRoleMember roleMember) {
  95.                 return Optional.ofNullable(roleMember.getToDate()).orElseGet(Date::new);
  96.             }

  97.         };
  98.     }

  99.     /**
  100.      * The Class RoleMapping.
  101.      */
  102.     private static final class RoleMapping implements Function<ViewRiksdagenGovermentRoleMember, String> {

  103.         /**
  104.          * Apply.
  105.          *
  106.          * @param roleMember the role member
  107.          * @return the string
  108.          */
  109.         @Override
  110.         public String apply(final ViewRiksdagenGovermentRoleMember roleMember) {
  111.             return roleMember.getRoleCode()+ ".["+ roleMember.getPersonId() +"]." + roleMember.getDetail();
  112.         }
  113.     }

  114. }