/* * Copyright (C) 2005 Alfresco, Inc. * * Licensed under the Mozilla Public License version 1.1 * with a permitted attribution clause. You may obtain a * copy of the License at * * http://www.alfresco.org/legal/license.txt * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific * language governing permissions and limitations under the * License. */ package org.alfresco.repo.node.archive; import java.util.List; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.namespace.QName; /** * A service interface providing methods that map onto the low-level * node restore functionality. * * @author Derek Hulley */ public interface NodeArchiveService { /** * Get the parent node that holds all nodes archived from the given store. * * @param storeRef the original store of the archived nodes. This is the * store where the currently archived nodes could originally be found. * @return Returns the parent of the archived nodes, or null if archiving * is not configured for the store */ public NodeRef getStoreArchiveNode(StoreRef originalStoreRef); /** * Attempt to restore the given archived node into its original location. *
* TRANSACTIONS: This method will execute in a new transaction. * * @param archivedNodeRef the node's reference in the archive * @return Returns the results of the restore operation */ public RestoreNodeReport restoreArchivedNode(NodeRef archivedNodeRef); /** * Attempt to restore the given archived node into a new location. *
* TRANSACTIONS: This method will execute in a new transaction. * * @param archivedNodeRef the node's reference in the archive. This * must be valid. * @param destinationNodeRef the parent of the restored node, or * null to use the original parent node reference * @param assocTypeQName the type of the primary association to link the * restored node to the destination parent, or null to use * the orginal association type * @param assocQName the name of the primary association to be created, * or null to use the original association name * @return Returns the results of the restore operation */ public RestoreNodeReport restoreArchivedNode( NodeRef archivedNodeRef, NodeRef destinationNodeRef, QName assocTypeQName, QName assocQName); /** * Attempt to restore a list of archived nodes into their original locations, * using the original association types and names. *
* TRANSACTIONS: This method will execute in a new transaction.
*
* @param archivedNodeRefs the nodes' references in the archive. These
* must be valid.
* @return Returns the results of the each attempted restore operation
*/
public List
* TRANSACTIONS: This method will execute in a new transaction.
*
* @param archivedNodeRefs the nodes' references in the archive. These
* must be valid.
* @param destinationNodeRef the parent of the restored nodes, or
* null to use the original parent node references
* @param assocTypeQName the type of the primary associations to link the
* restored node to the destination parent, or null to use
* the orginal association types
* @param assocQName the name of the primary associations to be created,
* or null to use the original association names
* @return Returns the results of the each attempted restore operation
*/
public List
* TRANSACTIONS: This method will execute in a new transaction.
*
* @param originalStoreRef the store that the items originally came from
* @return Returns the results of the each attempted restore operation
*/
public List
* TRANSACTIONS: This method will execute in a new transaction.
*
* @param originalStoreRef the store that the items originally came from
* @param destinationNodeRef the parent of the restored nodes, or
* null to use the original parent node references
* @param assocTypeQName the type of the primary associations to link the
* restored node to the destination parent, or null to use
* the orginal association types
* @param assocQName the name of the primary associations to be created,
* or null to use the original association names
* @return Returns the results of the each attempted restore operation
*/
public List