package com.w11k.lsql.guice;
import com.google.inject.Inject;
import com.w11k.lsql.LSql;
import com.w11k.lsql.Table;
import com.w11k.lsql.query.PojoQuery;
import com.w11k.lsql.query.RowQuery;
import com.w11k.lsql.sqlfile.LSqlFile;
import com.w11k.lsql.statement.AbstractSqlStatement;
public class LSqlDao {
@Inject
private LSql lSql;
private LSqlFile lSqlFile;
public LSql getlSql() {
return lSql;
}
public void setlSql(LSql lSql) {
this.lSql = lSql;
}
public synchronized LSqlFile getlSqlFile() {
if (lSqlFile == null) {
this.lSqlFile = lSql.readSqlFile(getClass());
}
return lSqlFile;
}
public void setlSqlFile(LSqlFile lSqlFile) {
this.lSqlFile = lSqlFile;
}
public AbstractSqlStatement<RowQuery> statement(String name) {
return getlSqlFile().statement(name);
}
public <T> AbstractSqlStatement<PojoQuery<T>> statement(String name, Class<T> pojoClass) {
return getlSqlFile().statement(name, pojoClass);
}
private Table table(String tableName) {
return getlSql().table(tableName);
}
}