/* * 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.support; import java.util.Collections; import java.util.SortedSet; import javax.validation.constraints.NotNull; import org.obiba.magma.Value; import org.obiba.magma.ValueSet; import org.obiba.magma.ValueSource; import org.obiba.magma.ValueType; import org.obiba.magma.VariableEntity; import org.obiba.magma.VectorSource; public final class NullValueSource implements ValueSource, VectorSource { private final ValueType valueType; public NullValueSource(ValueType valueType) { this.valueType = valueType; } @NotNull @Override public ValueType getValueType() { return valueType; } @NotNull @Override public Value getValue(ValueSet valueSet) { return valueType.nullValue(); } @Override public boolean supportVectorSource() { return true; } @NotNull @Override public VectorSource asVectorSource() { return this; } @Override public Iterable<Value> getValues(SortedSet<VariableEntity> entities) { return Collections.nCopies(entities.size(), valueType.nullValue()); } }