IProjectDataProvider types for each projectInterface supported by PAPI. Extensions can
add more Project Data Providers with corresponding projectInterfaces by adding details to
their .d.ts file and registering a Project Data Provider factory with the corresponding
projectInterface.
There are two types of Project Data Providers (and Project Data Provider Factories that serve
them):
Base Project Data Provider - provides project data via some projectInterfaces for its own
projects with its own unique project ids. These PDPs must support the platform.baseprojectInterface by implementing IBaseProjectDataProvider. More information
below.
Layering Project Data Provider - layers over other PDPs and provides additional
projectInterfaces for projects on other PDPs. Likely does not provide its own unique
project ids but rather layers over base PDPs' project ids. These PDPs do not need to
support the platform.baseprojectInterface and should instead implement
IProjectDataProvider. Instead of providing projects themselves, they likely use the
ExtensionData data type exposed via the platform.baseprojectInterface on Base PDPs to
provide additional project data on top of Base PDPs.
All Base Project Data Provider Interfaces' data types must implement
IBaseProjectDataProvider (which extends MandatoryProjectDataTypes) like in the
following example. Please see its documentation for information on how Project Data Providers
can implement this interface.
Note: The keys of this interface are the projectInterfaces for the associated Project Data
Provider Interfaces. projectInterfaces represent standardized sets of methods on a PDP.
WARNING: Each Base Project Data Provider must fulfill certain requirements for its
getSetting, setSetting, resetSetting, getExtensionData, and setExtensionData methods.
See IBaseProjectDataProvider and MandatoryProjectDataTypes for more information.
An extension can extend this interface to add types for the Project Data Provider Interfaces
its registered factory provides by adding the following to its .d.ts file (in this example,
we are adding a Base Project Data Provider interface for the MyExtensionBaseProjectInterfaceprojectInterface and a Layering Project Data Provider interface for the
MyExtensionLayeringProjectInterfaceprojectInterface):
exportinterfaceProjectDataProviderInterfaces { // Note that the base PDP implements `I**Base**ProjectDataProvider` MyExtensionBaseProjectInterface: IBaseProjectDataProvider<MyProjectDataTypes>; // Note that the layering PDP only implements `IProjectDataProvider` because the base PDP already // provides the `platform.base` data types MyExtensionLayeringProjectInterface: IProjectDataProvider<MyLayeringProjectDataTypes>; } }
IProjectDataProvider types for each
projectInterface
supported by PAPI. Extensions can add more Project Data Providers with correspondingprojectInterface
s by adding details to their.d.ts
file and registering a Project Data Provider factory with the correspondingprojectInterface
.There are two types of Project Data Providers (and Project Data Provider Factories that serve them):
projectInterface
s for its own projects with its own unique project ids. These PDPs must support theplatform.base
projectInterface
by implementing IBaseProjectDataProvider. More information below.projectInterface
s for projects on other PDPs. Likely does not provide its own unique project ids but rather layers over base PDPs' project ids. These PDPs do not need to support theplatform.base
projectInterface
and should instead implement IProjectDataProvider. Instead of providing projects themselves, they likely use theExtensionData
data type exposed via theplatform.base
projectInterface
on Base PDPs to provide additional project data on top of Base PDPs.All Base Project Data Provider Interfaces' data types must implement IBaseProjectDataProvider (which extends MandatoryProjectDataTypes) like in the following example. Please see its documentation for information on how Project Data Providers can implement this interface.
Note: The keys of this interface are the
projectInterface
s for the associated Project Data Provider Interfaces.projectInterface
s represent standardized sets of methods on a PDP.WARNING: Each Base Project Data Provider must fulfill certain requirements for its
getSetting
,setSetting
,resetSetting
,getExtensionData
, andsetExtensionData
methods. See IBaseProjectDataProvider and MandatoryProjectDataTypes for more information.An extension can extend this interface to add types for the Project Data Provider Interfaces its registered factory provides by adding the following to its
.d.ts
file (in this example, we are adding a Base Project Data Provider interface for theMyExtensionBaseProjectInterface
projectInterface
and a Layering Project Data Provider interface for theMyExtensionLayeringProjectInterface
projectInterface
):Example