/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model.database;
import model.object.UsagePossibility;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
*
* @author Yoldark34 <yoldark@gmail.com>
*/
public class UsagePossibilityMapper extends AbstractMapper {
/**
* get all usages possibility from the database
*
* @return ArrayList<UsagePossibility>
* @throws SQLException
* @throws ClassNotFoundException
*/
public ArrayList<UsagePossibility> getAllUsagePossibilitys() throws SQLException, ClassNotFoundException {
DbConnection adapter = DbConnection.getDbConnection();
adapter.executeSelectQuery("Select * from " + DataBaseElements.USAGEPOSSIBILITY);
return (ArrayList<UsagePossibility>) adapter.getModelsFromRequest(this);
}
/**
* update usage possibility id update mode and ids = -1, insert if insert
* mode
*
* @param usagePossibility
* @param updateMode
* @return nbRows
*/
public int save(UsagePossibility usagePossibility, boolean updateMode) {
int nbRows = 0;
int idResult = -1;
String query = "";
if (updateMode && usagePossibility.getIdBikeUsageType() != -1 && usagePossibility.getIdUserType() != -1 && usagePossibility.getIdStorageType() != -1) {
if (usagePossibility.getIdRent() != -1 && usagePossibility.getIdGuarantee() != -1) {
query = "UPDATE `" + DataBaseElements.USAGEPOSSIBILITY + "` SET ";
if (usagePossibility.getIdRent() != -1) {
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDRENT + "` = '" + usagePossibility.getIdRent() + "',";
}
if (usagePossibility.getIdGuarantee() != -1) {
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDGUARANTEE + "` = '" + usagePossibility.getIdGuarantee() + "' ";
}
query += "WHERE ";
query += "(";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDBIKEUSAGETYPE + "` = '" + usagePossibility.getIdBikeUsageType() + "'";
query += " AND ";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDUSERTYPE + "` = '" + usagePossibility.getIdUserType() + "'";
query += " AND ";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDSTORAGETYPE + "` = '" + usagePossibility.getIdStorageType() + "'";
query += ")";
query += ";";
try {
DbConnection adapter = DbConnection.getDbConnection();
nbRows = adapter.executeUpdateQuery(query);
} catch (Exception e) {
}
return nbRows;
} else {
return 0;
}
} else if (!updateMode && usagePossibility.getIdBikeUsageType() != -1 && usagePossibility.getIdUserType() != -1 && usagePossibility.getIdStorageType() != -1) {
query = "INSERT INTO " + DataBaseElements.USAGEPOSSIBILITY + " (";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDBIKEUSAGETYPE + "`,";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDUSERTYPE + "`,";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDSTORAGETYPE + "`,";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDRENT + "`,";
query += "`" + DataBaseElements.USAGEPOSSIBILITY_IDGUARANTEE + "` ";
query += ") VALUES (";
query += "'" + usagePossibility.getIdBikeUsageType() + "',";
query += "'" + usagePossibility.getIdUserType() + "',";
query += "'" + usagePossibility.getIdStorageType() + "',";
if (usagePossibility.getIdRent() != -1) {
query += "'" + usagePossibility.getIdRent() + "',";
} else {
query += "NULL,";
}
if (usagePossibility.getIdGuarantee() != -1) {
query += "'" + usagePossibility.getIdGuarantee() + "' ";
} else {
query += "NULL,";
}
query += ")";
try {
DbConnection adapter = DbConnection.getDbConnection();
idResult = adapter.executeInsertQuery(query);
} catch (Exception e) {
}
return idResult;
}
return -1;
}
@Override
public Object populateModel(ResultSet row) throws SQLException {
UsagePossibility obj = new UsagePossibility();
if (this.hasColumn(DataBaseElements.USAGEPOSSIBILITY_IDBIKEUSAGETYPE, row)) {
obj.setIdBikeUsageType(row.getInt(DataBaseElements.USAGEPOSSIBILITY_IDBIKEUSAGETYPE));
}
if (this.hasColumn(DataBaseElements.USAGEPOSSIBILITY_IDUSERTYPE, row)) {
obj.setIdUserType(row.getInt(DataBaseElements.USAGEPOSSIBILITY_IDUSERTYPE));
}
if (this.hasColumn(DataBaseElements.USAGEPOSSIBILITY_IDSTORAGETYPE, row)) {
obj.setIdStorageType(row.getInt(DataBaseElements.USAGEPOSSIBILITY_IDSTORAGETYPE));
}
if (this.hasColumn(DataBaseElements.USAGEPOSSIBILITY_IDRENT, row)) {
obj.setIdRent(row.getInt(DataBaseElements.USAGEPOSSIBILITY_IDRENT));
}
if (this.hasColumn(DataBaseElements.USAGEPOSSIBILITY_IDGUARANTEE, row)) {
obj.setIdGuarantee(row.getInt(DataBaseElements.USAGEPOSSIBILITY_IDGUARANTEE));
}
return obj;
}
@Override
Object getEmptyModel() {
return new UsagePossibility();
}
}