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.usecases.structuretool.CreateSiteNodeVersionUCC; 31 import org.infoglue.cms.entities.structure.SiteNodeVersion; 32 import org.infoglue.cms.entities.structure.SiteNodeVersionVO; 33 import org.infoglue.cms.entities.structure.impl.simple.SiteNodeVersionImpl; 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 CreateSiteNodeVersionUCCImpl extends BaseUCCController implements CreateSiteNodeVersionUCC 39 { 40 private final static Logger logger = Logger.getLogger(CreateSiteNodeVersionUCCImpl.class.getName()); 41 42 public SiteNodeVersionVO createSiteNodeVersion(SiteNodeVersionVO siteNodeVersionVO) 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 = createSiteNodeVersionEntity(db, siteNodeVersionVO); 55 56 ceb.throwIfNotEmpty(); 58 59 commitTransaction(db); 60 } 61 catch(ConstraintException ce) 62 { 63 logger.warn("An error occurred so we should not complete the transaction:" + ce, ce); 64 rollbackTransaction(db); 65 throw ce; 66 } 67 catch(Exception e) 68 { 69 logger.error("An error occurred so we should not complete the transaction:" + e, e); 70 rollbackTransaction(db); 71 throw new SystemException(e.getMessage()); 72 } 73 74 return siteNodeVersion.getValueObject(); 75 } 76 77 78 81 82 private SiteNodeVersion createSiteNodeVersionEntity(Database db, SiteNodeVersionVO siteNodeVersionVO) throws SystemException 83 { 84 SiteNodeVersion siteNodeVersion = null; 85 86 try 87 { 88 90 siteNodeVersion = new SiteNodeVersionImpl(); 91 siteNodeVersion.setValueObject(siteNodeVersionVO); 92 db.create(siteNodeVersion); 94 } 95 catch(Exception e) 96 { 97 throw new SystemException("An error occurred when we tried to create the SiteNodeVersion in the database. Reason:" + e.getMessage(), e); 98 } 99 100 return siteNodeVersion; 101 102 } 103 104 } 105 106 | Popular Tags |