001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.*; 004 005/** 006 * Argument of trim function. 007 * <p> trim( [ [BOTH|TRAILING|LEADING] trim_character FROM ] trim_source) 008 * <p> method {@link gudusoft.gsqlparser.nodes.TTrimArgument#getBoth_trailing_leading()} return one 009 * of those keywords if any: BOTH|TRAILING|LEADING 010 * <p> method {@link gudusoft.gsqlparser.nodes.TTrimArgument#getTrimCharacter()} return a value of 011 * {@link TExpression} represents trim_character. 012 * <p> method {@link gudusoft.gsqlparser.nodes.TTrimArgument#getStringExpression()} return a value of 013 * {@link TExpression} reprsents trim_source. 014 * 015 */ 016public class TTrimArgument extends TParseTreeNode { 017 018 private TExpression stringExpression = null; 019 private TExpression trimCharacter = null; 020 private TSourceToken both_trailing_leading = null; 021 public boolean isBoth(){ 022 if (both_trailing_leading == null) return false; 023 return both_trailing_leading.toString().equalsIgnoreCase("both"); 024 } 025 026 public boolean isTrailing(){ 027 if (both_trailing_leading == null) return false; 028 return both_trailing_leading.toString().equalsIgnoreCase("trailing"); 029 } 030 031 public boolean isLeading(){ 032 if (both_trailing_leading == null) return false; 033 return both_trailing_leading.toString().equalsIgnoreCase("leading"); 034 } 035 036 public void init(Object arg1,Object arg2,Object arg3){ 037 if (arg1 != null){ 038 this.both_trailing_leading = (TSourceToken)arg1; 039 } 040 if (arg2 != null){ 041 this.trimCharacter = (TExpression)arg2; 042 } 043 this.stringExpression = (TExpression)arg3; 044 } 045 046 public TSourceToken getBoth_trailing_leading() { 047 return both_trailing_leading; 048 } 049 050 public TExpression getStringExpression() { 051 return stringExpression; 052 } 053 054 public TExpression getTrimCharacter() { 055 return trimCharacter; 056 } 057 058 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 059 if (this.trimCharacter != null){ 060 this.trimCharacter.doParse(psql,plocation); 061 } 062 this.stringExpression.doParse(psql,plocation); 063 } 064 065 public void accept(TParseTreeVisitor v){ 066 v.preVisit(this); 067 068 v.postVisit(this); 069 } 070 071 public void acceptChildren(TParseTreeVisitor v){ 072 v.preVisit(this); 073 this.stringExpression.acceptChildren(v); 074 v.postVisit(this); 075 } 076 077 public void setStringExpression(TExpression stringExpression) { 078 this.stringExpression = stringExpression; 079 } 080 081 public void setTrimCharacter(TExpression trimCharacter) { 082 this.trimCharacter = trimCharacter; 083 } 084}