KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > applications > workflowtool > function > ContentPublisher


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 package org.infoglue.cms.applications.workflowtool.function;
24
25 import java.util.ArrayList JavaDoc;
26 import java.util.List JavaDoc;
27
28 import org.infoglue.cms.controllers.kernel.impl.simple.ContentStateController;
29 import org.infoglue.cms.controllers.kernel.impl.simple.PublicationController;
30 import org.infoglue.cms.entities.content.ContentVersionVO;
31 import org.infoglue.cms.entities.publishing.PublicationVO;
32
33 import com.opensymphony.workflow.WorkflowException;
34
35 /**
36  *
37  */

38 public class ContentPublisher extends ContentFunction
39 {
40     /**
41      *
42      */

43     private static final String JavaDoc STATUS_OK = "status.publish.ok";
44     
45     /**
46      *
47      */

48     private static final String JavaDoc STATUS_NOK = "status.publish.nok";
49     
50     /**
51      *
52      */

53     protected void execute() throws WorkflowException
54     {
55         setFunctionStatus(STATUS_NOK);
56         if(getContentVO() != null && getContentVersionVO() != null)
57         {
58             publish();
59         }
60     }
61     
62     /**
63      *
64      */

65     private void publish() throws WorkflowException
66     {
67         try
68         {
69             if(getContentVersionVO().getStateId().equals(ContentVersionVO.WORKING_STATE))
70             {
71                 final List JavaDoc events = new ArrayList JavaDoc();
72                 ContentStateController.changeState(getContentVersionVO().getContentVersionId(), ContentVersionVO.PUBLISH_STATE, "Auto", false, getPrincipal(), getContentVO().getId(), getDatabase(), events);
73                 PublicationController.getController().createAndPublish(createPublicationVO(), events, true, getPrincipal(), getDatabase());
74                 setFunctionStatus(STATUS_OK);
75             }
76         }
77         catch(Exception JavaDoc e)
78         {
79             throwException(e);
80         }
81     }
82     
83     /**
84      *
85      */

86     private PublicationVO createPublicationVO()
87     {
88         final PublicationVO publicationVO = new PublicationVO();
89         publicationVO.setName("Workflow publication by " + getPrincipal().getName());
90         publicationVO.setDescription("Workflow publication by " + getPrincipal().getName());
91         publicationVO.setRepositoryId(getContentVO().getRepositoryId());
92         return publicationVO;
93     }
94 }
Popular Tags