package com.revolsys.record.query.functions; import com.revolsys.datatype.DataType; import com.revolsys.record.query.AbstractUnaryQueryValue; import com.revolsys.record.query.Query; import com.revolsys.record.query.QueryValue; import com.revolsys.record.schema.RecordStore; public abstract class UnaryFunction extends AbstractUnaryQueryValue { private final String name; public UnaryFunction(final String name, final QueryValue parameter) { super(parameter); this.name = name; } @Override public void appendDefaultSql(final Query query, final RecordStore recordStore, final StringBuilder buffer) { buffer.append(getName()); buffer.append("("); super.appendDefaultSql(query, recordStore, buffer); buffer.append(")"); } @Override public UnaryFunction clone() { return (UnaryFunction)super.clone(); } @Override public boolean equals(final Object other) { if (other == this) { return true; } else if (other instanceof UnaryFunction) { final UnaryFunction function = (UnaryFunction)other; if (DataType.equal(function.getName(), getName())) { return super.equals(function); } } return false; } public String getName() { return this.name; } public QueryValue getParameter() { return super.getValue(); } @Override public String toString() { return getName() + "(" + super.toString() + ")"; } }