code: public static TableColumnInfo create(@NotNull final Field field, @NotNull final Locale locale) {
  
          Contract.requireArgNotNull("field", field);
          Contract.requireArgNotNull("locale", locale);
  
          final TableColumn tableColumn = field.getAnnotation(TableColumn.class);
          if (tableColumn == null) {
              return null;
          }
          final AnnotationAnalyzer analyzer = new AnnotationAnalyzer();
          final FieldTextInfo labelInfo = analyzer.createFieldInfo(field, locale, Label.class);
          final FieldTextInfo shortLabelInfo = analyzer.createFieldInfo(field, locale, ShortLabel.class);
          final FieldTextInfo tooltipInfo = analyzer.createFieldInfo(field, locale, Tooltip.class);
          final int pos = tableColumn.pos();
          final FontSize fontSize = new FontSize(tableColumn.width(), tableColumn.unit());
          final String getter = getGetter(tableColumn, field.getName());
  
          final String labelText;
          if (labelInfo == null) {
              labelText = null;
          } else {
              labelText = labelInfo.getTextOrField();
          }
  
          final String shortLabelText;
          if (shortLabelInfo == null) {
              shortLabelText = null;
          } else {
              shortLabelText = shortLabelInfo.getText();
          }
  
          final String tooltipText;
          if (tooltipInfo == null) {
              tooltipText = null;
          } else {
              tooltipText = tooltipInfo.getText();
          }
  
          return new TableColumnInfo(field, labelText, shortLabelText, tooltipText, pos, fontSize, getter);
  
      }
docs: Return the table column information for a given field.
  
  @param field
  Field to check for <code>@TableColumn</code> and <code>@Label</code> annotations.
  @param locale
  Locale to use.
  
  @return Information or <code>null</code>.