/**
  * @param eZContentClassAttribute $attribute
  *
  * @return OCClassSearchFormAttributeField
  */
 public static function instance(eZContentClassAttribute $attribute)
 {
     if (self::$fieldHandlers === null) {
         self::$fieldHandlers = array();
         if (eZINI::instance('ocsearchtools.ini')->hasVariable('ClassSearchFormHandlers', 'AttributeHandlers')) {
             self::$fieldHandlers = eZINI::instance('ocsearchtools.ini')->variable('ClassSearchFormHandlers', 'AttributeHandlers');
         }
     }
     if (!isset(self::$_instances[$attribute->attribute('id')])) {
         if (isset(self::$fieldHandlers[$attribute->attribute('data_type_string')]) && class_exists(self::$fieldHandlers[$attribute->attribute('data_type_string')])) {
             $className = self::$fieldHandlers[$attribute->attribute('data_type_string')];
         } else {
             $className = 'OCClassSearchFormAttributeField';
         }
         self::$_instances[$attribute->attribute('id')] = new $className($attribute);
     }
     return self::$_instances[$attribute->attribute('id')];
 }