code: public ColumnModel extractColumnModel(Column column) {
          LOG.debug("Extracting model for column {}", column.getName());
          ColumnModel model = new ColumnModel();
          model.setName(this.nameProvider.getMethodNameForColumn(column));
          model.setDbName(column.getName());
          model.setDbTableName(column.getParent().getName());
          model.setDbFullTableName(column.getParent().getFullName());
  
          model.setSqlType(column.getColumnDataType().getName());
          model.setSqlTypeInt(column.getColumnDataType().getJavaSqlType().getVendorTypeNumber());
          String javaDataTypeName = dataTypeProvider.getCanonicalDataTypeName(column);
          model.setJavaTypeName(javaDataTypeName);
          model.setNotNull(!column.isNullable());
          model.setPartOfPrimaryKey(column.isPartOfPrimaryKey());
          model.setPartOfForeignKey(column.isPartOfForeignKey());
          model.setExplicitAttribute(explicitAttributeDecider.isExplicitAttribute(column));
          model.setUnique(column.isPartOfUniqueIndex() || column.isPartOfPrimaryKey());
  
          model.setConvenienceSetters(convenienceSetterProvider.getConvenienceSetters(column, javaDataTypeName));
  
          return model;
      }
docs: Fills a {@link ColumnModel} with information from a {@link Column}.
  @param column The column
  @return The filled model