/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2008.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.sail.rdbms.algebra.base;
import org.openrdf.query.algebra.Var;
import org.openrdf.sail.rdbms.algebra.ColumnVar;
/**
* A column in an SQL expression.
*
* @author James Leigh
*
*/
public abstract class ValueColumnBase extends RdbmsQueryModelNodeBase implements SqlExpr {
private String name;
private ColumnVar var;
public ValueColumnBase(Var var) {
this.name = var.getName();
}
public ValueColumnBase(ColumnVar var) {
this.name = var.getName();
setRdbmsVar(var);
}
public String getVarName() {
return name;
}
public ColumnVar getRdbmsVar() {
return var;
}
public void setRdbmsVar(ColumnVar var) {
assert var != null;
this.var = var;
}
public String getAlias() {
return var.getAlias();
}
public String getColumn() {
return var.getColumn();
}
@Override
public String getSignature() {
if (var != null)
return super.getSignature() + " " + var;
return super.getSignature() + " " + name;
}
@Override
public ValueColumnBase clone() {
return (ValueColumnBase)super.clone();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final ValueColumnBase other = (ValueColumnBase)obj;
if (name == null) {
if (other.name != null)
return false;
}
else if (!name.equals(other.name))
return false;
return true;
}
}