1 18 package jahiatemplates.org.jahia.skin_blaster; 19 20 import java.sql.Connection ; 21 import java.sql.ResultSet ; 22 import java.sql.SQLException ; 23 import java.sql.Statement ; 24 25 import org.jahia.exceptions.JahiaException; 26 import org.jahia.utils.JahiaConsole; 27 28 29 public class SkinDBManager { 30 31 private static SkinDBManager theObject = null; 32 33 34 40 private SkinDBManager() 41 { 42 JahiaConsole.println( "SkinsDBManager", "***** Starting the SkinBlaster DataBase Manager *****" ); 43 } 45 46 52 public static synchronized SkinDBManager getInstance() 53 { 54 if (theObject == null) { 55 theObject = new SkinDBManager(); 56 } 57 return theObject; 58 } 60 61 67 public int load_UserSkin( String theUserName ) 68 throws JahiaException 69 { 70 Connection dbConn = null; 71 Statement stmt = null; 72 ResultSet rs = null; 73 int theSkinID = -1; 74 75 try { 76 dbConn = org.jahia.services.database.ConnectionDispenser.getConnection(); 78 stmt = dbConn.createStatement(); 79 80 String sqlQuery = "SELECT * FROM jahiatemplates_skin WHERE (skin_username='" + theUserName + "')"; 82 83 rs = stmt.executeQuery( sqlQuery ); 85 86 if (rs != null) { 87 while (rs.next()) { 88 theSkinID = rs.getInt("skin_id"); 89 } 90 } 91 } catch (SQLException se) { 92 theSkinID = -1; 93 String errorMsg = "Error in load_UserSkin : " + se.getMessage(); 94 JahiaConsole.println( "SkinBlaster", errorMsg + " -> BAILING OUT" ); 95 throw new JahiaException( "Cannot load skin data from the database", 96 errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL_SEVERITY ); 97 } finally { 98 try { 99 100 if ( stmt != null ) stmt.close(); 101 } catch ( SQLException ex ) { 103 JahiaException je = new JahiaException( "Cannot free resources", 104 "load_UserSkin : cannot free resources", 105 JahiaException.DATABASE_ERROR, JahiaException.WARNING_SEVERITY ); 106 } 107 } 108 if (theSkinID == -1) { 109 add_UserSkin(theUserName); 110 theSkinID = 1; 111 } 112 return theSkinID; 113 114 } 116 117 118 124 public void update_UserSkin( String theUserName, int theSkinID ) 125 throws JahiaException 126 { 127 Connection dbConn = null; 128 Statement stmt = null; 129 try { 130 dbConn = org.jahia.services.database.ConnectionDispenser.getConnection(); 132 stmt = dbConn.createStatement(); 133 134 String sqlQuery = "UPDATE jahiatemplates_skin SET "; 136 sqlQuery += "skin_id = " + theSkinID; 137 sqlQuery += " WHERE skin_username = '" + theUserName + "'"; 138 139 stmt.executeUpdate(sqlQuery ); 141 142 } 143 catch (SQLException se) 145 { 146 String errorMsg = "Error in update_UserSkin : " + se.getMessage(); 147 JahiaConsole.println( "SkinBlaster", errorMsg + " -> BAILING OUT" ); 148 throw new JahiaException( "Cannot update skin in the database", 149 errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL_SEVERITY ); 150 } finally { 151 try { 152 153 if ( stmt != null ) stmt.close(); 154 } catch ( SQLException ex ) { 155 JahiaException je = new JahiaException( "Cannot free resources", 156 "update_UserSkin : cannot free resources", 157 JahiaException.DATABASE_ERROR, JahiaException.WARNING_SEVERITY ); 158 } 159 } 160 } 162 163 169 public void add_UserSkin( String theUserName ) 170 throws JahiaException 171 { 172 Connection dbConn = null; 173 Statement stmt = null; 174 try { 175 dbConn = org.jahia.services.database.ConnectionDispenser.getConnection(); 177 stmt = dbConn.createStatement(); 178 179 String sqlQuery = "INSERT INTO jahiatemplates_skin ("; 181 sqlQuery += "skin_username,"; 182 sqlQuery += "skin_id) VALUES ("; 183 sqlQuery += "'" + theUserName + "', 1 )"; 184 stmt.executeUpdate(sqlQuery ); 185 } 186 catch (SQLException se) 188 { 189 String errorMsg = "Error in create_jahiatemplates_skin : " + se.getMessage(); 190 JahiaConsole.println( "SkinBlaster", errorMsg + " -> BAILING OUT" ); 191 throw new JahiaException( "Cannot insert new skin definitions in the database", 192 errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL_SEVERITY ); 193 194 } 195 } 197 198 204 public void consoleOutput( String errorMsg ) 205 throws JahiaException 206 { 207 JahiaConsole.println( "SkinBlaster", errorMsg + " -> BAILING OUT" ); 208 } 210 } 211 | Popular Tags |