mirror of
				https://github.com/Alfresco/alfresco-community-repo.git
				synced 2025-10-29 15:21:53 +00:00 
			
		
		
		
	28236: ALF-8810: Removed trailing space from discussion.discussion_for Italian translation
   28241: Incremented version revision for 3.4.4
   28284: ALF-835 - WCM/AVM: copy (empty) folder into itself
   28285: ALF-6863: More than one cifs device breaks the web UI (explorer)
   28290: ALF-8840: user-*.atomentry.ftl
   28291: ALF-6863: Continuation of fix by Arseny
   28336: ALF-8768: Fixed typo in comment on wcm-bootstrap-context.xml
   28363: Merged DEV to V3.4-BUG-FIX
      28262: ALF-8847: WCM: OrphanReaper contention throws error after 39 retries.
             Checkin Comment:
                Use JobLockService to make sure that only one OrphanReaper job is working.
                Generate list of nodes that must be processed in OrphanReaper.doBatch() transaction. 
   28386: ALF-9100: Merged PATCHES/V3.4.1 to V3.4-BUG-FIX
      28249: ALF-8946: Avoid one full table scan per batch in full reindex
         - Now each batch scans a single time sample, dynamically adjusted based on the number of transactions
		   in the previous sample, always aiming for 1000 transactions per sample.
   28394: Fixed ALF-9090: NPE during inter-cluster subsystem messaging
    - Bean ID is a List<String> and might not be recognized on receiving machine
    - Log warning when bean ID is not available (unsymmetrical configuration, perhaps?)
   28396: Merged DEV to V3.4-BUG-FIX
      28384: ALF-6150: Initial state lost when non-versionable document is saved for the first time
             Creation of new version of document before writing its content was added to
             - AbstractAlfrescoMethodHandler->putDocument (this method is used by Office 2003, 2007)
             - VtiIfHeaderAction->doPut (this method is used by Office 2007 and 2010 on Windows 7)
               Creation of new version was added twice to AbstractAlfrescoMethodHandler to avoid affecting
               initial version when transaction is committed. 
   28432: Merged DEV to V3.4-BUG-FIX
      28431: ALF-8530: Pressing the info icon creates an unrecorded file in the ContentStore
             Use ContentService.getTempWriter() in BaseContentNode$TemplateContentData.getContentAsText() method. 
   28435: Merged DEV/TEMPORARY to V3.4-BUG-FIX
      28428: ALF-9015: cm:modifier not updated when document is updated via CIFS
         In ContentDiskDriver.closeFile() added ContentModel.PROP_MODIFIER property update.
   28436: ALF-8550: Number of http requests (currentThreadsBusy) increases when session times out during creation of webform
   - Corrected use of read and write locks
   28465: Fix for ALF-8023 Share preview doesn't work if...
     fixed as outlined by Dmitry.
   28478: Merged BRANCHES/DEV/ALAN/AUDIT to BRANCHES/DEV/V3.4-BUG-FIX:
      28062-28477 (28062,28063,28080,28081,28302,28303,28334,28340,28464,28469,28477) ALF-8438 Need higher level audit of user actions
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28481 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
		
	
		
			
				
	
	
		
			272 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			272 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2005-2011 Alfresco Software Limited.
 | |
|  *
 | |
|  * This file is part of Alfresco
 | |
|  *
 | |
|  * Alfresco is free software: you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU Lesser General Public License as published by
 | |
|  * the Free Software Foundation, either version 3 of the License, or
 | |
|  * (at your option) any later version.
 | |
|  *
 | |
|  * Alfresco is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU Lesser General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU Lesser General Public License
 | |
|  * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
 | |
|  */
 | |
| package org.alfresco.service.cmr.action;
 | |
| 
 | |
| import java.io.Serializable;
 | |
| import java.util.List;
 | |
| import java.util.Map;
 | |
| 
 | |
| import org.alfresco.service.Auditable;
 | |
| import org.alfresco.service.PublicService;
 | |
| import org.alfresco.service.cmr.repository.NodeRef;
 | |
| 
 | |
| /**
 | |
|  * Action service interface
 | |
|  * 
 | |
|  * @author Roy Wetherall
 | |
|  */
 | |
| public interface ActionService
 | |
