UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Editor::DataStorage::ICompatibilityProvider Class Referenceabstract

#include <TypedElementDataStorageCompatibilityInterface.h>

+ Inheritance diagram for UE::Editor::DataStorage::ICompatibilityProvider:

Public Types

using ObjectRegistrationFilter = TFunction< bool(const ICompatibilityProvider &, const UObject *)>
 
using ObjectToRowDealiaser = TFunction< RowHandle(const ICompatibilityProvider &, const UObject *)>
 

Public Member Functions

template<typename ObjectType >
RowHandle AddCompatibleObject (ObjectType &&Object)
 
template<typename ObjectType >
void RemoveCompatibleObject (ObjectType &&Object)
 
template<typename ObjectType >
RowHandle FindRowWithCompatibleObject (ObjectType &&Object) const
 
virtual void RegisterRegistrationFilter (ObjectRegistrationFilter Filter)=0
 
virtual void RegisterDealiaserCallback (ObjectToRowDealiaser Dealiaser)=0
 
virtual void RegisterTypeTableAssociation (TWeakObjectPtr< UStruct > TypeInfo, TableHandle Table)=0
 
virtual RowHandle AddCompatibleObjectExplicit (UObject *Object)=0
 
virtual RowHandle AddCompatibleObjectExplicit (void *Object, TWeakObjectPtr< const UScriptStruct > TypeInfo)=0
 
virtual void RemoveCompatibleObjectExplicit (UObject *Object)=0
 
virtual void RemoveCompatibleObjectExplicit (void *Object)=0
 
virtual RowHandle FindRowWithCompatibleObjectExplicit (const UObject *Object) const =0
 
virtual RowHandle FindRowWithCompatibleObjectExplicit (const void *Object) const =0
 
virtual bool SupportsExtension (FName Extension) const =0
 
virtual void ListExtensions (TFunctionRef< void(FName)> Callback) const =0
 

Static Public Attributes

static const FName ObjectMappingDomain = "Object"
 

Detailed Description

Interface to provide compatibility with existing systems that don't directly support the data storage.

Member Typedef Documentation

◆ ObjectRegistrationFilter

◆ ObjectToRowDealiaser

Member Function Documentation

◆ AddCompatibleObject()

template<typename ObjectType >
RowHandle UE::Editor::DataStorage::ICompatibilityProvider::AddCompatibleObject ( ObjectType &&  Object)

functions

These allow compatibility with any type. These do eventually fall back to the explicit versions. Any references given are non-owning so it's up to the caller to deregister the object after it's no longer available. Adds a reference to an existing object to the data storage. The data storage does NOT take ownership of the object and the caller is responsible for managing the life cycle of the object. The address is only used for associating the object with a row and to setup the initial row data.

◆ AddCompatibleObjectExplicit() [1/2]

virtual RowHandle UE::Editor::DataStorage::ICompatibilityProvider::AddCompatibleObjectExplicit ( UObject Object)
pure virtual

functions

These are functions that work on specific types. Adds a UObject to the data storage.

◆ AddCompatibleObjectExplicit() [2/2]

virtual RowHandle UE::Editor::DataStorage::ICompatibilityProvider::AddCompatibleObjectExplicit ( void Object,
TWeakObjectPtr< const UScriptStruct TypeInfo 
)
pure virtual

Adds an FStruct to the data storage.

◆ FindRowWithCompatibleObject()

template<typename ObjectType >
RowHandle UE::Editor::DataStorage::ICompatibilityProvider::FindRowWithCompatibleObject ( ObjectType &&  Object) const

◆ FindRowWithCompatibleObjectExplicit() [1/2]

virtual RowHandle UE::Editor::DataStorage::ICompatibilityProvider::FindRowWithCompatibleObjectExplicit ( const UObject Object) const
pure virtual

Finds a previously stored UObject. If not found an invalid row handle will be returned.

◆ FindRowWithCompatibleObjectExplicit() [2/2]

virtual RowHandle UE::Editor::DataStorage::ICompatibilityProvider::FindRowWithCompatibleObjectExplicit ( const void Object) const
pure virtual

Finds a previously stored FStruct. If not found an invalid row handle will be returned.

◆ ListExtensions()

virtual void UE::Editor::DataStorage::ICompatibilityProvider::ListExtensions ( TFunctionRef< void(FName)>  Callback) const
pure virtual

Provides a list of all extensions that are enabled.

◆ RegisterDealiaserCallback()

virtual void UE::Editor::DataStorage::ICompatibilityProvider::RegisterDealiaserCallback ( ObjectToRowDealiaser  Dealiaser)
pure virtual

Notifications and request can be made to the compatibility layer for objects that are stored but don't directly map to a row. An example is a UObject represented by a column. If the UObject gets updated there's no direct mapping to the row the column is stored in but the row still needs to be updated. For cases like this it's possible to store information to find the row that's being aliased.

◆ RegisterRegistrationFilter()

virtual void UE::Editor::DataStorage::ICompatibilityProvider::RegisterRegistrationFilter ( ObjectRegistrationFilter  Filter)
pure virtual

registration

Functions to register callbacks with the compatibility layer to help refine its operations. Objects like actors are registered through the compatibility layer in bulk. This can lead to objects being added that cause conflicts with other data in the data storage. This callback offers the opportunity to inspect the objects that are being added and if they include an object that shouldn't be store it can filter them out.

◆ RegisterTypeTableAssociation()

virtual void UE::Editor::DataStorage::ICompatibilityProvider::RegisterTypeTableAssociation ( TWeakObjectPtr< UStruct TypeInfo,
TableHandle  Table 
)
pure virtual

Allows a specific type to be associated with a table. Whenever a compatible object is added, the type information of that object will be used to find the closest match in the registered types and use the associated table. E.g. actors derive from uobjects so if the type information of an actor is registered the actor table will be used instead of the uobject table.

◆ RemoveCompatibleObject()

template<typename ObjectType >
void UE::Editor::DataStorage::ICompatibilityProvider::RemoveCompatibleObject ( ObjectType &&  Object)

Removes a previously registered object from the data storage.

◆ RemoveCompatibleObjectExplicit() [1/2]

virtual void UE::Editor::DataStorage::ICompatibilityProvider::RemoveCompatibleObjectExplicit ( UObject Object)
pure virtual

Removes a UObject from the data storage.

◆ RemoveCompatibleObjectExplicit() [2/2]

virtual void UE::Editor::DataStorage::ICompatibilityProvider::RemoveCompatibleObjectExplicit ( void Object)
pure virtual

Removes an FStruct from the data storage.

◆ SupportsExtension()

virtual bool UE::Editor::DataStorage::ICompatibilityProvider::SupportsExtension ( FName  Extension) const
pure virtual

functions

Check if a custom extension is supported. This can be used to check for in-development features, custom extensions, etc.

Member Data Documentation

◆ ObjectMappingDomain

const FName UE::Editor::DataStorage::ICompatibilityProvider::ObjectMappingDomain = "Object"
inlinestatic

The documentation for this class was generated from the following file: