/* * $Id: IBStartPageBMPBean.java,v 1.1 2004/03/25 15:37:39 thomas Exp $ * * Copyright (C) 2001 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package com.idega.builder.data; import com.idega.core.builder.data.*; import com.idega.data.GenericEntity; import com.idega.data.IDOLookup; import java.sql.SQLException; import java.util.Collection; import java.util.Iterator; import javax.ejb.FinderException; /** * @author <a href="mail:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class IBStartPageBMPBean extends GenericEntity implements IBStartPage { private static final String TABLE_NAME = "ib_start_pages"; private static final String DOMAIN_ID = "ib_domain_id"; private static final String PAGE_ID = "ib_page_id"; private static final String PAGE_TYPE = "ib_page_type"; private static final String TEMPLATE = "T"; private static final String PAGE = "P"; /** * */ public IBStartPageBMPBean() { super(); } /** * */ public IBStartPageBMPBean(int id) throws SQLException { super(id); } /** * */ public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(getColumnDomainId(),"Domain id",true,true,Integer.class,GenericEntity.MANY_TO_ONE,ICDomain.class); addAttribute(getColumnPageId(),"Page id",true,true,Integer.class,GenericEntity.MANY_TO_ONE,ICPage.class); addAttribute(getColumnPageType(),"Page type",true,true,String.class); setMaxLength(getColumnPageType(),1); } /** * */ public String getEntityName() { return(TABLE_NAME); } /** * */ public static String getColumnDomainId() { return(DOMAIN_ID); } /** * */ public static String getColumnPageId() { return(PAGE_ID); } /** * */ public static String getColumnPageType() { return(PAGE_TYPE); } /** * */ public void insertStartData() throws Exception { try { ICDomainHome dhome = (ICDomainHome)IDOLookup.getHome(ICDomain.class); Collection domains = dhome.findAllDomains(); if (domains != null && !domains.isEmpty()) { Iterator it = domains.iterator(); while (it.hasNext()) { ICDomain domain = (ICDomain)it.next(); IBStartPage start = null; int id = domain.getStartPageID(); if (id > 0) { start = ((IBStartPageHome)IDOLookup.getHome(this.getClass())).create(); start.setDomainId(domain.getID()); start.setPageId(id); start.setPageTypePage(); start.store(); } id = domain.getStartTemplateID(); if (id > 0) { start = ((IBStartPageHome)IDOLookup.getHome(this.getClass())).create(); start.setDomainId(domain.getID()); start.setPageId(id); start.setPageTypeTemplate(); start.store(); } } } } catch(Exception e) { e.printStackTrace(); throw e; } } /** * */ public void setDomainId(int id) { setColumn(getColumnDomainId(),id); } /** * */ public void setDomainId(Integer id) { setColumn(getColumnDomainId(),id); } /** * */ public int getDomainId() { return(getIntColumnValue(getColumnDomainId())); } /** * */ public void setPageId(int id) { setColumn(getColumnPageId(),id); } /** * */ public void setPageId(Integer id) { setColumn(getColumnPageId(),id); } /** * */ public int getPageId() { return(getIntColumnValue(getColumnPageId())); } private void setPageType(String type) { setColumn(getColumnPageType(),type); } public void setPageTypeTemplate() { setPageType(TEMPLATE); } public void setPageTypePage() { setPageType(PAGE); } public boolean getIsPageTypePage() { return getStringColumnValue(getColumnPageType()).equals(PAGE)?true:false; } public boolean getIsPageTypeTemplate() { return getStringColumnValue(getColumnPageType()).equals(TEMPLATE)?true:false; } public Collection ejbFindAllPagesByDomain(int domain_id) throws FinderException { return ejbFindAllStartTemplatesByDomainAndType(domain_id,PAGE); } public Collection ejbFindAllTemplatesByDomain(int domain_id) throws FinderException { return ejbFindAllStartTemplatesByDomainAndType(domain_id,TEMPLATE); } private Collection ejbFindAllStartTemplatesByDomainAndType(int domain_id, String type) throws FinderException { StringBuffer sql = new StringBuffer("select * from "); sql.append(getTableName()); sql.append(" where "); sql.append(getColumnDomainId()); sql.append(" = "); sql.append(domain_id); sql.append(" and "); sql.append(getColumnPageType()); sql.append(" = '"); sql.append(type); sql.append("'"); return super.idoFindIDsBySQL(sql.toString()); } }