| {
 | |
|     /**
 | |
|      * Get a named action definition
 | |
|      * 
 | |
|      * @param name    the name of the action definition
 | |
|      * @return        the action definition
 | |
|      */
 | |
|     @Auditable(parameters = {"name"})
 | |
|     ActionDefinition getActionDefinition(String name);
 | |
|     
 | |
|     /**
 | |
|      * Get all the action definitions
 | |
|      * 
 | |
|      * @return    the list action definitions
 | |
|      */
 | |
|     @Auditable()
 | |
|     List<ActionDefinition> getActionDefinitions();
 | |
|     
 | |
|     /**
 | |
|      * Get all the action definitions that are applicable for the given node, based on
 | |
|      * its type and aspects.
 | |
|      * 
 | |
|      * @param nodeRef   the node reference
 | |
|      * @return          a list of applicable action definitions
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef"})
 | |
|     List<ActionDefinition> getActionDefinitions(NodeRef nodeRef);
 | |
|     
 | |
|     /**
 | |
|      * Get a named action condition definition
 | |
|      * 
 | |
|      * @param name    the name of the action condition definition
 | |
|      * @return        the action condition definition
 | |
|      */
 | |
|     @Auditable(parameters = {"name"})
 | |
|     ActionConditionDefinition getActionConditionDefinition(String name);
 | |
|     
 | |
|     /**
 | |
|      * Get all the action condition definitions
 | |
|      * 
 | |
|      * @return    the list of action condition definitions
 | |
|      */
 | |
|     @Auditable(parameters = {})
 | |
|     List<ActionConditionDefinition> getActionConditionDefinitions();
 | |
|     
 | |
|     /**
 | |
|      * Get a named parameter constraint
 | |
|      * 
 | |
|      * @param name  the name of the parameter constraint
 | |
|      * @return      this parameter condition
 | |
|      */
 | |
|     @Auditable(parameters = {"name"})
 | |
|     ParameterConstraint getParameterConstraint(String name);
 | |
|     
 | |
|     /**
 | |
|      * Get all the parameter constraints
 | |
|      * 
 | |
|      * @return  the list of all parameter constraints
 | |
|      */
 | |
|     @Auditable(parameters = {})
 | |
|     List<ParameterConstraint> getParameterConstraints();
 | |
|     
 | |
|     /**
 | |
|      * Create a new action
 | |
|      * 
 | |
|      * @param name    the action definition name
 | |
|      * @return        the action
 | |
|      */
 | |
|     @Auditable(parameters = {"name"})
 | |
|     Action createAction(String name);
 | |
|     
 | |
|     /**
 | |
|      * Create a new action specifying the initial set of parameter values
 | |
|      * 
 | |
|      * @param name        the action definition name
 | |
|      * @param params    the parameter values
 | |
|      * @return            the action
 | |
|      */
 | |
|     @Auditable(parameters = {"name", "params"})
 | |
|     Action createAction(String name, Map<String, Serializable> params);
 | |
|     
 | |
|     /**
 | |
|      * Create a composite action 
 | |
|      * 
 | |
|      * @return    the composite action
 | |
|      */
 | |
|     @Auditable()
 | |
|     CompositeAction createCompositeAction();
 | |
|     
 | |
|     /**
 | |
|      * Create an action condition
 | |
|      * 
 | |
|      * @param name    the action condition definition name
 | |
|      * @return        the action condition
 | |
|      */
 | |
|     @Auditable(parameters = {"name"})
 | |
|     ActionCondition createActionCondition(String name);
 | |
|     
 | |
|     /**
 | |
|      * Create an action condition specifying the initial set of parameter values
 | |
|      * 
 | |
|      * @param name        the action condition definition name
 | |
|      * @param params    the parameter values
 | |
|      * @return            the action condition
 | |
|      */
 | |
|     @Auditable(parameters = {"name", "params"})
 | |
|     ActionCondition createActionCondition(String name, Map<String, Serializable> params);
 | |
|     
 | |
|    /**
 | |
|     * Create a composite actionCondition
 | |
|     * @return  the composite actionCondition
 | |
|     */
 | |
|     @Auditable()
 | |
|    CompositeActionCondition createCompositeActionCondition();
 | |
|     
 | |
|     /**
 | |
|      * The actions conditions are always checked.
 | |
|      * 
 | |
|      * @see ActionService#executeAction(Action, NodeRef, boolean)
 | |
|      *  
 | |
|      * @param action                the action
 | |
|      * @param actionedUponNodeRef    the actioned upon node reference
 | |
|      */
 | |
|     @Auditable(parameters = {"action", "actionedUponNodeRef" })
 | |
|     void executeAction(Action action, NodeRef actionedUponNodeRef);
 | |
|     
 | |
|     /**
 | |
|      * The action is executed based on the asynchronous attribute of the action.
 | |
|      * 
 | |
|      * @see ActionService#executeAction(Action, NodeRef, boolean, boolean)
 | |
|      * 
 | |
|      * @param action                the action
 | |
|      * @param actionedUponNodeRef    the actioned upon node reference
 | |
|      * @param checkConditions        indicates whether the conditions should be checked
 | |
|      */
 | |
|     @Auditable(parameters = {"action", "actionedUponNodeRef", "checkConditions" })
 | |
|     void executeAction(Action action, NodeRef actionedUponNodeRef, boolean checkConditions);
 | |
|     
 | |
|     /**
 | |
|      * Executes the specified action upon the node reference provided.
 | |
|      * <p>
 | |
|      * If specified that the conditions should be checked then any conditions
 | |
|      * set on the action are evaluated.
 | |
|      * <p>
 | |
|      * If the conditions fail then the action is not executed.
 | |
|      * <p>
 | |
|      * If an action has no conditions then the action will always be executed.
 | |
|      * <p>
 | |
|      * If the conditions are not checked then the action will always be executed.
 | |
|      * 
 | |
|      * @param action                the action
 | |
|      * @param actionedUponNodeRef    the actioned upon node reference
 | |
|      * @param checkConditions        indicates whether the conditions should be checked before
 | |
|      *                                 executing the action
 | |
|      * @param executeAsynchronously    indicates whether the action should be executed asychronously or not, this value overrides
 | |
|      *                                 the value set on the action its self
 | |
|      */
 | |
|     @Auditable(parameters = {"action", "actionedUponNodeRef", "checkConditions", "executeAsynchronously" })
 | |
|     void executeAction(Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsynchronously);
 | |
|     
 | |
|     /**
 | |
|      * Evaluted the conditions set on an action.
 | |
|      * <p>
 | |
|      * Returns true if the action has no conditions.
 | |
|      * <p>
 | |
|      * If the action has more than one condition their results are combined using the 'AND' 
 | |
|      * logical operator.
 | |
|      * 
 | |
|      * @param action                the action
 | |
|      * @param actionedUponNodeRef    the actioned upon node reference
 | |
|      * @return                        true if the condition succeeds, false otherwise
 | |
|      */
 | |
|     @Auditable(parameters = {"action", "actionedUponNodeRef" })
 | |
|     boolean evaluateAction(Action action, NodeRef actionedUponNodeRef);
 | |
|     
 | |
|     /**
 | |
|      * Evaluate an action condition.
 | |
|      * 
 | |
|      * @param condition                the action condition
 | |
|      * @param actionedUponNodeRef    the actioned upon node reference
 | |
|      * @return                        true if the condition succeeds, false otherwise
 | |
|      */
 | |
|     @Auditable(parameters = {"condition", "actionedUponNodeRef" })
 | |
|     boolean evaluateActionCondition(ActionCondition condition, NodeRef actionedUponNodeRef);
 | |
|     
 | |
|     /**
 | |
|      * Save an action against a node reference.
 | |
|      * <p>
 | |
|      * The node will be made configurable if it is not already.
 | |
|      * <p>
 | |
|      * If the action already exists then its details will be updated.
 | |
|      * 
 | |
|      * @param nodeRef    the node reference
 | |
|      * @param action    the action
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef", "action" })
 | |
|     void saveAction(NodeRef nodeRef, Action action);
 | |
|     
 | |
|     /**
 | |
|      * Gets all the actions currently saved on the given node reference.
 | |
|      * 
 | |
|      * @param nodeRef    the node reference
 | |
|      * @return            the list of actions
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef"})
 | |
|     List<Action> getActions(NodeRef nodeRef);
 | |
|     
 | |
|     /**
 | |
|      * Gets an action stored against a given node reference.
 | |
|      * <p>
 | |
|      * Returns null if the action can not be found.
 | |
|      * 
 | |
|      * @param nodeRef    the node reference
 | |
|      * @param actionId    the action id
 | |
|      * @return            the action
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef", "actionId"})
 | |
|     Action getAction(NodeRef nodeRef, String actionId);
 | |
|     
 | |
|     /**
 | |
|      * Removes an action associated with a node reference.
 | |
|      * 
 | |
|      * @param nodeRef        the node reference
 | |
|      * @param action        the action
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef", "action" })
 | |
|     void removeAction(NodeRef nodeRef, Action action);
 | |
|     
 | |
|     /**
 | |
|      * Removes all actions associated with a node reference
 | |
|      * 
 | |
|      * @param nodeRef    the node reference
 | |
|      */
 | |
|     @Auditable(parameters = {"nodeRef"})
 | |
|     void removeAllActions(NodeRef nodeRef);
 | |
|     
 | |
| }
 |