public static function doDelete($values, ConnectionInterface $con = null)
     {
         if (null === $con) {
             $con = Propel::getServiceContainer()->getWriteConnection(IndexEngineDriverConfigurationTableMap::DATABASE_NAME);
         }

         if ($values instanceof Criteria) {
             // rename for clarity
            $criteria = $values;
         } elseif ($values instanceof \IndexEngine\Model\IndexEngineDriverConfiguration) { // it's a model object
            // create criteria based on pk values
            $criteria = $values->buildPkeyCriteria();
         } else { // it's a primary key, or an array of pks
            $criteria = new Criteria(IndexEngineDriverConfigurationTableMap::DATABASE_NAME);
             $criteria->add(IndexEngineDriverConfigurationTableMap::ID, (array) $values, Criteria::IN);
         }

         $query = IndexEngineDriverConfigurationQuery::create()->mergeWith($criteria);

         if ($values instanceof Criteria) {
             IndexEngineDriverConfigurationTableMap::clearInstancePool();
         } elseif (!is_object($values)) { // it's a primary key, or an array of pks
            foreach ((array) $values as $singleval) {
                IndexEngineDriverConfigurationTableMap::removeInstanceFromPool($singleval);
            }
         }

         return $query->delete($con);
     }