package nl.tno.sensorstorm.storm;
import java.util.ArrayList;
import java.util.List;
import nl.tno.sensorstorm.api.particles.Particle;
import nl.tno.sensorstorm.particlemapper.ParticleMapper;
public class SensorStormFieldGrouping extends SensorStormGrouping {
private static final long serialVersionUID = 2150546972712305082L;
private final String fieldId;
public SensorStormFieldGrouping(String fieldId) {
this.fieldId = fieldId;
}
@Override
protected List<Integer> getBoltIdsForNonMetaParticle(
List<Integer> targetBoltIdList,
Class<? extends Particle> particleClass, List<Object> values) {
// get index of the fieldId in the values list
List<Integer> boltIds = new ArrayList<Integer>();
int fieldIdIndex = ParticleMapper.getFieldIdx(particleClass, fieldId);
if ((fieldIdIndex >= 0) && (fieldIdIndex <= values.size())) {
Object fieldValue = values.get(fieldIdIndex);
int targetBoltId = selectTargetBoltId(targetBoltIdList, fieldValue);
boltIds.add(targetBoltId);
}
return boltIds;
}
}