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 OracleSchemaManager extends AbstractSchemaManager \oracleschemamanager
class TableDiff \tablediff
  class SqliteSchemaManager extends AbstractSchemaManager \sqliteschemamanager
  class PostgreSqlSchemaManager extends AbstractSchemaManager \postgresqlschemamanager
class ExpressionBuilder \expressionbuilder
class CompositeExpression implements Countable \compositeexpression
class QueryException extends Exception \queryexception
class QueryBuilder \querybuilder
class Configuration \configuration
class SQLParserUtils \sqlparserutils
class Version \version
class ConnectionException extends Exception \connectionexception
class SQLParserUtilsException extends Exception \sqlparserutilsexception
class LockMode \lockmode
class Statement extends PDOStatement \statement
class SchemaConfig \schemaconfig
class Comparator \comparator
class SchemaDiff \schemadiff
  class MySqlSchemaManager extends AbstractSchemaManager \mysqlschemamanager
  class SQLAnywhereSchemaManager extends AbstractSchemaManager \sqlanywhereschemamanager
  class Index extends AbstractAsset implements Constraint \index
  class Table extends AbstractAsset \table
  class Sequence extends AbstractAsset \sequence
  class SQLServerSchemaManager extends AbstractSchemaManager \sqlserverschemamanager
  class Column extends AbstractAsset \column
class ColumnDiff \columndiff
class SchemaException extends Exception \schemaexception
  class View extends AbstractAsset \view
  class ForeignKeyConstraint extends AbstractAsset implements Constraint \foreignkeyconstraint
  class Schema extends AbstractAsset \schema
  class DrizzleSchemaManager extends AbstractSchemaManager \drizzleschemamanager
class SQLAnywhere16Platform extends SQLAnywhere12Platform \sqlanywhere16platform
  class OraclePlatform extends AbstractPlatform \oracleplatform
  class SqlitePlatform extends AbstractPlatform \sqliteplatform
class SQLAzurePlatform extends SQLServer2008Platform \sqlazureplatform
class PostgreSQL100Platform extends PostgreSQL94Platform \postgresql100platform
  class DB2Platform extends AbstractPlatform \db2platform
class SQLServer2012Platform extends SQLServer2008Platform \sqlserver2012platform
  class DrizzlePlatform extends AbstractPlatform \drizzleplatform
  class Graphviz extends AbstractVisitor \graphviz
  class DropSchemaSqlCollector extends AbstractVisitor \dropschemasqlcollector
class MySQL80Platform extends MySQL57Platform \mysql80platform
  class SingleDatabaseSynchronizer extends AbstractSchemaSynchronizer \singledatabasesynchronizer
  class Identifier extends AbstractAsset \identifier
  class DB2SchemaManager extends AbstractSchemaManager \db2schemamanager
  class RemoveNamespacedAssets extends AbstractVisitor \removenamespacedassets
  class CreateSchemaSqlCollector extends AbstractVisitor \createschemasqlcollector
class PoolingShardManager implements ShardManager \poolingshardmanager
class PoolingShardConnection extends Connection \poolingshardconnection
class ShardingException extends Exception \shardingexception
  class SQLAzureFederationsSynchronizer extends AbstractSchemaSynchronizer \sqlazurefederationssynchronizer
