class DataTypeControllerFeatureConsumer extends FeatureConsumer {

    @Override
    public void flush()
    {
        List<MapDataElement> features = consumeFeatures();
        if (features == null || features.isEmpty())
        {
            return;
        }
        synchronized (idSet)
        {
            if (killed)
            {
                return;
            }
            if (!ctrl.hasDataTypeInfoForTypeKey(myType.getTypeKey()))
            {
                ctrl.addDataType(getClass().getSimpleName(), myType.getTypeKey(), myType, this);
            }

            features = dontAddElementOutsideLoadTime(features);
            if (!features.isEmpty())
            {
                idSet.addAll(ctrl.addMapDataElements(myType, null, null, features, this));
            }
        }
    }

    public  DataTypeControllerFeatureConsumer(DataTypeController dataTypeController, TimeManager timeManager, DataTypeInfo info,
            int flushSize);

}