/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.type;
import org.obiba.magma.Value;
import org.obiba.magma.ValueConverter;
import org.obiba.magma.ValueType;
/**
* Converts {@code integer} to {@code decimal} and vice-versa
*/
public class NumericValueConverter implements ValueConverter {
@Override
public boolean converts(ValueType from, ValueType to) {
return from.isNumeric() && to.isNumeric();
}
@Override
public Value convert(Value value, ValueType to) {
// When converting decimal to integer, this will truncate the decimal places: 0.9 -> 0
return value == null || value.isNull() ? to.nullValue() : to.valueOf(value.getValue());
}
}