/* * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * * This file is part of jAPS software. * jAPS is a free software; * you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2. * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * */ package com.agiletec.aps.system.services.pagemodel; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.HashMap; import java.util.Map; import com.agiletec.aps.system.common.AbstractDAO; import com.agiletec.aps.system.exception.ApsSystemException; import com.agiletec.aps.system.services.showlettype.IShowletTypeManager; /** * Data Access Object per i modelli di pagina (PageModel)0 * @author */ public class PageModelDAO extends AbstractDAO implements IPageModelDAO { /** * Carica e restituisce la mappa dei modelli di pagina. * @return La mappa dei modelli. */ public Map<String, PageModel> loadModels() { Connection conn = null; Statement stat = null; ResultSet res = null; Map<String, PageModel> models = new HashMap<String, PageModel>(); try { conn = this.getConnection(); stat = conn.createStatement(); res = stat.executeQuery(ALL_PAGEMODEL); while (res.next()) { PageModel pageModel = this.getPageModelFromResultSet(res); models.put(pageModel.getCode(), pageModel); } } catch (Throwable t) { processDaoException(t, "Error loading the page models", "loadModels"); } finally{ closeDaoResources(res, stat, conn); } return models; } /** * Costruisce e restituisce un modello di pagina * leggendo una riga di resultset. * @param res Il resultset da leggere * @return Il modello di pagina generato * @throws ApsSystemException In caso di errore. */ protected PageModel getPageModelFromResultSet(ResultSet res) throws ApsSystemException { PageModel pageModel = new PageModel(); String code = null; try { code = res.getString(1); pageModel.setCode(code); pageModel.setDescr(res.getString(2)); String xmlFrames = res.getString(3); if (null != xmlFrames && xmlFrames.length() > 0) { PageModelDOM pageModelDOM = new PageModelDOM(xmlFrames, this.getShowletTypeManager()); pageModel.setFrames(pageModelDOM.getFrames()); pageModel.setMainFrame(pageModelDOM.getMainFrame()); pageModel.setDefaultShowlet(pageModelDOM.getDefaultShowlet()); } pageModel.setPluginCode(res.getString(4)); } catch (Throwable t) { processDaoException(t, "Error building the page model code '" + code + "'", "getPageModelFromResultSet"); } return pageModel; } protected IShowletTypeManager getShowletTypeManager() { return _showletTypeManager; } public void setShowletTypeManager(IShowletTypeManager showletTypeManager) { this._showletTypeManager = showletTypeManager; } private IShowletTypeManager _showletTypeManager; private final String ALL_PAGEMODEL = "SELECT code, descr, frames, plugincode FROM pagemodels"; }