Commit ef722226 authored by legoc's avatar legoc

Removed ParameterizableScan1D related classes

parent 988d9fc8
/*
* Nomad Instrument Control Software
*
* Copyright 2011 Institut Laue-Langevin
*
* Licensed under the EUPL, Version 1.1 only (the "License");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://joinup.ec.europa.eu/software/page/eupl
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*/
package fr.ill.ics.bridge.scan;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import fr.ill.ics.core.property.Property;
public interface IParameterizableScan1D {
public final static String NO_OPTIMIZATION = "none";
public final static String MULTI_GAUSSIAN_FIT = "multi gaussian fit";
public final static String POLYNOMIAL_FIT = "polynomial fit";
public final static String CENTER_OF_MASS = "center of mass";
public final static String GAUSSIAN_FIT = "gaussian fit";
public final static String BEST_FIT = "best fit";
public final static String NO_ACTION = "none";
public final static String GOTO_ACTION = "goto";
public final static String OFFSET_ACTION = "offset";
/**
* Class to pass data from Nomad to the bridge.
* Same content than ParameterizableScan1DLine in Nomad project
* @author legoc
*
*/
public static class Variable {
public final static int MODE_INTERVAL = 0;
public final static int MODE_DELTA = 1;
public final static int MODE_FLIP = 2;
public final static int MODE_EXPLICIT_VALUES = 3;
public final static int MODE_DELTA_INTERVAL = 4;
public int modeType = MODE_INTERVAL;
public final static int DELTA_MIN = 0;
public final static int DELTA_MAX = 1;
public final static int DELTA_CENTER = 2;
public int deltaType = DELTA_MIN;
public String controllerName;
public String wantedPropertyName;
public String value1 = "0";
public String value2 = "0";
public String value3 = "0";
public double currentValue;
public String values = "";
public String toString() {
return "Variable controller = " + controllerName + ", property = " + wantedPropertyName + ", mode = " + modeType + ", delta = " + deltaType + ", value1 = " + value1 + ", value2 = " + value2 + ", nb steps = " + value3 + ", current = " + currentValue + ", values = " + values;
}
};
public static class ActualProperties {
public LinkedList<Property> steps = new LinkedList<Property>();
public LinkedList<Property> values = new LinkedList<Property>();
}
public static class OptimizationParameters {
public String optimizationType;
public String fitOrder;
public String actionType;
public String toString() {
return "Optimization parameters type = " + optimizationType + ", fit order = " + fitOrder + ", action = " + actionType;
}
}
public ActualProperties getServerVariables(Map<String, Property> properties, Map<String, Property> realDynamicProperties, List<Variable> variables, OptimizationParameters optimizationParameters, boolean isInForLoop);
public ActualProperties setServerVariables(Map<String, Property> properties, Map<String, Property> realDynamicProperties, List<Variable> variables, OptimizationParameters optimizationParameters, boolean isInForLoop);
public void setOptimization(Map<String, Property> map, String value);
public void setAction(Map<String, Property> properties, String value);
public void setFitOrder(Map<String, Property> properties, String value);
public void setMoment(Map<String, Property> properties, String value);
public String getOptimization(Map<String, Property> properties);
public String getAction(Map<String, Property> properties);
public String getFitOrder(Map<String, Property> properties);
public String getMoment(Map<String, Property> properties);
public void loadVariable(String role, String propertyName, String value, List<Variable> variables, OptimizationParameters optimizationParameters);
public void setRole(String newRole);
}
\ No newline at end of file
......@@ -56,7 +56,6 @@ import fr.ill.ics.nscclient.servant.ResourceNotFoundException;
import fr.ill.ics.nscclient.servant.Servant;
import fr.ill.ics.nscclient.servant.SpyPropertyDescriptor;
import fr.ill.ics.nscclient.servant.StandardPropertyDescriptor;
import fr.ill.ics.nscclient.servant.scan.IcsParameterizableScan1D;
import fr.ill.ics.nscclient.serverconnection.ServerInstance;
public class ServantManagerAccessor {
......@@ -531,13 +530,8 @@ public class ServantManagerAccessor {
private ControllerServant createController(ClientServantDescriptor descriptor) {
ControllerServant controller = null;
ControllerServant controller = new ControllerServant(DATABASE_ID, descriptor.getId(), descriptor);
if (descriptor.getType().contains(PARAMETERIZABLE_SCAN_1D)) {
controller = new IcsParameterizableScan1D(DATABASE_ID, descriptor.getId(), descriptor);
} else {
controller = new ControllerServant(DATABASE_ID, descriptor.getId(), descriptor);
}
// no initialisation here
servants.put(descriptor.getId(), controller);
return controller;
......
/*
* Nomad Instrument Control Software
*
* Copyright 2011 Institut Laue-Langevin
*
* Licensed under the EUPL, Version 1.1 only (the "License");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://joinup.ec.europa.eu/software/page/eupl
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*/
package fr.ill.ics.nscclient.servant.scan;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import fr.ill.ics.bridge.scan.IParameterizableScan1D;
import fr.ill.ics.core.property.Property;
import fr.ill.ics.nscclient.servant.ClientServantDescriptor;
import fr.ill.ics.nscclient.servant.ControllerServant;
import fr.ill.ics.util.ConfigManager;
public class IcsParameterizableScan1D extends ControllerServant implements IParameterizableScan1D {
private enum PropertyType {STRING, DOUBLE, LONG};
public String role_name = "parameterizable_scan_1d1";
public final static String N_PROPERTIES = "n_properties";
public final static String ACTUAL_TIME = "actual_time";
public final static String CONTROLLER = "controller";
public final static String WANTED_PROPERTY = "wanted_property";
public final static String MODE = "mode";
public final static String MODE_INTERVAL = "interval";
public final static String MODE_DELTA_INTERVAL = "delta_interval";
public final static String MODE_DELTA = "delta";
public final static String MODE_FLIP = "flip";
public final static String MODE_EXPLICIT_VALUES = "explicit_values";
public final static String START = "start";
public final static String END = "end";
public final static String N_STEPS = "n_steps";
public final static String REFERENCE = "reference";
public final static String DELTA_TYPE = "delta_type";
public final static String DELTA = "delta";
public final static String DOWN = "down";
public final static String UP = "up";
public final static String EXPLICIT_VALUES = "explicit_values";
public final static String MIN_VALUE = "min";
public final static String MAX_VALUE = "max";
public final static String CENTER_VALUE = "center";
public final static String ACTUAL_STEP = "actual_step";
public final static String ACTUAL_VALUE = "actual_value";
public final static String FIT_ORDER = "fit_order";
public final static String DESCRIPTOR_TYPE = "descriptor_type";
public final static String SCAN_ACTION_TYPE = "scan_action_type";
public final static String OPTIMIZATION = "optimization";
public final static String OPTIMIZATION_TYPE = "optimization_type";
public final static String ACTUAL_STEP_0 = "actual_step.0";
public final static Map<String, String> actionServerValues = new HashMap<String, String>();
public final static Map<String, String> optimizationServerValues = new HashMap<String, String>();
public final static Map<String, String> momentServerValues = new HashMap<String, String>();
public final static Map<String, String> actionClientValues = new HashMap<String, String>();
public final static Map<String, String> optimizationClientValues = new HashMap<String, String>();
public final static Map<String, String> momentClientValues = new HashMap<String, String>();
//private AbstractController experimentController;
static {
actionServerValues.put(NO_ACTION, "no_action");
actionServerValues.put(GOTO_ACTION, "drive");
actionServerValues.put(OFFSET_ACTION, "set_offset");
optimizationServerValues.put(NO_OPTIMIZATION, "no_optimization");
optimizationServerValues.put(MULTI_GAUSSIAN_FIT, "multi_gaussian_peak");
optimizationServerValues.put(GAUSSIAN_FIT, "gaussian_peak");
optimizationServerValues.put(POLYNOMIAL_FIT, "polynomial_fit");
optimizationServerValues.put(CENTER_OF_MASS, "center_of_mass");
optimizationServerValues.put(BEST_FIT, "best_fit");
momentServerValues.put("moment0 XYZ", "moment0_xyz");
momentServerValues.put("max peak amplitude moment0 YZ", "max_peak_amplitude_moment0_yz");
momentServerValues.put("max peak width moment0 YZ", "max_peak_width_moment0_yz");
actionClientValues.put("no_action", NO_ACTION);
actionClientValues.put("drive", GOTO_ACTION);
actionClientValues.put("set_offset", OFFSET_ACTION);
optimizationClientValues.put("no_optimization", NO_OPTIMIZATION);
optimizationClientValues.put("multi_gaussian_peak", MULTI_GAUSSIAN_FIT);
optimizationClientValues.put("gaussian_peak", GAUSSIAN_FIT);
optimizationClientValues.put("polynomial_fit", POLYNOMIAL_FIT);
optimizationClientValues.put("center_of_mass", CENTER_OF_MASS);
optimizationClientValues.put("best_fit", BEST_FIT);
momentClientValues.put("moment0_xyz", "moment0 XYZ");
momentClientValues.put("max_peak_amplitude_moment0_yz", "max peak amplitude moment0 YZ");
momentClientValues.put("max_peak_width_moment0_yz", "max peak width moment0 YZ");
}
public IcsParameterizableScan1D(int databaseId, int servantId, ClientServantDescriptor descriptor) {
super(databaseId, servantId, descriptor);
}
public void setRole(String newRole) {
role_name = newRole;
}
public ActualProperties getServerVariables(Map<String, Property> properties, Map<String, Property> realDynamicProperties, List<Variable> variables, OptimizationParameters optimizationParameters, boolean format) {
//System.out.println("getServerVariables with " + properties);
ActualProperties actualProperties = new ActualProperties();
Property nPropertiesProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + N_PROPERTIES);
// getting the controller to pass to the created properties
//AbstractController controller = nPropertiesProperty.getAbstractController();
long nProperties = 0;
try {
nProperties = Long.parseLong(nPropertiesProperty.getValue());
} catch (NumberFormatException e) {
System.err.println("Cannot parse " + N_PROPERTIES + " property");
}
// optimization type
Property optimizationTypeProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + OPTIMIZATION_TYPE);
String serverValue = optimizationTypeProperty.getValue();
optimizationParameters.optimizationType = optimizationClientValues.get(serverValue);
// fit order
Property fitOrderProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + FIT_ORDER);
serverValue = fitOrderProperty.getValue();
optimizationParameters.fitOrder = serverValue;
// action type
Property actionProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + SCAN_ACTION_TYPE);
serverValue = actionProperty.getValue();
optimizationParameters.actionType = actionClientValues.get(serverValue);
// clearing the dynamic properties
//realDynamicProperties.clear();
// adding the variables
for (int i = 0; i < nProperties; i++) {
Variable variable = new Variable();
// controller name
String controllerNamePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + CONTROLLER + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property controllerNameProperty = getProperty(PropertyType.STRING, realDynamicProperties, controllerNamePropertyName, CONTROLLER, i, format);
variable.controllerName = controllerNameProperty.getValue();
// property name
String propertyNamePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + WANTED_PROPERTY + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property propertyNameProperty = getProperty(PropertyType.STRING, realDynamicProperties, propertyNamePropertyName, WANTED_PROPERTY, i, format);
variable.wantedPropertyName = propertyNameProperty.getValue();
// mode
String modePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + MODE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property modeProperty = getProperty(PropertyType.STRING, realDynamicProperties, modePropertyName, MODE, i, format);
if (modeProperty.getValue().equals(MODE_INTERVAL)) {
variable.modeType = Variable.MODE_INTERVAL;
// start
String startPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + START + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property startProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, startPropertyName, START, i, format);
variable.value1 = startProperty.getValue();
// end
String endPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + END + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property endProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, endPropertyName, END, i, format);
variable.value2 = endProperty.getValue();
// n_steps
String nStepsPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + N_STEPS + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property nStepsProperty = getProperty(PropertyType.LONG, realDynamicProperties, nStepsPropertyName, N_STEPS, i, format);
variable.value3 = nStepsProperty.getValue();
} else if (modeProperty.getValue().equals(MODE_DELTA_INTERVAL)) {
variable.modeType = Variable.MODE_DELTA_INTERVAL;
// start
String startPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + START + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property startProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, startPropertyName, START, i, format);
variable.value1 = startProperty.getValue();
// end
String endPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + END + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property endProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, endPropertyName, END, i, format);
variable.value2 = endProperty.getValue();
// delta
String deltaPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + DELTA + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property deltaProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, deltaPropertyName, DELTA, i, format);
try {
variable.value3 = deltaProperty.getValue();
} catch (NumberFormatException e) {
System.err.println("Cannot parse " + deltaPropertyName + " property");
}
} else if (modeProperty.getValue().equals(MODE_DELTA)) {
variable.modeType = Variable.MODE_DELTA;
// reference
String referencePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + REFERENCE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property referenceProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, referencePropertyName, REFERENCE, i, format);
variable.value1 = referenceProperty.getValue();
// delta type
String deltaTypePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + DELTA_TYPE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property deltaTypeProperty = getProperty(PropertyType.STRING, realDynamicProperties, deltaTypePropertyName, DELTA_TYPE, i, format);
if (deltaTypeProperty.getValue().equals(MIN_VALUE)) {
variable.deltaType = Variable.DELTA_MIN;
} else if (deltaTypeProperty.getValue().equals(MAX_VALUE)) {
variable.deltaType = Variable.DELTA_MAX;
} else if (deltaTypeProperty.getValue().equals(CENTER_VALUE)) {
variable.deltaType = Variable.DELTA_CENTER;
} else {
System.err.println("delta type " + variable.deltaType + " not managed");
}
// delta
String deltaPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + DELTA + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property deltaProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, deltaPropertyName, DELTA, i, format);
try {
variable.value2 = deltaProperty.getValue();
} catch (NumberFormatException e) {
System.err.println("Cannot parse " + deltaPropertyName + " property");
}
// n_steps
String nStepsPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + N_STEPS + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property nStepsProperty = getProperty(PropertyType.LONG, realDynamicProperties, nStepsPropertyName, N_STEPS, i, format);
variable.value3 = nStepsProperty.getValue();
} else if (modeProperty.getValue().equals(MODE_FLIP)) {
variable.modeType = Variable.MODE_FLIP;
// down
String downPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + DOWN + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property downProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, downPropertyName, DOWN, i, format);
variable.value1 = downProperty.getValue();
// up
String upPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + UP + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property upProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, upPropertyName, UP, i, format);
variable.value2 = upProperty.getValue();
} else if (modeProperty.getValue().equals(MODE_EXPLICIT_VALUES)) {
variable.modeType = Variable.MODE_EXPLICIT_VALUES;
// explicit values
String explicitValuesPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + EXPLICIT_VALUES + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property explicitValuesProperty = getProperty(PropertyType.STRING, realDynamicProperties, explicitValuesPropertyName, EXPLICIT_VALUES, i, format);
variable.values = explicitValuesProperty.getValue();
}
else {
System.err.println("Mode " + modeProperty.getValue() + " not managed");
}
// changing the controller for actual step and actual value
/* if (experimentController == null) {
Property actualTimeProperty = properties.get(ROLE_NAME + ConfigManager.ROLE_AND_NAME_SEPARATOR + ACTUAL_TIME);
experimentController = actualTimeProperty.getAbstractController();
}
controller = experimentController;
*/
// actual step
String actualStepPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + ACTUAL_STEP + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property actualStepProperty = getProperty(PropertyType.LONG, realDynamicProperties, actualStepPropertyName, ACTUAL_STEP, i, format);
actualProperties.steps.add(actualStepProperty);
// actual value
String actualValuePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + ACTUAL_VALUE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property actualValueProperty = getProperty(PropertyType.DOUBLE, realDynamicProperties, actualValuePropertyName, ACTUAL_VALUE, i, format);
actualProperties.values.add(actualValueProperty);
variables.add(variable);
}
return actualProperties;
}
public ActualProperties setServerVariables(Map<String, Property> properties, Map<String, Property> realDynamicProperties, List<Variable> variables, OptimizationParameters optimizationParameters, boolean format) {
//System.out.println("setServerVariables " + realDynamicProperties);
ActualProperties actualProperties = new ActualProperties();
Property nPropertiesProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + N_PROPERTIES);
/*
// getting the controller to pass to the created properties
AbstractController controller = nPropertiesProperty.getAbstractController();
// cast into ServerAtomicCommandWrapper to clear the property set
if (controller instanceof ServerAtomicCommandWrapper) {
ServerAtomicCommandWrapper commandWrapper = (ServerAtomicCommandWrapper)controller;
commandWrapper.clearDynamicProperties();
}
*/
// TODO seems ok not to clear the property map : because the map is fixed to 7 properties
nPropertiesProperty.setValue(new Long(variables.size()).toString());
// getting undoable property
boolean undoable = nPropertiesProperty.isUndoable();
// optimization parameters
if (optimizationParameters != null) {
// optimization type
Property optimizationTypeProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + OPTIMIZATION_TYPE);
if (optimizationServerValues.get(optimizationParameters.optimizationType) != null) {
optimizationTypeProperty.setValue(optimizationServerValues.get(optimizationParameters.optimizationType));
} else {
System.err.println(optimizationParameters.optimizationType + " is not an accepted value for optimization type");
}
// fit order
Property fitOrderProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + FIT_ORDER);
if (optimizationParameters.fitOrder != null) {
fitOrderProperty.setValue(optimizationParameters.fitOrder);
}
if (optimizationParameters.actionType != null) {
// action type
Property actionProperty = properties.get(role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + SCAN_ACTION_TYPE);
if (actionServerValues.get(optimizationParameters.actionType) != null) {
actionProperty.setValue(actionServerValues.get(optimizationParameters.actionType));
} else {
System.err.println(optimizationParameters.actionType + " is not an accepted value for action");
}
}
}
// clearing the dynamic properties
//realDynamicProperties.clear();
for (int i = 0; i < variables.size(); i++) {
Variable variable = variables.get(i);
//System.out.println("\t" + variable);
// controller name
String controllerNamePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + CONTROLLER + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property controllerNameProperty = getProperty(PropertyType.STRING, undoable, realDynamicProperties, controllerNamePropertyName, CONTROLLER, i, format);
// value can be null
if (variable.controllerName != null) {
controllerNameProperty.setValue(variable.controllerName);
}
// property name
String propertyNamePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + WANTED_PROPERTY + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property propertyNameProperty = getProperty(PropertyType.STRING, undoable, realDynamicProperties, propertyNamePropertyName, WANTED_PROPERTY, i, format);
// value can be null
if (variable.wantedPropertyName != null) {
propertyNameProperty.setValue(variable.wantedPropertyName);
}
if (variable.modeType == Variable.MODE_INTERVAL) {
// mode
String modePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + MODE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property modeProperty = getProperty(PropertyType.STRING, undoable, realDynamicProperties, modePropertyName, MODE, i, format);
modeProperty.setValue(MODE_INTERVAL);
// start
String startPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + START + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property startProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, startPropertyName, START, i, format);
startProperty.setValue(variable.value1);
// end
String endPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + END + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property endProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, endPropertyName, END, i, format);
endProperty.setValue(variable.value2);
// n_steps
String nStepsPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + N_STEPS + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property nStepsProperty = getProperty(PropertyType.LONG, undoable, realDynamicProperties, nStepsPropertyName, N_STEPS, i, format);
nStepsProperty.setValue(variable.value3);
} else if (variable.modeType == Variable.MODE_DELTA_INTERVAL) {
// mode
String modePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + MODE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property modeProperty = getProperty(PropertyType.STRING, undoable, realDynamicProperties, modePropertyName, MODE, i, format);
modeProperty.setValue(MODE_DELTA_INTERVAL);
// start
String startPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + START + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property startProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, startPropertyName, START, i, format);
startProperty.setValue(variable.value1);
// end
String endPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + END + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property endProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, endPropertyName, END, i, format);
endProperty.setValue(variable.value2);
// delta
String deltaPropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + DELTA + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property deltaProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, deltaPropertyName, DELTA, i, format);
deltaProperty.setValue(variable.value3);
} else if (variable.modeType == Variable.MODE_DELTA) {
// mode
String modePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + MODE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property modeProperty = getProperty(PropertyType.STRING, undoable, realDynamicProperties, modePropertyName, MODE, i, format);
modeProperty.setValue(MODE_DELTA);
// reference
String referencePropertyName = role_name + ConfigManager.ROLE_AND_NAME_SEPARATOR + REFERENCE + ConfigManager.ROLE_AND_NAME_SEPARATOR + i;
Property referenceProperty = getProperty(PropertyType.DOUBLE, undoable, realDynamicProperties, referencePropertyName, REFERENCE, i, format);
referenceProperty.setValue(variable.value1);