class ResultCacheStatement implements IteratorAggregate, ResultStatement, Result \resultcachestatement
class CacheException extends Exception \cacheexception
class Connection implements DriverConnection \connection
class LoggerChain implements SQLLogger \loggerchain
class DebugStack implements SQLLogger \debugstack
class SQLAzureShardManager implements ShardManager \sqlazureshardmanager
class MultiTenantVisitor implements Visitor \multitenantvisitor
class MultiTenantShardChoser implements ShardChoser \multitenantshardchoser
class EchoSQLLogger implements SQLLogger \echosqllogger
class NotNullConstraintViolationException extends ConstraintViolationException \notnullconstraintviolationexception
class ForeignKeyConstraintViolationException extends ConstraintViolationException \foreignkeyconstraintviolationexception
class ReadOnlyException extends ServerException \readonlyexception
class UniqueConstraintViolationException extends ConstraintViolationException \uniqueconstraintviolationexception
class MasterSlaveConnection extends PrimaryReadReplicaConnection \masterslaveconnection
class OracleSessionInit implements EventSubscriber \oraclesessioninit
class TableExistsException extends DatabaseObjectExistsException \tableexistsexception
class InvalidFieldNameException extends ServerException \invalidfieldnameexception
class SyntaxErrorException extends ServerException \syntaxerrorexception
class InvalidArgumentException extends Exception \invalidargumentexception
class QueryCacheProfile \querycacheprofile
class ArrayStatement implements IteratorAggregate, ResultStatement, Result \arraystatement
class LockWaitTimeoutException extends ServerException implements RetryableException \lockwaittimeoutexception
class NonUniqueFieldNameException extends ServerException \nonuniquefieldnameexception
class TableNotFoundException extends DatabaseObjectNotFoundException \tablenotfoundexception
class DeadlockException extends ServerException implements RetryableException \deadlockexception
class ConversionException extends Exception \conversionexception
class BlobType extends Type \blobtype
class GuidType extends StringType \guidtype
class BooleanType extends Type \booleantype
class SimpleArrayType extends Type \simplearraytype
class BinaryType extends Type \binarytype
class TimeImmutableType extends TimeType \timeimmutabletype
class ArrayType extends Type \arraytype
class FloatType extends Type \floattype
class DateIntervalType extends Type \dateintervaltype
class TextType extends Type \texttype
class DateTimeTzImmutableType extends DateTimeTzType \datetimetzimmutabletype
class DecimalType extends Type \decimaltype
class DateTimeImmutableType extends DateTimeType \datetimeimmutabletype
class SingleConnectionProvider implements ConnectionProvider \singleconnectionprovider
class ConnectionHelper extends Helper \connectionhelper
class RunSqlCommand extends Command \runsqlcommand
class ImportCommand extends Command \importcommand
  class SQLAnywhereException extends AbstractDriverException \sqlanywhereexception
