KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > controllers > usecases > structuretool > impl > simple > CreateSiteNodeVersionUCCImpl


1 /* ===============================================================================
2  *
3  * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4  *
5  * ===============================================================================
6  *
7  * Copyright (C)
8  *
9  * This program is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU General Public License version 2, as published by the
11  * Free Software Foundation. See the file LICENSE.html for more information.
12  *
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19  * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20  *
21  * ===============================================================================
22  */

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             //Here you might want to add some validate functonality?
54
siteNodeVersion = createSiteNodeVersionEntity(db, siteNodeVersionVO);
55              
56             //If any of the validations or setMethods reported an error, we throw them up now before create.
57
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 JavaDoc 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     /**
79      * Creates the entity SiteNodeVersion sent in and references the correct other entities
80      */

81      
82     private SiteNodeVersion createSiteNodeVersionEntity(Database db, SiteNodeVersionVO siteNodeVersionVO) throws SystemException
83     {
84         SiteNodeVersion siteNodeVersion = null;
85
86         try
87         {
88             //Fetch related entities here if they should be referenced
89

90             siteNodeVersion = new SiteNodeVersionImpl();
91             siteNodeVersion.setValueObject(siteNodeVersionVO);
92             //Refrence other entities through setters here
93
db.create(siteNodeVersion);
94         }
95         catch(Exception JavaDoc 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