package io.robe.hibernate.criteria.api.projection;
/**
* Created by kamilbukum on 16/01/2017.
*/
public class EnhancedProjection implements Projection {
private final String alias;
private final Projection projection;
public EnhancedProjection(Projection projection, String alias) {
this.projection = projection;
this.alias = alias;
}
public String getAlias() {
return alias;
}
public Projection getProjection() {
return projection;
}
@Override
public boolean isGrouped() {
return false;
}
@Override
public String toString() {
return "EnhancedProjection{" +
"alias='" + alias + '\'' +
", projection=" + projection +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof EnhancedProjection)) return false;
EnhancedProjection that = (EnhancedProjection) o;
if (getAlias() != null ? !getAlias().equals(that.getAlias()) : that.getAlias() != null) return false;
return getProjection() != null ? getProjection().equals(that.getProjection()) : that.getProjection() == null;
}
@Override
public int hashCode() {
int result = getAlias() != null ? getAlias().hashCode() : 0;
result = 31 * result + (getProjection() != null ? getProjection().hashCode() : 0);
return result;
}
}