UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PropertyAccessUtil.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreGlobals.h"
7#include "CoreMinimal.h"
8#include "HAL/Platform.h"
10#include "Templates/Function.h"
11#include "Templates/UniquePtr.h"
12#include "UObject/NameTypes.h"
14#include "UObject/UnrealType.h"
15
16#include "PropertyAccessUtil.generated.h"
17
18class FOutputDevice;
19class FProperty;
20class UObject;
21class UStruct;
22
27{
29 Success = 0,
30
32 PermissionDenied = 1<<0,
34 ConversionFailed = 1<<1,
35
37 AccessProtected = 1<<4,
39 CannotEditTemplate = 1<<5,
41 CannotEditInstance = 1<<6,
43 ReadOnly = 1<<7,
44};
46
50UENUM(BlueprintType)
60
75
80
85
90
91namespace PropertyAccessUtil
92{
94 static const uint64 RuntimeReadOnlyFlags = CPF_EditConst | CPF_BlueprintReadOnly;
95
97 static const uint64 EditorReadOnlyFlags = CPF_EditConst;
98
112
126
139
152
162
171
182
193
209
227
244
261
272
281
289
297
309
317 COREUOBJECT_API bool IsObjectTemplate(const UObject* InObject);
318
328
341
351
364
377
390
403}
CORE_API FFeedbackContext * GWarn
Definition CoreGlobals.cpp:53
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
const bool
Definition NetworkReplayStreaming.h:178
@ CPF_BlueprintReadOnly
This property cannot be modified by blueprint code.
Definition ObjectMacros.h:423
@ CPF_EditConst
Property is uneditable in the editor.
Definition ObjectMacros.h:436
#define UENUM(...)
Definition ObjectMacros.h:749
EPropertyAccessResultFlags
Definition PropertyAccessUtil.h:27
EPropertyAccessChangeNotifyMode
Definition PropertyAccessUtil.h:52
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UnrealType.h:6738
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition UnrealType.h:174
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UniquePtr.h:107
Definition Object.h:95
Definition Class.h:480
const Type Unspecified
Definition UnrealType.h:6838
uint32 Type
Definition UnrealType.h:6835
Definition PropertyAccessUtil.cpp:106
void EmitPostChangeNotify(const FPropertyAccessChangeNotify *InChangeNotify, const bool InIdenticalValue)
Definition PropertyAccessUtil.cpp:769
EPropertyAccessResultFlags GetPropertyValue_InContainer(const FProperty *InContainerProp, const void *InContainerData, const FProperty *InDestProp, void *InDestValue, const int32 InArrayIndex)
Definition PropertyAccessUtil.cpp:374
void EmitPreChangeNotify(const FPropertyAccessChangeNotify *InChangeNotify, const bool InIdenticalValue)
Definition PropertyAccessUtil.cpp:753
bool IsCompletePropertyIdentical(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, const void *InDestValue)
Definition PropertyAccessUtil.cpp:231
EPropertyAccessResultFlags GetPropertyValue_Object(const FProperty *InObjectProp, const UObject *InObject, const FProperty *InDestProp, void *InDestValue, const int32 InArrayIndex)
Definition PropertyAccessUtil.cpp:368
bool ArePropertiesCompatible(const FProperty *InSrcProp, const FProperty *InDestProp)
Definition PropertyAccessUtil.cpp:149
bool GetArchetypeInstancesInheritingPropertyValue(const FProperty *InObjectProp, UObject *InObject, TArray< UObject * > &OutArchetypeInstances)
Definition PropertyAccessUtil.cpp:435
bool IsSinglePropertyIdentical(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, const void *InDestValue)
Definition PropertyAccessUtil.cpp:204
bool ImportDefaultPropertyValue(const FProperty *InProp, void *InPropValue, const FString &InDefaultValue, FOutputDevice *ErrorText)
Definition PropertyAccessUtil.cpp:860
bool IsObjectTemplate(const UObject *InObject)
Definition PropertyAccessUtil.cpp:810
EPropertyAccessResultFlags GetPropertyValue(const FPropertyAccessGetFunc &InGetFunc)
Definition PropertyAccessUtil.cpp:417
EPropertyAccessResultFlags GetPropertyValue_DirectSingle(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue)
Definition PropertyAccessUtil.cpp:389
FProperty * FindPropertyByName(const FName InPropName, const UStruct *InStruct)
Definition PropertyAccessUtil.cpp:839
EPropertyAccessResultFlags GetPropertyValue_DirectComplete(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue)
Definition PropertyAccessUtil.cpp:403
EPropertyAccessResultFlags SetPropertyValue_DirectSingle(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue, const TArray< void * > &InArchetypeInstDestValues, const uint64 InReadOnlyFlags, const bool InOwnerIsTemplate, const FPropertyAccessBuildChangeNotifyFunc &InBuildChangeNotifyFunc)
Definition PropertyAccessUtil.cpp:632
EPropertyAccessResultFlags SetPropertyValue_InContainer(const FProperty *InContainerProp, void *InContainerData, const TArray< void * > &InArchetypeInstContainerData, const FProperty *InSrcProp, const void *InSrcValue, const int32 InArrayIndex, const uint64 InReadOnlyFlags, const bool InOwnerIsTemplate, const FPropertyAccessBuildChangeNotifyFunc &InBuildChangeNotifyFunc)
Definition PropertyAccessUtil.cpp:603
EPropertyAccessResultFlags SetPropertyValue_Object(const FProperty *InObjectProp, UObject *InObject, const FProperty *InSrcProp, const void *InSrcValue, const int32 InArrayIndex, const uint64 InReadOnlyFlags, const EPropertyAccessChangeNotifyMode InNotifyMode)
Definition PropertyAccessUtil.cpp:585
bool GetArchetypeInstancesInheritingPropertyValue_AsContainerData(const FProperty *InObjectProp, UObject *InObject, TArray< void * > &OutArchetypeInstContainers)
Definition PropertyAccessUtil.cpp:545
EPropertyAccessResultFlags CanGetPropertyValue(const FProperty *InProp)
Definition PropertyAccessUtil.cpp:425
EPropertyAccessResultFlags SetPropertyValue(const FPropertyAccessSetFunc &InSetFunc, const FPropertyAccessBuildChangeNotifyFunc &InBuildChangeNotifyFunc)
Definition PropertyAccessUtil.cpp:714
bool CopySinglePropertyValue(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue)
Definition PropertyAccessUtil.cpp:243
EPropertyAccessResultFlags SetPropertyValue_DirectComplete(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue, const TArray< void * > &InArchetypeInstDestValues, const uint64 InReadOnlyFlags, const bool InOwnerIsTemplate, const FPropertyAccessBuildChangeNotifyFunc &InBuildChangeNotifyFunc)
Definition PropertyAccessUtil.cpp:669
EPropertyAccessResultFlags CanSetPropertyValue(const FProperty *InProp, const uint64 InReadOnlyFlags, const bool InOwnerIsTemplate)
Definition PropertyAccessUtil.cpp:723
TUniquePtr< FPropertyAccessChangeNotify > BuildBasicChangeNotify(const FProperty *InProp, const UObject *InObject, const EPropertyAccessChangeNotifyMode InNotifyMode, const EPropertyChangeType::Type ChangeType)
Definition PropertyAccessUtil.cpp:788
bool CopyCompletePropertyValue(const FProperty *InSrcProp, const void *InSrcValue, const FProperty *InDestProp, void *InDestValue)
Definition PropertyAccessUtil.cpp:280
Definition PropertyAccessUtil.h:65
UObject * ChangedObject
Definition PropertyAccessUtil.h:69
EPropertyAccessChangeNotifyMode NotifyMode
Definition PropertyAccessUtil.h:73
EPropertyChangeType::Type ChangeType
Definition PropertyAccessUtil.h:67
FEditPropertyChain ChangedPropertyChain
Definition PropertyAccessUtil.h:71