001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: *
017: */
018: package org.apache.lenya.cms.cocoon.flow;
019:
020: import java.util.Map;
021:
022: import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
023: import org.apache.cocoon.environment.Request;
024: import org.apache.lenya.ac.AccessControlException;
025: import org.apache.lenya.cms.publication.PageEnvelope;
026: import org.apache.lenya.cms.publication.PageEnvelopeException;
027: import org.apache.lenya.cms.publication.util.DocumentHelper;
028: import org.apache.lenya.cms.rc.FileReservedCheckInException;
029: import org.apache.lenya.workflow.WorkflowException;
030:
031: /**
032: * Flowscript utility class.
033: * @version $Id: FlowHelper.java 564507 2007-08-10 08:33:31Z andreas $
034: */
035: public interface FlowHelper {
036:
037: /**
038: * The Avalon Role.
039: */
040: String ROLE = FlowHelper.class.getName();
041:
042: /**
043: * Returns the current page envelope.
044: * @param cocoon The FOM_Cocoon object.
045: * @return A page envelope.
046: * @throws PageEnvelopeException when something went wrong.
047: */
048: PageEnvelope getPageEnvelope(FOM_Cocoon cocoon)
049: throws PageEnvelopeException;
050:
051: /**
052: * Returns the request URI of the current request.
053: * @param cocoon The FOM_Cocoon object.
054: * @return A string.
055: */
056: String getRequestURI(FOM_Cocoon cocoon);
057:
058: /**
059: * Returns the request object of the current request.
060: * @param cocoon The FOM_Cocoon object.
061: * @return A request object.
062: */
063: Request getRequest(FOM_Cocoon cocoon);
064:
065: /**
066: * Returns the Cocoon Object Model
067: * @param cocoon The Flow Object Model of Cocoon
068: * @return The object model
069: */
070: Map getObjectModel(FOM_Cocoon cocoon);
071:
072: /**
073: * Returns a DocumentHelper instance.
074: * @param cocoon The Flow Object Model of Cocoon
075: * @return The document helper
076: * @see DocumentHelper
077: */
078: DocumentHelper getDocumentHelper(FOM_Cocoon cocoon);
079:
080: /**
081: * Resolves the request parameter value for a specific name. The parameter
082: * names are encoded as <code>{name}:{value}.{axis}</code>. This is a
083: * workaround for the <input type="image"/> bug in Internet Explorer.
084: * @param cocoon The FOM_Cocoon object.
085: * @param parameterName The request parameter name.
086: * @return A string.
087: */
088: String getImageParameterValue(FOM_Cocoon cocoon,
089: String parameterName);
090:
091: /**
092: * Trigger a workflow event for the document associated with the current
093: * PageEnvelope.
094: * @param cocoon The Cocoon Flow Object Model
095: * @param event The name of the workflow event to trigger.
096: * @throws WorkflowException If an workflow error occurs
097: * @throws PageEnvelopeException Page envelope can not operate properly.
098: * @throws AccessControlException If an access control violation occurs.
099: */
100: void triggerWorkflow(FOM_Cocoon cocoon, String event)
101: throws WorkflowException, PageEnvelopeException,
102: AccessControlException;
103:
104: /**
105: * Checkis in the current document from the PageEnvelope context.
106: * @param cocoon The Cocoon Flow Object Model
107: * @param backup Wether a new revision should be created.
108: * @throws FileReservedCheckInException
109: * @throws Exception
110: */
111: void reservedCheckIn(FOM_Cocoon cocoon, boolean backup)
112: throws FileReservedCheckInException, Exception;
113: }
|