// Path: src/main/java/org/mentabean/sql/Function.java
// public interface Function extends HasParams {
// 	
// }
// 
// Path: src/main/java/org/mentabean/sql/Parametrizable.java
// public abstract class Parametrizable implements HasParams {
// 
// 	protected List<Param> params = new ArrayList<Param>();
// 	
// 	public abstract String name();
// 	
// 	@Override
// 	public Param[] getParams() {
// 		return params.toArray(new Param[0]);
// 	}
// 	
// 	protected Parametrizable addParam(Param param) {
// 		params.add(param);
// 		return this;
// 	}
// 	
// 	@Override
// 	public String build() {
// 		
// 		StringBuilder sb = new StringBuilder(name());
// 		
// 		sb.append(" (");
// 		
// 		for (Param param : getParams()) {
// 			sb.append(param.paramInQuery()).append(',');
// 		}
// 		
// 		sb.setCharAt(sb.length()-1, ')');
// 		
// 		return sb.toString();
// 	}
// 	
// }
// 
// Path: src/main/java/org/mentabean/sql/param/Param.java
// public interface Param {
// 
// 	/**
// 	 * Represents the parameters in query. In other words, this method returns a String
// 	 * with the expression exactly as will be shown in SQL before its execution.
// 	 * @return String
// 	 */
// 	public String paramInQuery();
// 	
// 	/**
// 	 * The parameter's values
// 	 * @return Object[]
// 	 */
// 	public Object[] values();
// 	
// }


import org.mentabean.sql.Function;
import org.mentabean.sql.Parametrizable;
import org.mentabean.sql.param.Param;
package org.mentabean.sql.functions;


public class Lower extends Parametrizable implements Function {

	private Param param;
	
	public Lower(Param param) {
		this.param = param;
	}
	
	@Override
	public Param[] getParams() {
		return new Param[] {param};
	}
	
	@Override
	public String name() {
// Path: src/main/java/org/mentabean/sql/Function.java
// public interface Function extends HasParams {
// 	
// }
// 
// Path: src/main/java/org/mentabean/sql/Parametrizable.java
// public abstract class Parametrizable implements HasParams {
// 
// 	protected List<Param> params = new ArrayList<Param>();
// 	
// 	public abstract String name();
// 	
// 	@Override
// 	public Param[] getParams() {
// 		return params.toArray(new Param[0]);
// 	}
// 	
// 	protected Parametrizable addParam(Param param) {
// 		params.add(param);
// 		return this;
// 	}
// 	
// 	@Override
// 	public String build() {
// 		
// 		StringBuilder sb = new StringBuilder(name());
// 		
// 		sb.append(" (");
// 		
// 		for (Param param : getParams()) {
// 			sb.append(param.paramInQuery()).append(',');
// 		}
// 		
// 		sb.setCharAt(sb.length()-1, ')');
// 		
// 		return sb.toString();
// 	}
// 	
// }
// 
// Path: src/main/java/org/mentabean/sql/param/Param.java
// public interface Param {
// 
// 	/**
// 	 * Represents the parameters in query. In other words, this method returns a String
// 	 * with the expression exactly as will be shown in SQL before its execution.
// 	 * @return String
// 	 */
// 	public String paramInQuery();
// 	
// 	/**
// 	 * The parameter's values
// 	 * @return Object[]
// 	 */
// 	public Object[] values();
// 	
// }


// Path: src/main/java/org/mentabean/sql/functions/Lower.java
import org.mentabean.sql.Function;
import org.mentabean.sql.Parametrizable;
import org.mentabean.sql.param.Param;

package org.mentabean.sql.functions;


public class Lower extends Parametrizable implements Function {

	private Param param;
	
	public Lower(Param param) {
		this.param = param;
	}
	
	@Override
	public Param[] getParams() {
		return new Param[] {param};
	}
	
	@Override
	public String name() {
		return "LOWER";