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.SiteNodeVersionController; 31 import org.infoglue.cms.controllers.usecases.structuretool.ViewSiteNodeVersionUCC; 32 import org.infoglue.cms.entities.structure.SiteNodeVersion; 33 import org.infoglue.cms.entities.structure.SiteNodeVersionVO; 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 ViewSiteNodeVersionUCCImpl extends BaseUCCController implements ViewSiteNodeVersionUCC 39 { 40 private final static Logger logger = Logger.getLogger(ViewSiteNodeVersionUCCImpl.class.getName()); 41 42 public SiteNodeVersionVO viewSiteNodeVersion(Integer siteNodeVersionId) throws ConstraintException, SystemException 43 { 44 Database db = CastorDatabaseService.getDatabase(); 45 ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer(); 46 47 SiteNodeVersion siteNodeVersion = null; 48 49 beginTransaction(db); 50 51 try 52 { 53 siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionWithId(siteNodeVersionId, 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 siteNodeVersion.getValueObject(); 74 } 75 } 76 77 | Popular Tags |