using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RoboSharp.Interfaces { /// /// Interface for a class factory object to produce objects
/// Usable by consumers to specify a factory object their library can rely on to create classes derived from the object.
///
public interface IRoboCommandFactory { /// /// Create a new object using the parameterless constructor /// /// /// new object /// /// IRoboCommand GetRoboCommand(); /// /// Create a new with the specified source and destination /// /// /// /// IRoboCommand GetRoboCommand(string source, string destination); /// IRoboCommand GetRoboCommand(string source, string destination, CopyOptions.CopyActionFlags copyActionFlags); /// IRoboCommand GetRoboCommand(string source, string destination, CopyOptions.CopyActionFlags copyActionFlags, SelectionOptions.SelectionFlags selectionFlags); /* * The constructors within the region below have been intentionally left out of the interface. * This is because these constructors are for more advanced usage of the object, and the base interface should only enforce the * what will most likely be the two most commonly used constructors. * * Should consumers require the interface to be expanded, they can produce their own interface that is derived from this one. */ #region ///// ///// Create a new with the specified name ///// ///// //IRoboCommand GetRoboCommand(string name, bool stopIfDisposing = true); ///// ///// Create a new with the specified source and destination ///// ///// //IRoboCommand GetRoboCommand(string source, string destination, bool stopIfDisposing = true); ///// ///// Create a new with the specified source, destination, and name ///// ///// //IRoboCommand GetRoboCommand(string source, string destination, string name, bool stopIfDisposing = true); ///// //IRoboCommand GetRoboCommand(string name, string source = null, string destination = null, bool stopIfDisposing = true, RoboSharpConfiguration configuration = null, CopyOptions copyOptions = null, SelectionOptions selectionOptions = null, RetryOptions retryOptions = null, LoggingOptions loggingOptions = null, JobOptions jobOptions = null); ///// //IRoboCommand GetRoboCommand(RoboCommand command, string NewSource = null, string NewDestination = null, bool LinkConfiguration = true, bool LinkRetryOptions = true, bool LinkSelectionOptions = false, bool LinkLoggingOptions = false, bool LinkJobOptions = false); #endregion } }