/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.communication.common; import java.util.Map; import org.apache.commons.logging.LogFactory; import de.rcenvironment.core.communication.management.WorkflowHostService; import de.rcenvironment.core.communication.nodeproperties.NodeProperty; import de.rcenvironment.core.communication.nodeproperties.NodePropertyConstants; /** * Static utility methods related to {@link WorkflowHostService}, including the {@link NodeProperty}s published and consumed by it. * * @author Robert Mischke */ // FIXME move to component.workflow bundle when migration is complete public final class WorkflowHostUtils { /** * If this node property is set and has the value {@link NodePropertyConstants#VALUE_TRUE}, the publishing node is a "workflow host". */ public static final String KEY_IS_WORKFLOW_HOST = "workflowHost"; private WorkflowHostUtils() {} /** * @param property a single {@link NodeProperty} * @return if this property represents the "workflow host" setting */ public static boolean isWorkflowHostProperty(NodeProperty property) { return KEY_IS_WORKFLOW_HOST.equals(property.getKey()); } /** * @param property the property set of a node * @return the value of this node's "workflow host" setting */ public static boolean getWorkflowHostPropertyValue(NodeProperty property) { // consistency check if (!isWorkflowHostProperty(property)) { throw new IllegalArgumentException(); } String value = property.getValue(); if (NodePropertyConstants.VALUE_TRUE.equals(value)) { return true; } else if (NodePropertyConstants.VALUE_FALSE.equals(value)) { return false; } else { LogFactory.getLog(WorkflowHostUtils.class).error( "Invalid property value for " + KEY_IS_WORKFLOW_HOST + ", parsing to 'false': " + value); return false; } } /** * @param nodeProperties the complete properties of a node * @return true if this node is marked as a "workflow host" by its properties */ public static boolean doNodePropertiesIndicateWorkflowHost(Map<String, String> nodeProperties) { return NodePropertyConstants.VALUE_TRUE.equals(nodeProperties.get(KEY_IS_WORKFLOW_HOST)); } }