using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Installables.All
{
///
/// All Components that install themselves must support this interface
///
public interface IInstallComponent
{
///
/// Get the Corresponding Component for this IInstallComponent
///
/// the component for this IInstallCompoent
ComponentConfig.Component GetComponent();
///
/// Used to determine if the component is needed to install
///
/// true to continue to Install, false otherwise
bool BEFORE_INSTALLING_COMPONENT();
///
/// Used to install a component
///
/// true, if install was successful, false otherwise
bool INSTALL_COMPONENT();
///
/// Used to do any validation after install occured
///
/// true, if validation was successful, false otherwise
bool AFTER_INSTALLING_COMPONENT();
///
/// Used to determine if the component supports uninstalling
///
/// true, if component supports uninstalling, false otherwise
bool SUPPORTS_UNINSTALL();
///
/// Used to determine if the component is needed to uninstall
///
/// true to continue to uninstall, false otherwise
bool BEFORE_UNINSTALLING_COMPONENT();
///
/// Used to uninstall a component
///
/// true, if uninstall was successful, false otherwise
bool UNINSTALL_COMPONENT();
///
/// Used to do any validation after uninstall occured
///
/// true, if validation was successful, false otherwise
bool AFTER_UNINSTALLING_COMPONENT();
}
}