org.apache.lenya.cms.workflow.usecases
Class Publish

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.lenya.cms.usecase.AbstractUsecase
          extended by org.apache.lenya.cms.usecase.DocumentUsecase
              extended by org.apache.lenya.cms.workflow.usecases.CheckWorkflow
                  extended by org.apache.lenya.cms.workflow.usecases.InvokeWorkflow
                      extended by org.apache.lenya.cms.workflow.usecases.Publish
All Implemented Interfaces:
org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.service.Serviceable, org.apache.lenya.cms.usecase.Usecase

public class Publish
extends InvokeWorkflow

Publish usecase handler.

Version:
$Id: Publish.java 595621 2007-11-16 10:56:39Z andreas $

Nested Class Summary
static class Publish.LinkList
          A list of links originating from a document.
 
Field Summary
protected static java.lang.String MESSAGE_DOCUMENT_PUBLISHED
           
protected static java.lang.String MESSAGE_SUBJECT
           
protected static java.lang.String SCHEDULE
           
protected static java.lang.String SCHEDULE_TIME
           
protected static java.lang.String SEND_NOTIFICATION
           
protected static java.lang.String UNPUBLISHED_LINKS
           
 
Fields inherited from class org.apache.lenya.cms.workflow.usecases.CheckWorkflow
ATTRIBUTE_ID, ELEMENT_EVENT
 
Fields inherited from class org.apache.lenya.cms.usecase.DocumentUsecase
DOCUMENT, TARGET_DOCUMENT
 
Fields inherited from class org.apache.lenya.cms.usecase.AbstractUsecase
ATTRIBUTE_NAME, ATTRIBUTE_POLICY, ATTRIBUTE_USECASE, ATTRIBUTE_VALUE, context, ELEMENT_EXIT, ELEMENT_PARAMETER, ELEMENT_TRANSACTION, ELEMENT_VIEW, ERROR_OBJECTS_CHECKED_OUT, EVENT_CHECK_EXECUTION_CONDITIONS, EVENT_CHECK_POSTCONDITIONS, EVENT_CHECK_PRECONDITIONS, EVENT_EXECUTE, manager, MODEL, PARAMETER_CHECKOUT_RESTRICTED_TO_SESSION, PARAMETER_FACTORY, PARAMETER_SESSION, PARAMETER_STATE_MACHINE, PARAMETERS_INITIALIZED, SOURCE_URL, TRANSITIONS, VALUE_OPTIMISTIC, VALUE_PESSIMISTIC
 
Fields inherited from interface org.apache.lenya.cms.usecase.Usecase
ROLE
 
Constructor Summary
Publish()
           
 
Method Summary
protected  void createAncestorNodes(org.apache.lenya.cms.publication.Document document)
           
protected  void doCheckExecutionConditions()
           
protected  void doCheckPreconditions()
          Checks if the workflow event is supported and the parent of the document exists in the live area.
protected  void doExecute()
           
protected  org.apache.lenya.cms.site.Link getExistingLink(java.lang.String path, org.apache.lenya.cms.publication.Document document)
          Returns a link of a certain node, preferably in the document's language, or null if the node has no links.
protected  org.apache.lenya.cms.repository.Node[] getNodesToLock()
           
protected  boolean hasBrokenLinks()
           
protected  void initParameters()
           
protected  void publish(org.apache.lenya.cms.publication.Document authoringDocument)
           
protected  void sendNotification(org.apache.lenya.cms.publication.Document authoringDocument)
           
 
Methods inherited from class org.apache.lenya.cms.workflow.usecases.CheckWorkflow
configure, getEvent
 
Methods inherited from class org.apache.lenya.cms.usecase.DocumentUsecase
getSourceDocument, getSourceURL, getTargetDocument, getTargetURL, setDefaultTargetURL, setTargetDocument
 
Methods inherited from class org.apache.lenya.cms.usecase.AbstractUsecase
addErrorMessage, addErrorMessage, addErrorMessages, addInfoMessage, addInfoMessage, advance, advanceState, cancel, canCheckOut, checkEvent, checkExecutionConditions, checkoutRestrictedToSession, checkPostconditions, checkPreconditions, clearErrorMessages, clearInfoMessages, contextualize, deleteParameter, doCheckPostconditions, doInitialize, dumpErrorMessages, execute, getBooleanCheckboxParameter, getContext, getDocumentFactory, getErrorMessages, getExitQueryString, getInfoMessages, getName, getParameter, getParameter, getParameterAsBoolean, getParameterAsInteger, getParameterAsString, getParameterAsString, getParameterNames, getParameters, getPart, getSession, getStateMachine, getView, hasErrors, hasInfoMessages, initialize, initializeParametersIfNotDone, isOptimistic, lockInvolvedObjects, lockInvolvedObjects, prepareView, service, setExitParameter, setName, setParameter, setPart, setSession, setSourceURL, setTestSession, setView, startTransaction
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MESSAGE_SUBJECT

protected static final java.lang.String MESSAGE_SUBJECT
See Also:
Constant Field Values

MESSAGE_DOCUMENT_PUBLISHED

protected static final java.lang.String MESSAGE_DOCUMENT_PUBLISHED
See Also:
Constant Field Values

SCHEDULE

protected static final java.lang.String SCHEDULE
See Also:
Constant Field Values

SCHEDULE_TIME

protected static final java.lang.String SCHEDULE_TIME
See Also:
Constant Field Values

SEND_NOTIFICATION

protected static final java.lang.String SEND_NOTIFICATION
See Also:
Constant Field Values

UNPUBLISHED_LINKS

protected static final java.lang.String UNPUBLISHED_LINKS
See Also:
Constant Field Values
Constructor Detail

Publish

public Publish()
Method Detail

initParameters

protected void initParameters()
Overrides:
initParameters in class org.apache.lenya.cms.usecase.AbstractUsecase
See Also:
AbstractUsecase.initParameters()

hasBrokenLinks

protected boolean hasBrokenLinks()

getNodesToLock

protected org.apache.lenya.cms.repository.Node[] getNodesToLock()
                                                         throws org.apache.lenya.cms.usecase.UsecaseException
Overrides:
getNodesToLock in class InvokeWorkflow
Throws:
org.apache.lenya.cms.usecase.UsecaseException
See Also:
AbstractUsecase.getNodesToLock()

doCheckPreconditions

protected void doCheckPreconditions()
                             throws java.lang.Exception
Checks if the workflow event is supported and the parent of the document exists in the live area.

Overrides:
doCheckPreconditions in class CheckWorkflow
Throws:
java.lang.Exception
See Also:
AbstractUsecase.doCheckPreconditions()

getExistingLink

protected org.apache.lenya.cms.site.Link getExistingLink(java.lang.String path,
                                                         org.apache.lenya.cms.publication.Document document)
                                                  throws org.apache.lenya.cms.site.SiteException
Returns a link of a certain node, preferably in the document's language, or null if the node has no links.

Parameters:
path - The path of the node.
document - The document.
Returns:
A link or null.
Throws:
org.apache.lenya.cms.site.SiteException - if an error occurs.

doCheckExecutionConditions

protected void doCheckExecutionConditions()
                                   throws java.lang.Exception
Overrides:
doCheckExecutionConditions in class org.apache.lenya.cms.usecase.AbstractUsecase
Throws:
java.lang.Exception

doExecute

protected void doExecute()
                  throws java.lang.Exception
Overrides:
doExecute in class InvokeWorkflow
Throws:
java.lang.Exception
See Also:
AbstractUsecase.doExecute()

publish

protected void publish(org.apache.lenya.cms.publication.Document authoringDocument)
                throws org.apache.lenya.cms.publication.DocumentException,
                       org.apache.lenya.cms.site.SiteException,
                       org.apache.lenya.cms.publication.PublicationException
Throws:
org.apache.lenya.cms.publication.DocumentException
org.apache.lenya.cms.site.SiteException
org.apache.lenya.cms.publication.PublicationException

sendNotification

protected void sendNotification(org.apache.lenya.cms.publication.Document authoringDocument)
                         throws org.apache.lenya.notification.NotificationException,
                                org.apache.lenya.cms.publication.DocumentException,
                                org.apache.lenya.ac.AccessControlException
Throws:
org.apache.lenya.notification.NotificationException
org.apache.lenya.cms.publication.DocumentException
org.apache.lenya.ac.AccessControlException

createAncestorNodes

protected void createAncestorNodes(org.apache.lenya.cms.publication.Document document)
                            throws org.apache.lenya.cms.publication.PublicationException,
                                   org.apache.lenya.cms.publication.DocumentException,
                                   org.apache.lenya.cms.site.SiteException
Throws:
org.apache.lenya.cms.publication.PublicationException
org.apache.lenya.cms.publication.DocumentException
org.apache.lenya.cms.site.SiteException


Copyright $ Apache Software Foundation. All Rights Reserved.