class DummyVariableCreator extends AbstractDatasetFeatureVectorTransformer implements Serializable {

    public FeatureVector convert(FeatureVector featureVector) {
        Validate.notNull(featureVector, "featureVector must not be null");
        
		if (mappers.isEmpty()) {
			return featureVector;
		}
        
        List<FeatureVector> appendedVectors = new ArrayList<>();

        if (keepOriginalFeature) {
        	appendedVectors.add(featureVector);
        } else {
        	appendedVectors.add(new FilteredVector(featureVector, not(equal(mappers.keySet()))));
        }
        
        for (VectorEntry<String, Value> entry : featureVector) {
            String featureName = entry.key();
            Value featureValue = entry.value();
            Mapper mapper = mappers.get(featureName);
            if (mapper != null) {
            	appendedVectors.add(mapper.getAppendedFeatureVector(featureValue));
            }
        }
        
		return new AppendedVector(appendedVectors);
    }

    @Deprecated public  DummyVariableCreator(Dataset dataset);
    @Deprecated public  DummyVariableCreator(Dataset dataset, boolean keepOriginalFeature);
    public  DummyVariableCreator(Dataset dataset, boolean keepOriginalFeature, boolean dense);

}