Files
FSI.BT.IR.Tools/RoboSharp/Interfaces/IRoboCommandFactory.cs
Maier Stephan SI 1c68b8f401 Sicherung
2023-04-17 07:07:49 +02:00

77 lines
4.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RoboSharp.Interfaces
{
/// <summary>
/// Interface for a class factory object to produce <see cref="IRoboCommand"/> objects <br/>
/// Usable by consumers to specify a factory object their library can rely on to create classes derived from the <see cref="RoboCommand"/> object. <br/>
/// </summary>
public interface IRoboCommandFactory
{
/// <summary>
/// Create a new <see cref="IRoboCommand"/> object using the parameterless constructor
/// </summary>
/// <returns>
/// new <see cref="IRoboCommand"/> object
/// </returns>
/// <inheritdoc cref="RoboCommand.RoboCommand()"/>
IRoboCommand GetRoboCommand();
/// <summary>
/// Create a new <see cref="IRoboCommand"/> with the specified source and destination
/// </summary>
/// <param name="source"><inheritdoc cref="CopyOptions.Source" path="*"/></param>
/// <param name="destination"><inheritdoc cref="CopyOptions.Destination" path="*"/></param>
/// <inheritdoc cref="RoboCommand.RoboCommand(string, string, bool)"/>
IRoboCommand GetRoboCommand(string source, string destination);
/// <inheritdoc cref="RoboCommandFactory.GetRoboCommand(string, string, CopyOptions.CopyActionFlags, SelectionOptions.SelectionFlags)"/>
IRoboCommand GetRoboCommand(string source, string destination, CopyOptions.CopyActionFlags copyActionFlags);
/// <inheritdoc cref="RoboCommandFactory.GetRoboCommand(string, string, CopyOptions.CopyActionFlags, SelectionOptions.SelectionFlags)"/>
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
///// <summary>
///// Create a new <see cref="IRoboCommand"/> with the specified name
///// </summary>
///// <inheritdoc cref="RoboCommand.RoboCommand(string, bool)"/>
//IRoboCommand GetRoboCommand(string name, bool stopIfDisposing = true);
///// <summary>
///// Create a new <see cref="IRoboCommand"/> with the specified source and destination
///// </summary>
///// <inheritdoc cref="RoboCommand.RoboCommand(string, string, bool)"/>
//IRoboCommand GetRoboCommand(string source, string destination, bool stopIfDisposing = true);
///// <summary>
///// Create a new <see cref="IRoboCommand"/> with the specified source, destination, and name
///// </summary>
///// <inheritdoc cref="RoboCommand.RoboCommand(string, string, string, bool)"/>
//IRoboCommand GetRoboCommand(string source, string destination, string name, bool stopIfDisposing = true);
///// <inheritdoc cref="RoboCommand.RoboCommand(string, string, string, bool, RoboSharpConfiguration, CopyOptions, SelectionOptions, RetryOptions, LoggingOptions, JobOptions)"/>
//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);
///// <inheritdoc cref="RoboCommand.RoboCommand(RoboCommand, string, string, bool, bool, bool, bool, bool)"/>
//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
}
}