DataAccessHelperWj9.java
package sk.iway.iwcm.doc;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import sk.iway.iwcm.DB;
/**
* Rozsirenie modelu documents a groups tabulky pre WJ2022
*/
public class DataAccessHelperWj9 {
/**
* Metoda je volana pri citani udajov z tabulky documents, umoznuje donacitat
* dalsie/specificke data
* Odporucame kvoli dalsiemu rozsirovaniu si spravit separe triedu a pri
* rozsireni tejto len volat
* metodu zo separe triedy, napr. DataAccessHelperMyProjecy.docLoadData(doc,
* rs);
*
* @param rs
* @param doc
*/
public static void docLoadData(ResultSet rs, DocDetails doc) {
try {
// WJ2021 polia
doc.setTempFieldADocId(rs.getInt("temp_field_a_docid"));
doc.setTempFieldBDocId(rs.getInt("temp_field_b_docid"));
doc.setTempFieldCDocId(rs.getInt("temp_field_c_docid"));
doc.setTempFieldDDocId(rs.getInt("temp_field_d_docid"));
doc.setShowInNavbar(DB.getBoolean(rs, "show_in_navbar"));
doc.setShowInSitemap(DB.getBoolean(rs, "show_in_sitemap"));
doc.setLoggedShowInMenu(DB.getBoolean(rs, "logged_show_in_menu"));
doc.setLoggedShowInNavbar(DB.getBoolean(rs, "logged_show_in_navbar"));
doc.setLoggedShowInSitemap(DB.getBoolean(rs, "logged_show_in_sitemap"));
doc.setUrlInheritGroup(DB.getBoolean(rs, "url_inherit_group"));
doc.setGenerateUrlFromTitle(DB.getBoolean(rs, "generate_url_from_title"));
doc.setEditorVirtualPath(rs.getString("editor_virtual_path"));
} catch (Exception ex) {
// ignorujeme, asi nebolo v SQL vybere
}
}
/**
* Vrati zoznam DODATOCNYCH stlpcov pre SQL select/insert/update do documents
* tabulky, priklad:
* [show_in_navbar, show_in_sitemap, logged_show_in_navbar]
*
* @return
*/
public static String[] getDocFields() {
String[] fields = { "temp_field_a_docid", "temp_field_b_docid", "temp_field_c_docid", "temp_field_d_docid",
"show_in_navbar", "show_in_sitemap", "logged_show_in_menu", "logged_show_in_navbar", "logged_show_in_sitemap",
"url_inherit_group", "generate_url_from_title", "editor_virtual_path" };
return fields;
}
/**
* Metoda je volana pri citani udajov z tabulky groups, umoznuje donacitat
* dalsie/specificke data
*
* @param rs
* @param group
*/
public static void groupLoadData(ResultSet rs, GroupDetails group) {
try {
//WJ2021 polia
group.setShowInNavbar(DB.getInteger(rs, "show_in_navbar"));
group.setLoggedShowInNavbar(DB.getInteger(rs, "logged_show_in_navbar"));
group.setShowInSitemap(DB.getInteger(rs, "show_in_sitemap"));
group.setLoggedShowInSitemap(DB.getInteger(rs, "logged_show_in_sitemap"));
} catch (Exception ex) {
//ignorujeme, asi nebolo v SQL vybere
}
}
/**
* Vrati zoznam DODATOCNYCH stlpcov pre SQL insert/update do groups tabulky,
* priklad:
* [show_in_navbar, show_in_sitemap, logged_show_in_navbar]
*
* @return
*/
public static String[] getGroupFields() {
String[] fields = {"show_in_navbar", "show_in_sitemap", "logged_show_in_navbar", "logged_show_in_sitemap"};
return fields;
}
/**
* Nastavi do SQL prepared statementu hodnoty z group objektu pre zapis do
* databazy
*
* @param ps
* @param group
* @param psCounter - pocitadlo poradia parametrov
* @return
*/
public static int setGroupPreparedStatement(PreparedStatement ps, GroupDetails group, int psCounter) throws SQLException {
ps.setObject(psCounter++, group.getShowInNavbar());
ps.setObject(psCounter++, group.getShowInSitemap());
ps.setObject(psCounter++, group.getLoggedShowInNavbar());
ps.setObject(psCounter++, group.getLoggedShowInSitemap());
return psCounter;
}
}