Nexus.Client.ModManagement.Scripting.XmlScript.CPL.CPLConverter.GenerateCpl C# (CSharp) Méthode

GenerateCpl() protected méthode

protected GenerateCpl ( ICondition p_cndCondition ) : string
p_cndCondition ICondition
Résultat string
		protected virtual string GenerateCpl(ICondition p_cndCondition)
		{
			StringBuilder stbCPL = new StringBuilder();
			if (p_cndCondition is CompositeCondition)
			{
				CompositeCondition cpcCondition = (CompositeCondition)p_cndCondition;
				string strOperator = null;
				string strPrefix = null;
				string strSuffix = null;
				switch (cpcCondition.Operator)
				{
					case ConditionOperator.And:
						strOperator = "AND";
						break;
					case ConditionOperator.Or:
						strOperator = "OR";
						strPrefix = "(";
						strSuffix = ")";
						break;
				}
				stbCPL.Append(strPrefix);
				for (Int32 i = 0; i < cpcCondition.Conditions.Count; i++)
				{
					stbCPL.Append(GenerateCpl(cpcCondition.Conditions[i]));
					if (i < cpcCondition.Conditions.Count - 1)
						stbCPL.AppendFormat(" {0} ", strOperator);
				}
				stbCPL.Append(strSuffix);
			}
			else if (p_cndCondition is FlagCondition)
			{
				FlagCondition flcCondition = (FlagCondition)p_cndCondition;
				stbCPL.AppendFormat("${0}$ = \"{1}\"", flcCondition.FlagName, flcCondition.Value);
			}
			else if (p_cndCondition is PluginCondition)
			{
				PluginCondition pncCondition = (PluginCondition)p_cndCondition;
				stbCPL.AppendFormat("\"{0}\" is {1}", pncCondition.PluginPath, pncCondition.State.ToString());
			}
			else if (p_cndCondition is GameVersionCondition)
			{
				GameVersionCondition gvcCondition = (GameVersionCondition)p_cndCondition;
				stbCPL.AppendFormat("gameVersion >= {0}", gvcCondition.MinimumVersion.ToString());
			}
			else if (p_cndCondition is ModManagerCondition)
			{
				ModManagerCondition mmcCondition = (ModManagerCondition)p_cndCondition;
				stbCPL.AppendFormat("managerVersion >= {0}", mmcCondition.MinimumVersion.ToString());
			}
			return stbCPL.ToString();
		}
	}