Package com.madgnome.jira.plugins.jirachievements.services

Source Code of com.madgnome.jira.plugins.jirachievements.services.WorkflowConfiguration

package com.madgnome.jira.plugins.jirachievements.services;

import com.atlassian.jira.config.ConstantsManager;
import com.atlassian.jira.issue.status.Status;
import com.madgnome.jira.plugins.jirachievements.data.ao.Config;
import com.madgnome.jira.plugins.jirachievements.data.ao.ConfigRefEnum;
import com.madgnome.jira.plugins.jirachievements.data.services.IConfigDaoService;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class WorkflowConfiguration
{
  private static final String WORKFLOW_STATUSES_SUFFIX = "_WORKFLOW_STATUSES";
  private final IConfigDaoService configDaoService;
  private final ConstantsManager constantsManager;

  public enum NormalizedStatus
  {
    OPEN,
    RESOLVED,
    CLOSED,
    REOPENED;

    public ConfigRefEnum toConfigRefEnum()
    {
      String name = this.toString();
      return ConfigRefEnum.valueOf(name + WORKFLOW_STATUSES_SUFFIX);
    }
  }

  public WorkflowConfiguration(IConfigDaoService configDaoService, ConstantsManager constantsManager)
  {
    this.configDaoService = configDaoService;
    this.constantsManager = constantsManager;
  }

  public List<String> getStatuses(NormalizedStatus status)
  {
    List<String> ids = getStatusesId(status);
    List<String> refs = new ArrayList<String>();
    for (String id : ids)
    {
      final Status statusObject = constantsManager.getStatusObject(id);
      if (statusObject != null)
      {
        refs.add(statusObject.getName());
      }
    }

    return refs;
  }

  public String getStatusesAsCSV(NormalizedStatus status)
  {
    StringBuilder builder = new StringBuilder();
    List<String> statuses = getStatuses(status);
    for (int i = 0, statusesSize = statuses.size(); i < statusesSize; i++)
    {
      String ref = statuses.get(i);
      builder.append(ref);
      if (i < statusesSize - 1)
      {
        builder.append(",");
      }
    }
    return builder.toString();
  }

  public List<String> getStatusesId(NormalizedStatus status)
  {
    final Config config = configDaoService.get(status.toConfigRefEnum());
    return Arrays.asList(config.getValue().split(","));
  }

  public void saveStatuses(NormalizedStatus status, String[] statusesId)
  {
    List<String> ids = statusesId != null ? Arrays.asList(statusesId) : Collections.<String>emptyList();
    Collections.sort(ids);
    StringBuilder builder = new StringBuilder();
    for (String id : ids)
    {
      builder.append(id).append(",");
    }

    configDaoService.setValue(status.toConfigRefEnum(), builder.toString());
  }
}
TOP

Related Classes of com.madgnome.jira.plugins.jirachievements.services.WorkflowConfiguration

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.