docs: protected Column column( String nameExpression ) {
          String[] parts = nameExpression.split("(?<!\\\\)\\."); // a . not preceded by an escaping slash
          for (int i = 0; i != parts.length; ++i) {
              parts[i] = parts[i].trim();
          }
          SelectorName name = null;
          String propertyName = null;
          String columnName = null;
          if (parts.length == 2) {
              name = selector(parts[0]);
              propertyName = parts[1];
              columnName = parts[1];
          } else {
              if (source instanceof Selector) {
                  Selector selector = (Selector)source;
                  name = selector.hasAlias() ? selector.alias() : selector.name();
                  propertyName = parts[0];
                  columnName = parts[0];
              } else {
                  throw new IllegalArgumentException(GraphI18n.columnMustBeScoped.text(parts[0]));
              }
          }
          return new Column(name, propertyName, columnName);
      }