package quickml.supervised.featureEngineering1;
import com.google.common.base.Function;
import quickml.data.AttributesMap;
import quickml.data.instances.InstanceWithAttributesMap;
import javax.annotation.Nullable;
import java.util.List;
/**
* Created by ian on 5/20/14.
*/
public class InstanceEnricher implements Function<InstanceWithAttributesMap<?>, InstanceWithAttributesMap<?>> {
private final List<AttributesEnricher> attributesEnrichers;
public InstanceEnricher(List<AttributesEnricher> attributesEnrichers) {
this.attributesEnrichers = attributesEnrichers;
}
@Nullable
@Override
public InstanceWithAttributesMap<?> apply(@Nullable InstanceWithAttributesMap instance) {
AttributesMap attributes = instance.getAttributes();
for (AttributesEnricher attributesEnricher : attributesEnrichers) {
attributes = attributesEnricher.apply(attributes);
}
return new InstanceWithAttributesMap(attributes, instance.getLabel(), instance.getWeight());
}
}