
com.centurylink.mdw.dataaccess.file.CombinedBaselineData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mdw-common Show documentation
Show all versions of mdw-common Show documentation
MDW is a microservices based workflow framework
/*
* Copyright (C) 2017 CenturyLink, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.centurylink.mdw.dataaccess.file;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.centurylink.mdw.dataaccess.BaselineData;
import com.centurylink.mdw.model.task.TaskCategory;
import com.centurylink.mdw.model.task.TaskState;
import com.centurylink.mdw.model.task.TaskStatus;
import com.centurylink.mdw.model.variable.VariableType;
/**
* Supports multiple injected BaselineData impls.
*/
public class CombinedBaselineData implements BaselineData {
private List workgroups = new ArrayList<>();
private List userRoles = new ArrayList<>();
private List variableTypes = new ArrayList<>();
private Map taskCategoryCodes = new HashMap<>();;
private Map taskCategories = new HashMap<>();
private Map taskStates = new HashMap<>();
private List allTaskStates = new ArrayList<>();
private Map taskStatuses = new HashMap<>();
private List allTaskStatuses = new ArrayList<>();
public CombinedBaselineData(List baselineDatas) {
for (BaselineData baselineData : baselineDatas) {
for (String group : baselineData.getWorkgroups()) {
if (!workgroups.contains(group))
workgroups.add(group);
}
for (String role : baselineData.getUserRoles()) {
if (!userRoles.contains(role))
userRoles.add(role);
}
for (VariableType varType : baselineData.getVariableTypes()) {
boolean hasVariableType = false;
for (VariableType variableType : variableTypes) {
if (variableType.getVariableType().equals(varType.getVariableType())) {
hasVariableType = true;
break;
}
}
if (!hasVariableType)
variableTypes.add(varType);
}
for (int categoryId : baselineData.getTaskCategoryCodes().keySet()) {
if (!taskCategoryCodes.containsKey(categoryId))
taskCategoryCodes.put(categoryId, baselineData.getTaskCategoryCodes().get(categoryId));
}
for (int categoryId : baselineData.getTaskCategories().keySet()) {
if (!taskCategories.containsKey(categoryId))
taskCategories.put(categoryId, baselineData.getTaskCategories().get(categoryId));
}
for (int taskStateId : baselineData.getTaskStates().keySet()) {
if (!taskStates.containsKey(taskStateId)) {
TaskState taskState = baselineData.getTaskStates().get(taskStateId);
taskStates.put(taskStateId, taskState);
allTaskStates.add(taskState);
}
}
for (int taskStatusId : baselineData.getTaskStatuses().keySet()) {
if (!taskStatuses.containsKey(taskStatusId)) {
TaskStatus taskStatus = baselineData.getTaskStatuses().get(taskStatusId);
taskStatuses.put(taskStatusId, taskStatus);
allTaskStatuses.add(taskStatus);
}
}
}
}
@Override
public List getVariableTypes() {
return variableTypes;
}
@Override
public String getVariableType(Object value) {
for (VariableType varType : getVariableTypes()) {
try {
if (!varType.isJavaObjectType() && (Class.forName(varType.getVariableType()).isInstance(value)))
return varType.getVariableType();
}
catch (Exception ex) {
return Object.class.getName();
}
}
return null;
}
@Override
public List getWorkgroups() {
return workgroups;
}
@Override
public List getUserRoles() {
return userRoles;
}
@Override
public Map getTaskCategoryCodes() {
return taskCategoryCodes;
}
@Override
public Map getTaskCategories() {
return taskCategories;
}
@Override
public Map getTaskStates() {
return taskStates;
}
@Override
public List getAllTaskStates() {
return allTaskStates;
}
@Override
public Map getTaskStatuses() {
return taskStatuses;
}
@Override
public List getAllTaskStatuses() {
return allTaskStatuses;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy