Mono.UIAutomation.UiaDbusBridge.Wrappers.ProviderElementWrapper.GetOrCreatePatternInfo C# (CSharp) Method

GetOrCreatePatternInfo() private method

private GetOrCreatePatternInfo ( int id, object provider, string path, CreateWrapperFromProvider wrapperCreator ) : PatternInfo
id int
provider object
path string
wrapperCreator CreateWrapperFromProvider
return PatternInfo
		private PatternInfo GetOrCreatePatternInfo (int id, object provider,
		                                     string path,
		                                     CreateWrapperFromProvider wrapperCreator)
		{
			PatternInfo oldInfo;
			if (patternMapping.TryGetValue (id, out oldInfo)) {
				if (oldInfo.Provider == provider)
					return oldInfo;
			}

			object wrapper = wrapperCreator (provider);
			PatternInfo newInfo = new PatternInfo {
				Path = path,
				Provider = provider,
				ProviderWrapper = wrapper
			};
			patternMapping [id] = newInfo;
			bus.Register (new ObjectPath (path), wrapper);

			return newInfo;
		}