X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FDAO%2FAllCoreTables.php;h=6cce0eb92cc3c0f582ccbc5c4b7c7ae744d95fa1;hb=3d182a0410cc3f52a3adaa7f8e36da216662048a;hp=0fee62521ce1d713bb8dbc8b3ab5feac8fa8029d;hpb=a61efd0168ab83b092d1abc0726fdfe2bd9101ea;p=civicrm-core.git diff --git a/CRM/Core/DAO/AllCoreTables.php b/CRM/Core/DAO/AllCoreTables.php index 0fee62521c..6cce0eb92c 100644 --- a/CRM/Core/DAO/AllCoreTables.php +++ b/CRM/Core/DAO/AllCoreTables.php @@ -186,14 +186,26 @@ class CRM_Core_DAO_AllCoreTables { } /** - * Get the DAO for the class. + * Get the DAO for a BAO class. * - * @param string $className + * @param string $baoName * - * @return string + * @return string|CRM_Core_DAO + */ + public static function getCanonicalClassName($baoName) { + return str_replace('_BAO_', '_DAO_', $baoName); + } + + /** + * Get the BAO for a DAO class. + * + * @param string $daoName + * + * @return string|CRM_Core_DAO */ - public static function getCanonicalClassName($className) { - return str_replace('_BAO_', '_DAO_', $className); + public static function getBAOClassName($daoName) { + $baoName = str_replace('_DAO_', '_BAO_', $daoName); + return class_exists($baoName) ? $baoName : $daoName; } /** @@ -242,7 +254,8 @@ class CRM_Core_DAO_AllCoreTables { * Ex: 'Contact'. */ public static function getBriefName($className) { - return CRM_Utils_Array::value($className, array_flip(self::daoToClass())); + $className = self::getCanonicalClassName($className); + return array_search($className, self::daoToClass(), TRUE) ?: NULL; } /**