package com.idega.block.dataquery.data.sql;
import com.idega.block.dataquery.data.xml.QueryOrderConditionPart;
/**
* <p>Title: idegaWeb</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: idega Software</p>
* @author <a href="thomas@idega.is">Thomas Hilbig</a>
* @version 1.0
* Created on Nov 13, 2003
*/
public class OrderConditionExpression implements Expression {
public static final String DESCENDENT = "DESC";
public static final char WHITE_SPACE = ' ';
private boolean isAscendant = true;
private String valueField = null;
private String path = null;
public OrderConditionExpression(QueryOrderConditionPart orderConditionPart, SQLQuery sqlQuery) {
initialize(orderConditionPart, sqlQuery);
}
protected void initialize(QueryOrderConditionPart orderConditionPart, SQLQuery sqlQuery) {
String field = orderConditionPart.getField();
this.path = orderConditionPart.getPath();
this.isAscendant = orderConditionPart.isAscendant();
this.valueField = sqlQuery.getUniqueNameForField(this.path,field);
}
public String toSQLString() {
StringBuffer buffer = new StringBuffer(this.valueField);
if (! this.isAscendant) {
buffer.append(WHITE_SPACE);
buffer.append(DESCENDENT);
}
return buffer.toString();
}
/* (non-Javadoc)
* @see com.idega.block.dataquery.data.sql.Expression#isValid()
*/
public boolean isValid() {
// TODO Auto-generated method stub
return true;
}
public String getPath() {
return this.path;
}
}