internal static DataClassificationPresentationObject Create(string ruleIdentifier, DataClassificationLocalizableDetails defaultRuleDetails, XElement ruleElement, XElement resourceElement, ClassificationRuleCollectionPresentationObject rulePackPresentationObject) { ArgumentValidator.ThrowIfNullOrEmpty("ruleIdentifier", ruleIdentifier); ArgumentValidator.ThrowIfNull("defaultRuleDetails", defaultRuleDetails); ArgumentValidator.ThrowIfNull("ruleElement", ruleElement); ArgumentValidator.ThrowIfNull("resourceElement", resourceElement); ArgumentValidator.ThrowIfNull("rulePackPresentationObject", rulePackPresentationObject); MultiValuedProperty <Fingerprint> multiValuedProperty = null; if (rulePackPresentationObject.IsFingerprintRuleCollection && ruleElement.Document != null) { multiValuedProperty = XmlProcessingUtils.ReadAllReferredFingerprints(ruleElement); } return(new DataClassificationPresentationObject { defaultDetails = defaultRuleDetails, localizedNames = XmlProcessingUtils.ReadAllRuleNames(resourceElement), localizedDescriptions = XmlProcessingUtils.ReadAllRuleDescriptions(resourceElement), fingerprints = multiValuedProperty, Identity = DataClassificationPresentationObject.CreateDataClassificationIdentifier(ruleIdentifier, rulePackPresentationObject), ClassificationType = (rulePackPresentationObject.IsFingerprintRuleCollection ? ClassificationTypeEnum.Fingerprint : DataClassificationPresentationObject.Parse(ruleElement.Name.LocalName)), ClassificationRuleCollection = rulePackPresentationObject, RecommendedConfidence = XmlProcessingUtils.ReadRuleRecommendedConfidence(ruleElement), MinEngineVersion = XmlProcessingUtils.GetRulePackElementVersion(ruleElement) }); }