Class Option Recommendations

Below, is a list of classes that may be updated with final or abstract.
The red stars mention possible upgrade by using final or abstract keywords; The green stars mention a valid absence of the option (an extended class, that can't be final, ...); The absence of star report currently configured classes. .

Final Abstract Name Path
class Category extends \Espo\Core\Templates\Controllers\Base \category
class QueueManagerCreateLocaleAttribute extends Base \queuemanagercreatelocaleattribute
class Catalog extends Base \catalog
class ProductSerie extends Base \productserie
class Packaging extends Base \packaging
  class ProductFamily extends AbstractController \productfamily
class QueueManagerDuplicateProduct extends \Treo\Services\QueueManagerBase \queuemanagerduplicateproduct
  class Brand extends AbstractController \brand
class RevisionField extends MultilangRevisionField \revisionfield
class Country extends \Espo\Core\Templates\Controllers\Base \country
  class Channel extends AbstractController \channel
  class GeneralStatisticsDashlet extends AbstractProductDashletService \generalstatisticsdashlet
  class ProductTypesDashlet extends AbstractProductDashletService \producttypesdashlet
class ProductFamilyAttribute extends Base \productfamilyattribute
  class Attribute extends AbstractController \attribute
class AttributeGroup extends \Espo\Core\Templates\Controllers\Base \attributegroup
class Tax extends \Espo\Core\Templates\Repositories\Base \tax
  class ProductsByStatusDashlet extends AbstractProductDashletService \productsbystatusdashlet
class Image extends Base \image
class MeasuringUnit extends \Espo\Core\Templates\Repositories\Base \measuringunit
  class AbstractTechnicalService extends AbstractService \abstracttechnicalservice
  class ChannelsDashlet extends AbstractDashletService \channelsdashlet
class ProductAttributeValue extends Base \productattributevalue
class Product extends Base \product
  class ProductsByTagDashlet extends AbstractProductDashletService \productsbytagdashlet
class Association extends \Espo\Core\Templates\Repositories\Base \association
class AssociatedProduct extends Base \associatedproduct
  class CategoryController extends AbstractListener \categorycontroller
  class ProductFamilyEntity extends AbstractEntityListener \productfamilyentity
  class CatalogEntity extends AbstractEntityListener \catalogentity
  class BrandController extends AbstractListener \brandcontroller
class EntityManager extends \Treo\Core\Loaders\EntityManager \entitymanager
  class CategoryEntity extends AbstractEntityListener \categoryentity
  class ProductController extends AbstractEntityListener \productcontroller
  class LayoutController extends AbstractListener \layoutcontroller
  class ProductFamilyController extends AbstractListener \productfamilycontroller
  class AttributeGroupEntity extends AbstractEntityListener \attributegroupentity
  class StreamController extends AbstractListener \streamcontroller
  class ImportFeedEntity extends AbstractListener \importfeedentity
  class AssetRelationEntity extends AbstractListener \assetrelationentity
  class ProductAttributeValueEntity extends AbstractListener \productattributevalueentity
  class AttachmentController extends AbstractListener \attachmentcontroller
  class AttributeEntity extends AbstractEntityListener \attributeentity
  class TreoCleanupJob extends AbstractListener \treocleanupjob
  class SettingsController extends AbstractListener \settingscontroller
  class ChannelEntity extends AbstractEntityListener \channelentity
  class AssociatedProductController extends AbstractListener \associatedproductcontroller
  class AssociationEntity extends AbstractEntityListener \associationentity
  class ExportProfileEntity extends AbstractListener \exportprofileentity
  class ProductAttributeValueController extends AbstractListener \productattributevaluecontroller
  class AttributeController extends AbstractListener \attributecontroller
  class ProductEntity extends AbstractEntityListener \productentity
  class BrandEntity extends AbstractEntityListener \brandentity
  class AssetEntity extends AbstractListener \assetentity
  abstract class AbstractProductTypeController extends Base \abstractproducttypecontroller
  class Event extends AbstractEvent \event
  class Module extends AbstractModule \module
class Mysql extends EspoMysql \mysql
  class ProductHandler extends AbstractHandler \producthandler
class Unit extends DefaultUnit \unit
  class V3Dot11Dot20 extends AbstractMigration \v3dot11dot20
  class V3Dot11Dot13 extends AbstractMigration \v3dot11dot13
  class V2Dot2Dot4 extends AbstractMigration \v2dot2dot4
  class V3Dot12Dot0 extends AbstractMigration \v3dot12dot0
class V1Dot7Dot5 extends V1Dot7Dot1 \v1dot7dot5
class V3Dot13Dot0 extends Base \v3dot13dot0
  class V2Dot9Dot4 extends AbstractMigration \v2dot9dot4
  class V2Dot9Dot1 extends AbstractMigration \v2dot9dot1
  class V2Dot12Dot0 extends \Treo\Core\Migration\AbstractMigration \v2dot12dot0
class V3Dot1Dot0 extends V3Dot0Dot1 \v3dot1dot0
  class V1Dot6Dot1 extends AbstractMigration \v1dot6dot1
  class V2Dot0Dot1 extends \Treo\Core\Migration\AbstractMigration \v2dot0dot1
  class V2Dot5Dot4 extends AbstractMigration \v2dot5dot4
  class V2Dot9Dot8 extends AbstractMigration \v2dot9dot8
  class V3Dot10Dot2 extends AbstractMigration \v3dot10dot2
  class V2Dot6Dot0 extends AbstractMigration \v2dot6dot0
  class V1Dot9Dot1 extends AbstractMigration \v1dot9dot1
class V3Dot13Dot1 extends Base \v3dot13dot1
  class V2Dot12Dot1 extends \Treo\Core\Migration\AbstractMigration \v2dot12dot1
  class V2Dot14Dot7 extends \Treo\Core\Migration\AbstractMigration \v2dot14dot7
  class V3Dot12Dot3 extends AbstractMigration \v3dot12dot3
  class V3Dot10Dot1 extends AbstractMigration \v3dot10dot1
class V3Dot11Dot23 extends Base \v3dot11dot23
  class V3Dot10Dot0 extends AbstractMigration \v3dot10dot0
  class V3Dot6Dot0 extends AbstractMigration \v3dot6dot0
  class V1Dot5Dot5 extends AbstractMigration \v1dot5dot5
  class V2Dot3Dot0 extends AbstractMigration \v2dot3dot0
abstract class AbstractDashletService extends Base implements DashletInterface \abstractdashletservice
abstract class AbstractProductDashletService extends AbstractDashletService \abstractproductdashletservice
abstract class AbstractService extends Base \abstractservice
abstract class AbstractSelectManager extends \Treo\Core\SelectManagers\Base \abstractselectmanager
abstract class AbstractEntityListener extends AbstractListener \abstractentitylistener
abstract class AbstractController extends Base \abstractcontroller
class V3Dot0Dot1 extends AbstractMigration \v3dot0dot1