class SQLAnywhereStatement implements IteratorAggregate, Statement, Result \sqlanywherestatement
class SQLAnywhereConnection implements Connection, ServerInfoAwareConnection \sqlanywhereconnection
class ConsoleRunner \consolerunner
class Driver extends AbstractPostgreSQLDriver \driver
class LastInsertId \lastinsertid
class SchemaAlterTableChangeColumnEventArgs extends SchemaEventArgs \schemaaltertablechangecolumneventargs
class ConnectionEventArgs extends EventArgs \connectioneventargs
class SQLSessionInit implements EventSubscriber \sqlsessioninit
class MysqlSessionInit implements EventSubscriber \mysqlsessioninit
class SchemaIndexDefinitionEventArgs extends SchemaEventArgs \schemaindexdefinitioneventargs
class SchemaAlterTableEventArgs extends SchemaEventArgs \schemaaltertableeventargs
class SchemaDropTableEventArgs extends SchemaEventArgs \schemadroptableeventargs
class SchemaColumnDefinitionEventArgs extends SchemaEventArgs \schemacolumndefinitioneventargs
class SchemaAlterTableRenameColumnEventArgs extends SchemaEventArgs \schemaaltertablerenamecolumneventargs
class SchemaCreateTableColumnEventArgs extends SchemaEventArgs \schemacreatetablecolumneventargs
class SchemaAlterTableRemoveColumnEventArgs extends SchemaEventArgs \schemaaltertableremovecolumneventargs
class SchemaAlterTableAddColumnEventArgs extends SchemaEventArgs \schemaaltertableaddcolumneventargs
class TableGenerator \tablegenerator
class ReservedWordsCommand extends Command \reservedwordscommand
class SchemaCreateTableEventArgs extends SchemaEventArgs \schemacreatetableeventargs
class TableGeneratorSchemaVisitor implements Visitor \tablegeneratorschemavisitor
class IntegerType extends Type implements PhpIntegerMappingType \integertype
class VarDateTimeImmutableType extends VarDateTimeType \vardatetimeimmutabletype
class SmallIntType extends Type implements PhpIntegerMappingType \smallinttype
class DateImmutableType extends DateType \dateimmutabletype
class JsonArrayType extends JsonType \jsonarraytype
class BigIntType extends Type implements PhpIntegerMappingType \biginttype
class PostgreSQL100Keywords extends PostgreSQL94Keywords \postgresql100keywords
class DrizzleKeywords extends KeywordList \drizzlekeywords
class MySQL80Keywords extends MySQL57Keywords \mysql80keywords
class MsSQLKeywords extends SQLServerKeywords \mssqlkeywords
class SQLAnywhere16Keywords extends SQLAnywhere12Keywords \sqlanywhere16keywords
class OracleKeywords extends KeywordList \oraclekeywords
class SQLiteKeywords extends KeywordList \sqlitekeywords
class DB2Keywords extends KeywordList \db2keywords
class SQLServer2012Keywords extends SQLServer2008Keywords \sqlserver2012keywords
class ReservedKeywordsValidator implements Visitor \reservedkeywordsvalidator
class StatementIterator implements IteratorAggregate \statementiterator
class ObjectType extends Type \objecttype
class DatabaseObjectNotFoundException extends ServerException \databaseobjectnotfoundexception
class ServerException extends DriverException \serverexception
class PrimaryReadReplicaConnection extends Connection \primaryreadreplicaconnection
class ConstraintViolationException extends ServerException \constraintviolationexception
class SchemaEventArgs extends EventArgs \schemaeventargs
class MysqliStatement implements IteratorAggregate, StatementInterface, Result \mysqlistatement
class MysqliConnection implements ConnectionInterface, PingableConnection, ServerInfoAwareConnection \mysqliconnection
class OCI8Statement implements IteratorAggregate, StatementInterface, Result \oci8statement
class DB2Connection implements ConnectionInterface, ServerInfoAwareConnection \db2connection
class OCI8Connection implements ConnectionInterface, ServerInfoAwareConnection \oci8connection
class DB2Statement implements IteratorAggregate, StatementInterface, Result \db2statement
class DB2Driver extends AbstractDB2Driver \db2driver
class DatabaseObjectExistsException extends ServerException \databaseobjectexistsexception
class PostgreSQL92Keywords extends PostgreSQL91Keywords \postgresql92keywords
class SQLAnywhereKeywords extends KeywordList \sqlanywherekeywords
class SQLServer2008Keywords extends SQLServer2005Keywords \sqlserver2008keywords
class MySQL57Keywords extends MySQLKeywords \mysql57keywords
class PostgreSQLKeywords extends KeywordList \postgresqlkeywords
class PostgreSQL91Keywords extends PostgreSQLKeywords \postgresql91keywords
class PostgreSQL94Keywords extends PostgreSQL92Keywords \postgresql94keywords
class StringType extends Type \stringtype
class DBALException extends \Exception \dbalexception
class AbstractVisitor implements Visitor, NamespaceVisitor \abstractvisitor
class SQLServerKeywords extends KeywordList \sqlserverkeywords
class MySQLKeywords extends KeywordList \mysqlkeywords
class SQLServer2005Keywords extends SQLServerKeywords \sqlserver2005keywords
class SQLAnywhere11Keywords extends SQLAnywhereKeywords \sqlanywhere11keywords
class SQLAnywhere12Keywords extends SQLAnywhere11Keywords \sqlanywhere12keywords
class PDOStatement extends \PDOStatement implements StatementInterface, Result \pdostatement
class PDOConnection extends PDO implements ConnectionInterface, ServerInfoAwareConnection \pdoconnection
class SQLSrvConnection implements ConnectionInterface, ServerInfoAwareConnection \sqlsrvconnection
class SQLSrvStatement implements IteratorAggregate, StatementInterface, Result \sqlsrvstatement
class DateType extends Type \datetype
class DateTimeTzType extends Type implements PhpDateTimeMappingType \datetimetztype
class VarDateTimeType extends DateTimeType \vardatetimetype
class JsonType extends Type \jsontype
class DateTimeType extends Type implements PhpDateTimeMappingType \datetimetype
class TimeType extends Type \timetype
class AbstractDriverException extends AbstractException \abstractdriverexception
class PDOException extends \PDOException implements DriverException \pdoexception