// Copyright Keysight Technologies 2012-2019
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, you can obtain one at http://mozilla.org/MPL/2.0/.
namespace OpenTap
{
/// Hook into type reflection system. Provides type data for a given object or identifier.
[Display("TypeData Provider")]
public interface ITypeDataProvider : ITapPlugin
{
/// Gets the type data from an identifier.
/// The identifier to get type information for.
/// A representation of the type specified by identifier or null if this provider cannot handle the specified identifier.
ITypeData GetTypeData(string identifier);
/// Gets the type data from an object.
/// The object to get type information for.
/// A representation of the type of the specified object or null if this provider cannot handle the specified type of object.
ITypeData GetTypeData(object obj);
/// The priority of this type info provider. Note, this decides the order in which the type info is resolved.
double Priority { get; }
}
}