/**
*
*/
package org.streaminer.stream.mapper;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author chris
*
*/
public class SelectFeaturesMapper implements IMapper<Map<String,Object>, Map<String,Object>> {
Logger log = LoggerFactory.getLogger( SelectFeaturesMapper.class );
Set<String> include = new TreeSet<String>();
public SelectFeaturesMapper( Collection<String> includes ){
include = new TreeSet<String>( includes );
}
/**
* @see stream.data.mapper.Mapper#map(java.lang.Object)
*/
@Override
public Map<String, Object> map(Map<String, Object> input) throws Exception {
Set<String> remove = new TreeSet<String>();
for( String key : input.keySet() )
if( ! include.contains(key) )
remove.add( key );
for( String key : remove )
input.remove( key );
log.debug( "Removed {} features from datum: {}", remove.size(), remove );
return input;
}
}