1 23 24 package org.infoglue.cms.controllers.usecases.structuretool.impl.simple; 25 26 import org.apache.log4j.Logger; 27 import org.exolab.castor.jdo.Database; 28 import org.infoglue.cms.controllers.kernel.impl.simple.BaseUCCController; 29 import org.infoglue.cms.controllers.kernel.impl.simple.CastorDatabaseService; 30 import org.infoglue.cms.controllers.kernel.impl.simple.SiteNodeController; 31 import org.infoglue.cms.controllers.usecases.structuretool.ViewSiteNodeUCC; 32 import org.infoglue.cms.entities.structure.SiteNode; 33 import org.infoglue.cms.entities.structure.SiteNodeVO; 34 import org.infoglue.cms.exception.ConstraintException; 35 import org.infoglue.cms.exception.SystemException; 36 import org.infoglue.cms.util.ConstraintExceptionBuffer; 37 38 public class ViewSiteNodeUCCImpl extends BaseUCCController implements ViewSiteNodeUCC 39 { 40 private final static Logger logger = Logger.getLogger(ViewSiteNodeUCCImpl.class.getName()); 41 42 public SiteNodeVO viewSiteNode(Integer siteNodeId) throws ConstraintException, SystemException 43 { 44 Database db = CastorDatabaseService.getDatabase(); 45 ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer(); 46 47 SiteNode siteNode = null; 48 49 beginTransaction(db); 50 51 try 52 { 53 siteNode = SiteNodeController.getController().getSiteNodeWithId(siteNodeId, db); 54 55 ceb.throwIfNotEmpty(); 57 58 commitTransaction(db); 59 } 60 catch(ConstraintException ce) 61 { 62 logger.warn("An error occurred so we should not complete the transaction:" + ce, ce); 63 rollbackTransaction(db); 64 throw ce; 65 } 66 catch(Exception e) 67 { 68 logger.error("An error occurred so we should not complete the transaction:" + e, e); 69 rollbackTransaction(db); 70 throw new SystemException(e.getMessage()); 71 } 72 73 return siteNode.getValueObject(); 74 } 75 } 76 77 | Popular Tags |