How to evaluate that a CustomFieldType is based on Option

Hi All,

I have to verify if a CustomField is based on a CustomFieldType based on Option.
In other term, verify that the CustomfieldType is or is inherited from :

  • CFSelect,
  • MultiSelectCFType,
  • AbstractMultiCFType
  • AbstractSingleFieldType,
  • AbstractCustomFieldType<Option, T>
  • or probably others variants from different Third Part plugins

My first assumption is to check that by introspection (isInstance(), isInterface(), …).
I need to be sure to miss none of them.