/*
 * $Id: RepositoryManager.java,v 1.2 2004/09/20 10:26:14 koppy Exp $
 *
 * Copyright (c) Siemens AG 2008 
 *           (c) Universität Paderborn 2008 
 * Licensed under EUPL 1.1. 
 * 
 * Created on 13.07.2004
 *
 * $Log: RepositoryManager.java,v $
 * Revision 1.2  2004/09/20 10:26:14  koppy
 * +javadoc Dokumentation
 *
 * Revision 1.1  2004/08/30 14:49:59  koppy
 * Initiale Version der Workflow-Komponente
 *
 */
package vkc.workflow.service.manager;

import java.io.File;
import java.util.List;

import vkc.workflow.WorkflowException;
import vkc.workflow.service.WfMConnection;


/**
 * This interface defines methods
 * for repository management.
 * 
 * @author Andreas Koop
 */
public interface RepositoryManager {

    /**
     * Returns a list of type PackageInfo.
     * 
     * @param sConn workflow connection
     * @return all availabe workflow package infos.
     * @throws BaseException
     */
    public List getPackageInfos(WfMConnection sConn) throws WorkflowException;
    
    /**
     * Deletes a workflow package
     * 
     * @param sConn workflow connection
     * @param path the name of the workflow package
     * @throws WorkflowException
     */
    public void deletePackage(WfMConnection sConn, String path)
    	throws WorkflowException;
    
    /**
     * Uploads a new workflow package
     * under the given name/path.
     * 
     * @param sConn workflow connection
     * @param utf8bytes XPDL-File as byte array
     * @param path the path/name under which the new XPDL file should be stored.
     * @throws WorkflowException
     */
    public void uploadPackage( WfMConnection sConn, byte[] utf8bytes, String path)
    	throws WorkflowException;
    
    /**
     * Uploads a new workflow package
     * under the given namepath.
     * 
     * @param sConn workflow connection
     * @param file XPDL-File 
     * @param path the path/name under which the new XPDL file should be stored.
     * @throws WorkflowException
     */
    public void uploadPackage( WfMConnection sConn, File file, String path)
    	throws WorkflowException;
}
