$entityType['name'],
$entityType['class'],
$entityType['table'],
- isset($entityType['fields_callback']) ? $entityType['fields_callback'] : NULL,
- isset($entityType['links_callback']) ? $entityType['links_callback'] : NULL
+ $entityType['fields_callback'] ?? NULL,
+ $entityType['links_callback'] ?? NULL
);
}
}
/**
- * 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($className) {
- return str_replace('_BAO_', '_DAO_', $className);
+ 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 getBAOClassName($daoName) {
+ $baoName = str_replace('_DAO_', '_BAO_', $daoName);
+ return class_exists($baoName) ? $baoName : $daoName;
}
/**
* 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;
}
/**
self::tables());
}
+ /**
+ * Convert the entity name into a table name.
+ *
+ * @param string $entityBriefName
+ *
+ * @return FALSE|string
+ */
+ public static function getTableForEntityName($entityBriefName) {
+ return self::getTableForClass(self::getFullName($entityBriefName));
+ }
+
/**
* Reinitialise cache.
*