package library.conditions;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import library.exceptions.InvalidQueryException;
public abstract class AbstractNumberCondition extends AbstractSongCondition {
private int number;
public static final int EQUALS_MODE = 0;
public static final int LESS_THAN_EQUALS_MODE = -1;
public static final int GREATER_THAN_EQUALS_MODE = 1;
public AbstractNumberCondition(int query, int mode) throws InvalidQueryException {
super(String.valueOf(query), mode);
number = query;
}
public int getQueryNumber() {
return number;
}
@Override
protected String getSQLCondition(String columnName) {
String condition = columnName;
switch(mode) {
case 0:
condition += " = ?";
break;
case -1:
condition += " <= ?";
break;
case 1:
condition += " >= ?";
break;
default:
return null;
}
return condition;
}
@Override
public int prepareSQLStatement(PreparedStatement statement, int index) throws SQLException {
statement.setInt(index++, number);
return index;
}
}