/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed 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
*******************************************************************************/
/**
*
*/
package org.ebayopensource.turmeric.eclipse.registry.intf;
import java.util.List;
import org.ebayopensource.turmeric.eclipse.registry.exception.ProviderException;
import org.ebayopensource.turmeric.eclipse.registry.models.NameValuePair;
import org.ebayopensource.turmeric.eclipse.registry.models.SimpleAssetModel;
import org.ebayopensource.turmeric.eclipse.registry.models.SubmitAssetModel;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
/**
* The Interface IRegistryProvider.
*
* @author yayu
* @since 1.0.0
*/
public interface IRegistryProvider {
/**
* check whether the given asset already exist in the repository.
*
* @param assetModel the assert model for checking existence
* @param monitor the monitor
* @return the i status
* @throws ProviderException the provider exception
*/
public IStatus assetNameExists(SimpleAssetModel assetModel,
IProgressMonitor monitor) throws ProviderException;
/**
* Retrieving asset domain namespace values from repository.
*
* @return the list of domain names from Asset Repository, or null if none
* @throws ProviderException the provider exception
*/
public List<NameValuePair> getDomainNamespaceValues() throws ProviderException;
/**
* Submit a new asset to the repository for governance.
*
* @param assetModel the assert model for submission
* @return the i status
* @throws ProviderException the provider exception
*/
IStatus submitNewAssetForGovernance(SubmitAssetModel assetModel) throws ProviderException;
/**
* Submit new version for governance.
*
* @param assetModel the assert model for submission
* @return the i status
* @throws ProviderException the provider exception
*/
IStatus submitNewVersionForGovernance(SubmitAssetModel assetModel) throws ProviderException;
/**
* Update existing version for governance.
*
* @param assetModel the assert model for submission
* @return the i status
* @throws ProviderException the provider exception
*/
IStatus updateExistingVersionForGovernance(SubmitAssetModel assetModel) throws ProviderException;
/**
* Submit new maintenance version.
*
* @param assetModel the assert model for submission
* @return the i status
* @throws ProviderException the provider exception
*/
IStatus submitNewMaintenanceVersion(SubmitAssetModel assetModel) throws ProviderException;
}