SelectField.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package com.primeton.dsp.datarelease.api.model;
  2. import net.sf.jsqlparser.expression.Alias;
  3. import net.sf.jsqlparser.expression.Expression;
  4. import net.sf.jsqlparser.expression.ExpressionVisitor;
  5. import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
  6. import net.sf.jsqlparser.schema.Column;
  7. /**
  8. * <pre>
  9. *
  10. * Created by zhenqin.
  11. * User: zhenqin
  12. * Date: 2020/4/28
  13. * Time: 17:48
  14. * Vendor: yiidata.com
  15. * To change this template use File | Settings | File Templates.
  16. *
  17. * </pre>
  18. *
  19. * @author zhenqin
  20. */
  21. public class SelectField extends ASTNodeAccessImpl implements Expression {
  22. /**
  23. * 查询的字段,Column 是 final 无法继承造成的
  24. */
  25. private Column column;
  26. /**
  27. * 查询的字段别名
  28. */
  29. private Alias alias;
  30. public SelectField(Expression expression) {
  31. this((Column)expression);
  32. }
  33. public SelectField(Column expression) {
  34. this.column = expression;
  35. }
  36. public SelectField(Column expression, Alias alias) {
  37. this.column = expression;
  38. this.alias = alias;
  39. }
  40. public Column getExpression() {
  41. return column;
  42. }
  43. public Alias getAlias() {
  44. return alias;
  45. }
  46. public void setAlias(Alias alias) {
  47. this.alias = alias;
  48. }
  49. @Override
  50. public void accept(ExpressionVisitor expressionVisitor) {
  51. expressionVisitor.visit(column);
  52. }
  53. @Override
  54. public String toString() {
  55. return column + ((alias != null) ? alias.toString() : "");
  56. }
  57. }