private void setTypeMapper(Project to, Dbms dbms, Schema schema, Table table, Column column, Class<? extends TypeMapper<?, ?>> typeMapperClass) {
        to.dbmses()
            .filter(d -> d.getId().equals(dbms.getId()))
            .flatMap(Dbms::schemas)
            .filter(s -> s.getId().equals(schema.getId()))
            .flatMap(Schema::tables)
            .filter(t -> t.getId().equals(table.getId()))
            .flatMap(Table::columns)
            .filter(c -> c.getId().equals(column.getId()))
            // If the data type has changed, we do not want to keep the old mapper
            .filter(c -> c.getDatabaseType().equals(column.getDatabaseType()))
            // Perhaps one would expect this to match a single column, so findFirst would do,
            // but fetching metadata from the database seems to create multiple instances of
            // similar dbmses in the same Project, so we make sure to do this forEach copy.
            .forEach(c -> c.mutator().setTypeMapper(typeMapperClass));
    }
Set all typemappers in the given project that match dbms, schema, table, column and column database type.

The idea is to use this method to reset TypeMappers from an old project when new metadata has been loaded.
We make sure to match column database type to avoid setting an incompatible mapper if the new project has
changed database type for the referenced column.

@param to the project to mutate
@param dbms the dbms holding the typemapper
@param schema the schema of the typemapper
@param table the table of the typemapper
@param column the column of the typemapper
@param typeMapperClass the new type mapper class to set
tool-parent/tool-core/src/main/java/com/speedment/tool/core/internal/util/ConfigFileHelper.java