using System;
using System.Collections.Generic;
using QC.CTDS.DM.DataStructures.FormatDescriptorStructure;
using QC.CTDS.DM.DataStructures.InputDataStructure;
using QC.CTDS.DM.DataStructures.LimitDescriptorDataStructure;

namespace QC.CTDS.DM.DataStructures.PluginDataStructure;

public class InputPlugin : BasePlugin
{
	private ReportSettings reportSettingsInfo;

	public ReportSettings ReportSettingsInfo
	{
		get
		{
			return reportSettingsInfo;
		}
		set
		{
			reportSettingsInfo = value;
		}
	}

	public virtual InputData GetInputData(object data, FormatDescriptorCollection formatDescColl, LimitDescriptorCollection limitDescColl = null, bool isGetDescriptorDataOnly = true)
	{
		return null;
	}

	public virtual bool Intialize(QueryFilter[] pluginInitiationDetails, ref ReportSettings reportSettingsInfo, ref FormatDescriptor formatDescriptor, ref LimitDefinition limitDescriptor, ref List<Tuple<string, List<string>>> dataGrpColl)
	{
		return false;
	}

	public virtual bool CanParseData(object data)
	{
		return false;
	}

	public virtual List<string> GetDllNames(string file)
	{
		return new List<string>();
	}

	public virtual HashSet<string> GetTestNames(string file)
	{
		return new HashSet<string>();
	}
}
