/* * $Id: TreeNodeFinder.java,v 1.10.2.1 2007/01/12 19:31:46 idegaweb 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.business; import java.rmi.RemoteException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.List; import java.util.Vector; import javax.ejb.FinderException; import com.idega.builder.data.IBPageName; import com.idega.builder.data.IBPageNameHome; import com.idega.core.builder.data.ICPage; import com.idega.data.EntityFinder; import com.idega.data.IDOLookup; /** * @author <a href="mail:palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class TreeNodeFinder { public static Collection getAllPageNames() { try { Collection col = ((IBPageNameHome)IDOLookup.getHome(IBPageName.class)).findAll(); return col; } catch (RemoteException e) { e.printStackTrace(); } catch (FinderException e) { e.printStackTrace(); } return null; } public static List listOfAllPages() { try { ICPage pages = ((com.idega.core.builder.data.ICPageHome) com.idega.data.IDOLookup.getHomeLegacy(ICPage.class)).createLegacy(); StringBuffer sql = new StringBuffer("select * from "); sql.append(pages.getEntityName()); sql.append(" where ("); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.PAGE); sql.append("' or "); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.DPT_PAGE); sql.append("') and ("); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnDeleted()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.NOT_DELETED); sql.append("' or "); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnDeleted()); sql.append(" is null)"); return (EntityFinder.findAll(pages, sql.toString())); } catch (SQLException e) { e.printStackTrace(); return (null); } } public static List listOfAllTemplates() { try { ICPage pages = ((com.idega.core.builder.data.ICPageHome) com.idega.data.IDOLookup.getHomeLegacy(ICPage.class)).createLegacy(); StringBuffer sql = new StringBuffer("select * from "); sql.append(pages.getEntityName()); sql.append(" where ("); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.TEMPLATE); sql.append("' or "); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.DPT_TEMPLATE); sql.append("') and ("); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnDeleted()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.NOT_DELETED); sql.append("' or "); sql.append(com.idega.builder.data.IBPageBMPBean.getColumnDeleted()); sql.append(" is null)"); return (EntityFinder.findAll(pages, sql.toString())); } catch (SQLException e) { e.printStackTrace(); return (null); } } public static List listOfAllDrafts() { return (null); } /** * * @return */ public static List listOfAllPageRelationships() throws SQLException { List ret = null; ICPage pages = null; Connection conn = null; Statement stmt = null; ResultSet result = null; try { pages = ((com.idega.core.builder.data.ICPageHome) com.idega.data.IDOLookup.getHomeLegacy(ICPage.class)).createLegacy(); conn = pages.getConnection(); stmt = conn.createStatement(); StringBuffer sql = new StringBuffer(); /** * @todo til a� �tiloka dpt_s��ur � famt��inni �arf a� s�kja relationship * �tfr� child en ekki parent annar getur komi� pl�s � tr�� �ar sem hann * � ekki heima �.e. a� childpage.getColumnType() = pages.PAGE */ sql.append("select * from "); sql.append(pages.getEntityName() ).append( "_tree t, "); sql.append(pages.getEntityName()).append( " p "); sql.append(" where "); sql.append("p." ).append( pages.getIDColumnName()); sql.append(" = "); sql.append("t.").append( pages.getIDColumnName()); sql.append(" and ("); sql.append("p.").append( com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.PAGE); sql.append("' or p.").append( com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.DPT_PAGE); sql.append("')"); result = stmt.executeQuery(sql.toString()); if (result != null) { while (result.next()) { int parentId = result.getInt(pages.getIDColumnName()); int childId = result.getInt("child_" + pages.getIDColumnName()); if (parentId != -1 && childId != -1) { if (ret == null) { ret = new Vector(); } ret.add(new Integer(parentId)); ret.add(new Integer(childId)); } } } } finally { // do not hide an existing exception try { if (result != null) { result.close(); } } catch (SQLException resultCloseEx) { System.err.println("[TreeNodeFinder] result set could not be closed"); resultCloseEx.printStackTrace(System.err); } // do not hide an existing exception try { if (stmt != null) { stmt.close(); if (conn != null) { if (pages != null) { pages.freeConnection(conn); } } } } catch (SQLException statementCloseEx) { System.err.println("[TreeNodeFinder] statement could not be closed"); statementCloseEx.printStackTrace(System.err); } } return (ret); } public static List listOfAllTemplateRelationships() throws SQLException { List ret = null; ICPage pages = null; Connection conn = null; Statement stmt = null; ResultSet result = null; try { pages = ((com.idega.core.builder.data.ICPageHome) com.idega.data.IDOLookup.getHomeLegacy(ICPage.class)).createLegacy(); conn = pages.getConnection(); stmt = conn.createStatement(); StringBuffer sql = new StringBuffer(); sql.append("select * from "); sql.append(pages.getEntityName() ).append( "_tree t, "); sql.append(pages.getEntityName() ).append( " p "); sql.append(" where "); sql.append("p." ).append( pages.getIDColumnName()); sql.append(" = "); sql.append("t.").append( pages.getIDColumnName()); sql.append(" and ("); sql.append("p.").append( com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.TEMPLATE); sql.append("' or p.").append( com.idega.builder.data.IBPageBMPBean.getColumnType()); sql.append(" = '"); sql.append(com.idega.builder.data.IBPageBMPBean.DPT_TEMPLATE); sql.append("')"); result = stmt.executeQuery(sql.toString()); if (result != null) { while (result.next()) { int parentId = result.getInt(pages.getIDColumnName()); int childId = result.getInt("child_" + pages.getIDColumnName()); if (parentId != -1 && childId != -1) { if (ret == null) { ret = new Vector(); } ret.add(new Integer(parentId)); ret.add(new Integer(childId)); } } } } finally { // do not hide an existing exception try { if (result != null) { result.close(); } } catch (SQLException resultCloseEx) { System.err.println("[TreeNodeFinder] result set could not be closed"); resultCloseEx.printStackTrace(System.err); } // do not hide an existing exception try { if (stmt != null) { stmt.close(); if (conn != null) { if (pages != null) { pages.freeConnection(conn); } } } } catch (SQLException statementCloseEx) { System.err.println("[TreeNodeFinder] statement could not be closed"); statementCloseEx.printStackTrace(System.err); } } return (ret); } public static List listOfAllDraftRelationships() { return (null); } }