/*
* Copyright (c) 2005-2009, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.wso2.carbon.registry.admin.api.governance;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import java.lang.String;
/**
* This provides functionality to manage generic artifacts
* on the registry.
* <br />
* <b>Statistics:</b>
* <ul>
* <li>addArtifact</li>
* <li>listArtifacts</li>
* <li>editArtifact</li>
* </ul>
*
*@param <ArtifactsBean> a bean containing a list of artifacts on the repository.
*/
public interface IManageGenericArtifactService<ArtifactsBean> {
/**
* Method to add an artifact to the repository.
*
* @param key the identifier of the artifact.
* @param payload the information payload of the artifact.
* @param lifecycleAttribute the name of the lifecycle attribute.
* @return the path of the artifact.
* @throws Exception if the operation failed.
*/
String addArtifact(String key, String payload, String lifecycleAttribute) throws RegistryException;
/**
* Method to list the artifacts to a defined criteria.
*
* @param key the identifier of the artifact.
* @param criteria the listing criteria.
* @return an ArtifactsBean object with artifacts matching to the criteria.
* @throws Exception if the operation failed.
*/
ArtifactsBean listArtifacts(String key, String criteria);
/**
* Method to list the artifacts by name.
*
* @param key the identifier of the artifact.
* @param name the artifact name.
* @return an ArtifactsBean object with artifacts matching to the criteria.
* @throws Exception if the operation failed.
*/
ArtifactsBean listArtifactsByName(String key, final String name);
/**
* Method to edit the artifacts.
*
* @param path the path of the artifact.
* @param key the identifier of the artifact.
* @param payload the information payload of the artifact.
* @param lifecycleAttribute the name of the lifecycle attribute.
* @return the location on the repository where lifecycle configurations are stored.
* @throws Exception if the operation failed.
*/
String editArtifact(String path, String key, String payload, String lifecycleAttribute) throws RegistryException;
/**
* Method to obtain the content of an Artifact..
*
* @param path the path of the artifact.
* @return the location on the repository where lifecycle configurations are stored.
* @throws Exception if the operation failed.
*/
String getArtifactContent(String path) throws RegistryException;
/**
* Method to obtain the UI configuration of an artifact..
*
* @param key the identifier of the artifact.
* @return the location on the repository where lifecycle configurations are stored.
* @throws Exception if the operation failed.
*/
String getArtifactUIConfiguration(String key) throws RegistryException;
/**
* Method to set the UI configuration for an artifact..
*
* @param key the identifier of the artifact.
* @param content the new content of the artifact.
* @return true if the configuration is properly set..
* @throws Exception if the operation failed.
*/
boolean setArtifactUIConfiguration(String key, String content) throws RegistryException;
/**
* Get all the states from the LC
*
* @param LCName LC name
* @return array of LC states
*/
String[] getAllLifeCycleState(String LCName);
}