/// <summary> /// Creates an unparented ProjectOutputElement, wrapping an unparented XmlElement. /// Validates the parameters. /// Exactly one of item name and property name must have a value. /// Caller should then ensure the element is added to a parent /// </summary> internal static ProjectOutputElement CreateDisconnected(string taskParameter, string itemType, string propertyName, ProjectRootElement containingProject) { ErrorUtilities.VerifyThrowArgument ( (String.IsNullOrEmpty(itemType) ^ String.IsNullOrEmpty(propertyName)), "OM_EitherAttributeButNotBoth", XMakeElements.output, XMakeAttributes.propertyName, XMakeAttributes.itemName ); XmlElementWithLocation element = containingProject.CreateElement(XMakeElements.output); var output = new ProjectOutputElement(element, containingProject) { TaskParameter = taskParameter }; if (!String.IsNullOrEmpty(itemType)) { output.ItemType = itemType; } else { output.PropertyName = propertyName; } return output; }
/// <summary> /// Creates an unparented ProjectTargetElement, wrapping an unparented XmlElement. /// Validates the name. /// Caller should then ensure the element is added to a parent. /// </summary> internal static ProjectTargetElement CreateDisconnected(string name, ProjectRootElement containingProject) { XmlElementWithLocation element = containingProject.CreateElement(XMakeElements.target); return(new ProjectTargetElement(element, containingProject) { Name = name }); }
/// <summary> /// Creates an unparented ProjectOnErrorElement, wrapping an unparented XmlElement. /// Caller should then ensure the element is added to a parent. /// </summary> internal static ProjectOnErrorElement CreateDisconnected(string executeTargets, ProjectRootElement containingProject) { XmlElementWithLocation element = containingProject.CreateElement(XMakeElements.onError); var onError = new ProjectOnErrorElement(element, containingProject) { ExecuteTargetsAttribute = executeTargets }; return(onError); }
/// <summary> /// Creates an unparented ProjectPropertyGroupElement, wrapping an unparented XmlElement. /// Caller should then ensure the element is added to a parent /// </summary> internal static ProjectWhenElement CreateDisconnected(string condition, ProjectRootElement containingProject) { XmlElementWithLocation element = containingProject.CreateElement(XMakeElements.when); var when = new ProjectWhenElement(element, containingProject) { Condition = condition }; return(when); }
/// <summary> /// Creates an unparented ProjectItemDefinitionElement, wrapping an unparented XmlElement. /// Caller should then ensure the element is added to a parent. /// </summary> internal static ProjectItemDefinitionElement CreateDisconnected(string itemType, ProjectRootElement containingProject) { XmlUtilities.VerifyThrowArgumentValidElementName(itemType); // Orcas inadvertently did not check for reserved item types (like "Choose") in item definitions, // as we do for item types in item groups. So we do not have a check here. // Although we could perhaps add one, as such item definitions couldn't be used // since no items can have the reserved itemType. XmlElementWithLocation element = containingProject.CreateElement(itemType); return(new ProjectItemDefinitionElement(element, containingProject)); }
/// <summary> /// Creates an unparented ProjectImportGroupElement, wrapping an unparented XmlElement. /// Caller should then ensure the element is added to a parent /// </summary> internal static ProjectImportGroupElement CreateDisconnected(ProjectRootElement containingProject) { XmlElementWithLocation element = containingProject.CreateElement(XMakeElements.importGroup); return(new ProjectImportGroupElement(element, containingProject)); }