/* * Copyright Aduna (http://www.aduna-software.com/) (c) 2008. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.sail.rdbms.algebra; import org.openrdf.sail.rdbms.algebra.base.RdbmsQueryModelNodeBase; import org.openrdf.sail.rdbms.algebra.base.RdbmsQueryModelVisitorBase; import org.openrdf.sail.rdbms.algebra.base.SqlExpr; /** * A particular column in an SQL expression. * * @author James Leigh * */ public class IdColumn extends RdbmsQueryModelNodeBase implements SqlExpr { private String alias; private String column; public IdColumn(String alias) { super(); this.alias = alias; this.column = "id"; } public IdColumn(ColumnVar var) { super(); this.alias = var.getAlias(); this.column = var.getColumn(); } public IdColumn(String alias, String column) { super(); this.alias = alias; this.column = column; } public String getAlias() { return alias; } public String getColumn() { return column; } @Override public String getSignature() { return super.getSignature() + " " + alias + "." + column; } @Override public <X extends Exception> void visit(RdbmsQueryModelVisitorBase<X> visitor) throws X { visitor.meet(this); } @Override public IdColumn clone() { return (IdColumn)super.clone(); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((alias == null) ? 0 : alias.hashCode()); result = prime * result + ((column == null) ? 0 : column.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 IdColumn other = (IdColumn)obj; if (alias == null) { if (other.alias != null) return false; } else if (!alias.equals(other.alias)) return false; if (column == null) { if (other.column != null) return false; } else if (!column.equals(other.column)) return false; return true; } }