/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.optimizer.gui.properties.commands;
import java.util.HashMap;
import java.util.Map;
import de.rcenvironment.components.optimizer.common.OptimizerComponentConstants;
import de.rcenvironment.core.component.workflow.model.api.WorkflowNode;
import de.rcenvironment.core.datamodel.api.DataType;
/**
* Helper class for OptimizerDynamicEndpointCommands.
*
* @author Sascha Zur
*/
public final class OptimizerDynamicEndpointCommandHelper {
@Deprecated
private OptimizerDynamicEndpointCommandHelper() {
}
/**
* Creates the channel name of the gradient for the given function and variable.
*
* @param function : the used function name
* @param variable : the used variable name
* @return String "del f / del x"
*/
public static String createGradientChannelName(String function, String variable) {
return OptimizerComponentConstants.GRADIENT_DELTA + function + "." + OptimizerComponentConstants.GRADIENT_DELTA + variable;
}
/**
* Adds the start value endpoints for lower and upper bounds if neccesary.
*
* @param name of the endpoint
* @param type of the endpoint
* @param metaData of the endpoint
* @param workflowNode to create the endpoints for
*/
public static void addLowerAndUpperBoundsEndpoints(String name, DataType type, final Map<String, String> metaData,
final WorkflowNode workflowNode) {
if (metaData.get(OptimizerComponentConstants.META_KEY_HAS_BOUNDS) != null
&& !Boolean.parseBoolean(metaData.get(OptimizerComponentConstants.META_KEY_HAS_BOUNDS))) {
Map<String, String> lowerBoundsMetaData = new HashMap<String, String>();
workflowNode.getInputDescriptionsManager()
.addDynamicEndpointDescription(
OptimizerComponentConstants.ID_STARTVALUES,
name + OptimizerComponentConstants.BOUNDS_STARTVALUE_LOWER_SIGNITURE
+ OptimizerComponentConstants.STARTVALUE_SIGNATURE,
type,
lowerBoundsMetaData);
Map<String, String> upperBoundsMetaData = new HashMap<String, String>();
workflowNode.getInputDescriptionsManager()
.addDynamicEndpointDescription(
OptimizerComponentConstants.ID_STARTVALUES,
name + OptimizerComponentConstants.BOUNDS_STARTVALUE_UPPER_SIGNITURE
+ OptimizerComponentConstants.STARTVALUE_SIGNATURE,
type,
upperBoundsMetaData);
}
}
/**
* Removes the start value endpoints for lower and upper bounds if neccesary.
*
* @param name of the endpoint
* @param metaData of the endpoint
* @param workflowNode to remove the endpoints from
*/
public static void removeUpperLowerBoundsEndpoints(String name, final Map<String, String> metaData, final WorkflowNode workflowNode) {
if (metaData.get(OptimizerComponentConstants.META_KEY_HAS_BOUNDS) != null
&& !Boolean.parseBoolean(metaData.get(OptimizerComponentConstants.META_KEY_HAS_BOUNDS))) {
workflowNode.getInputDescriptionsManager()
.removeDynamicEndpointDescription(name + OptimizerComponentConstants.BOUNDS_STARTVALUE_LOWER_SIGNITURE
+ OptimizerComponentConstants.STARTVALUE_SIGNATURE);
workflowNode.getInputDescriptionsManager()
.removeDynamicEndpointDescription(name + OptimizerComponentConstants.BOUNDS_STARTVALUE_UPPER_SIGNITURE
+ OptimizerComponentConstants.STARTVALUE_SIGNATURE);
}
}
}