public void copyValuesByName(VariableMap source) {
		if (source == null)
			return;
		for (int i=0; i<source.getSize(); i++) {
			Variable sourceVar = source.get(i);
			if (sourceVar.getName() != null) { //has name?
				Variable target = this.get(sourceVar.getName());
				if (target != null)	{
					//Constraint
					target.setConstraint(sourceVar.getConstraint());
					//Step
					if (sourceVar instanceof IntegerVariable) {
						((IntegerVariable)target).setStep(((IntegerVariable)sourceVar).getStep());
					}
					else if (sourceVar instanceof DoubleVariable) {
						((DoubleVariable)target).setStep(((DoubleVariable)sourceVar).getStep());
					}
					//Value
					try {
						target.setValue(sourceVar.getValue());
					} catch (IllegalArgumentException e) {
						e.printStackTrace();
					} catch (WrongVariableTypeException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}