Mono.UIAutomation.UiaDbusSource.UiaDbusAutomationSource.DeserializeAutomationPropertyValue C# (CSharp) Method

DeserializeAutomationPropertyValue() private method

private DeserializeAutomationPropertyValue ( string busName, int propId, object value ) : object
busName string
propId int
value object
return object
		private object DeserializeAutomationPropertyValue (string busName, int propId, object value)
		{
			object ret = null;
			if (propId == TableItemPatternIdentifiers.ColumnHeaderItemsProperty.Id ||
			    propId == TableItemPatternIdentifiers.RowHeaderItemsProperty.Id ||
			    propId == TablePatternIdentifiers.ColumnHeadersProperty.Id ||
			    propId == TablePatternIdentifiers.RowHeadersProperty.Id ||
			    propId == SelectionPatternIdentifiers.SelectionProperty.Id) {
				string [] paths = (string [])value;
				AutomationElement [] elements = new AutomationElement [paths.Length];
				for (var i = 0; i < paths.Length; i++) {
					UiaDbusElement elem = GetOrCreateElement (busName, paths [i]);
					elements [i] = SourceManager.GetOrCreateAutomationElement (elem);
				}
				ret = elements;
			} else if (propId == AutomationElementIdentifiers.LabeledByProperty.Id ||
			           propId == GridItemPatternIdentifiers.ContainingGridProperty.Id ||
			           propId == SelectionItemPatternIdentifiers.SelectionContainerProperty.Id) {
				string path = (string) value;
				UiaDbusElement elem = GetOrCreateElement (busName, path);
				ret = SourceManager.GetOrCreateAutomationElement (elem);
			} else
				ret = DC.DbusSerializer.DeserializeValue (propId, value);
			return ret;
		}