/**
  * Return the storage class for the given form.
  * @param string $form_name
  * @param boolean $no_cache Check from the source, not the cached array
  * @return string
  */
 public static function getStorage($form_name, $no_cache = false)
 {
     if ($form_name instanceof I2CE_Form) {
         $form_name = $form_name->getName();
     }
     if (!is_array(self::$storage)) {
         self::$storage = array();
     }
     if ($no_cache || !array_key_exists($form_name, self::$storage)) {
         $type = 'entry';
         $form_config = I2CE::getConfig()->traverse("/modules/forms/");
         if (!$form_config->setIfIsSet($type, "forms/" . $form_name . "/storage")) {
             $form_config->setIfIsSet($type, "storage/default");
         }
         $not_assignable = false;
         I2CE::getConfig()->setIfIsSet($not_assignable, "/modules/forms/storage/not_assignable/{$type}");
         if ($not_assignable) {
             I2CE::raiseError("Invalid form storage type was used ({$type}).  You must set the storage to something else.");
             return '';
         } else {
             self::$storage[$form_name] = $type;
         }
     }
     return self::$storage[$form_name];
 }