UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InternationalizationMetadata.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
5#include "Containers/Map.h"
7#include "CoreTypes.h"
11
12class FArchive;
14
19{
20 None,
21 Boolean,
22 String,
23 Array,
24 Object,
25};
26
28
33{
34public:
36
37 virtual FString ToString() const = 0;
38
40 virtual FString AsString() {ErrorMessage(TEXT("String")); return FString();}
41
43 virtual bool AsBool() {ErrorMessage(TEXT("Boolean")); return false;}
44
47
50
52
53 virtual ELocMetadataType GetType() const = 0;
54
55 bool operator==( const FLocMetadataValue& Other ) const { return ( (GetType() == Other.GetType()) && EqualTo( Other ) ); }
56 bool operator<( const FLocMetadataValue& Other ) const { return (GetType() == Other.GetType()) ? LessThan( Other ) : (GetType() < Other.GetType()); }
57
58protected:
60
61 virtual bool EqualTo( const FLocMetadataValue& Other ) const = 0;
62 virtual bool LessThan( const FLocMetadataValue& Other ) const = 0;
63
64 virtual FString GetTypeString() const = 0;
65
66 CORE_API void ErrorMessage(const FString& InType);
67
68private:
70 CORE_API FLocMetadataValue& operator=( const FLocMetadataValue& );
71};
72
73
78{
79public:
81 : Values()
82 {
83 }
84
87
88 template<ELocMetadataType LocMetadataType>
89 TSharedPtr<FLocMetadataValue> GetField( const FString& FieldName )
90 {
91 const TSharedPtr<FLocMetadataValue>* Field = Values.Find(FieldName);
92 if ( ensureMsgf(Field && Field->IsValid(), TEXT("Field %s was not found."), *FieldName) )
93 {
94 if ( ensureMsgf( (*Field)->GetType() == LocMetadataType, TEXT("Field %s is of the wrong type."), *FieldName) )
95 {
96 return (*Field);
97 }
98 }
99
101 }
102
104 bool HasField( const FString& FieldName)
105 {
106 const TSharedPtr<FLocMetadataValue>* Field = Values.Find(FieldName);
107 if(Field && Field->IsValid())
108 {
109 return true;
110 }
111
112 return false;
113 }
114
116 template<ELocMetadataType LocMetadataType>
117 bool HasTypedField(const FString& FieldName)
118 {
119 const TSharedPtr<FLocMetadataValue>* Field = Values.Find(FieldName);
120 if(Field && Field->IsValid() && ((*Field)->GetType() == LocMetadataType))
121 {
122 return true;
123 }
124
125 return false;
126 }
127
128 CORE_API void SetField( const FString& FieldName, const TSharedPtr<FLocMetadataValue>& Value );
129
130 CORE_API void RemoveField(const FString& FieldName);
131
133 CORE_API FString GetStringField(const FString& FieldName);
134
136 CORE_API void SetStringField( const FString& FieldName, const FString& StringValue );
137
139 CORE_API bool GetBoolField(const FString& FieldName);
140
142 CORE_API void SetBoolField( const FString& FieldName, bool InValue );
143
146
148 CORE_API void SetArrayField( const FString& FieldName, const TArray< TSharedPtr<FLocMetadataValue> >& Array );
149
152
154 CORE_API void SetObjectField( const FString& FieldName, const TSharedPtr<FLocMetadataObject>& LocMetadataObject );
155
157
158 CORE_API bool operator==(const FLocMetadataObject& Other) const;
159 CORE_API bool operator<( const FLocMetadataObject& Other ) const;
160
162 CORE_API bool IsExactMatch( const FLocMetadataObject& Other ) const;
163
165
166 CORE_API FString ToString() const;
167
170
171public:
174
177};
178
181{
182public:
186
187 virtual FString AsString() override {return Value;}
188
189 CORE_API virtual TSharedRef<FLocMetadataValue> Clone() const override;
190 void SetString( const FString& InString ) { Value = InString; }
191
192 virtual FString ToString() const override {return Value;}
193
194 virtual ELocMetadataType GetType() const override {return ELocMetadataType::String;}
195
196protected:
197
198 FString Value;
199
200 CORE_API virtual bool EqualTo( const FLocMetadataValue& Other ) const override;
201 CORE_API virtual bool LessThan( const FLocMetadataValue& Other ) const override;
202
203 virtual FString GetTypeString() const override {return TEXT("String");}
204};
205
206
209{
210public:
211 FLocMetadataValueBoolean(bool InBool) : Value(InBool) {}
214
215 virtual bool AsBool() override {return Value;}
216
217 CORE_API virtual TSharedRef<FLocMetadataValue> Clone() const override;
218
219 virtual FString ToString() const override {return Value ? TEXT("true") : TEXT("false");}
220
221 virtual ELocMetadataType GetType() const override {return ELocMetadataType::Boolean;}
222
223protected:
224 bool Value;
225
226 CORE_API virtual bool EqualTo( const FLocMetadataValue& Other ) const override;
227 CORE_API virtual bool LessThan( const FLocMetadataValue& Other ) const override;
228
229 virtual FString GetTypeString() const override {return TEXT("Boolean");}
230};
231
234{
235public:
239
241
242 CORE_API virtual TSharedRef<FLocMetadataValue> Clone() const override;
243
244 CORE_API virtual FString ToString() const override;
245
246 virtual ELocMetadataType GetType() const override {return ELocMetadataType::Array;}
247
248protected:
250
251 CORE_API virtual bool EqualTo( const FLocMetadataValue& Other ) const override;
252 CORE_API virtual bool LessThan( const FLocMetadataValue& Other ) const override;
253
254 virtual FString GetTypeString() const override {return TEXT("Array");}
255};
256
259{
260public:
264
265 virtual TSharedPtr<FLocMetadataObject> AsObject() override {return Value;}
266
267 CORE_API virtual TSharedRef<FLocMetadataValue> Clone() const override;
268
269 CORE_API virtual FString ToString() const override;
270
271 virtual ELocMetadataType GetType() const override {return ELocMetadataType::Object;}
272
273protected:
275
276 CORE_API virtual bool EqualTo( const FLocMetadataValue& Other ) const override;
277 CORE_API virtual bool LessThan( const FLocMetadataValue& Other ) const override;
278
279 virtual FString GetTypeString() const override {return TEXT("Object");}
280};
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ELocMetadataType
Definition InternationalizationMetadata.h:19
Definition Archive.h:1208
Definition InternationalizationMetadata.h:78
bool HasTypedField(const FString &FieldName)
Definition InternationalizationMetadata.h:117
CORE_API void SetArrayField(const FString &FieldName, const TArray< TSharedPtr< FLocMetadataValue > > &Array)
Definition InternationalizationMetadata.cpp:77
static CORE_API const TCHAR * COMPARISON_MODIFIER_PREFIX
Definition InternationalizationMetadata.h:176
TMap< FString, TSharedPtr< FLocMetadataValue > > Values
Definition InternationalizationMetadata.h:173
CORE_API TSharedPtr< FLocMetadataObject > GetObjectField(const FString &FieldName)
Definition InternationalizationMetadata.cpp:82
CORE_API TArray< TSharedPtr< FLocMetadataValue > > GetArrayField(const FString &FieldName)
Definition InternationalizationMetadata.cpp:72
CORE_API void SetBoolField(const FString &FieldName, bool InValue)
Definition InternationalizationMetadata.cpp:67
CORE_API bool GetBoolField(const FString &FieldName)
Definition InternationalizationMetadata.cpp:62
CORE_API void SetStringField(const FString &FieldName, const FString &StringValue)
Definition InternationalizationMetadata.cpp:57
CORE_API void SetObjectField(const FString &FieldName, const TSharedPtr< FLocMetadataObject > &LocMetadataObject)
Definition InternationalizationMetadata.cpp:87
TSharedPtr< FLocMetadataValue > GetField(const FString &FieldName)
Definition InternationalizationMetadata.h:89
CORE_API bool operator==(const FLocMetadataObject &Other) const
Definition InternationalizationMetadata.cpp:114
CORE_API void SetField(const FString &FieldName, const TSharedPtr< FLocMetadataValue > &Value)
Definition InternationalizationMetadata.cpp:42
CORE_API friend FArchive & operator<<(FArchive &Archive, FLocMetadataObject &Object)
Definition InternationalizationMetadata.cpp:403
CORE_API bool IsExactMatch(const FLocMetadataObject &Other) const
Definition InternationalizationMetadata.cpp:150
FLocMetadataObject()
Definition InternationalizationMetadata.h:80
static CORE_API bool IsMetadataExactMatch(const FLocMetadataObject *const MetadataA, const FLocMetadataObject *const MetadataB)
Definition InternationalizationMetadata.cpp:245
CORE_API FLocMetadataObject & operator=(const FLocMetadataObject &Other)
Definition InternationalizationMetadata.cpp:95
CORE_API FString GetStringField(const FString &FieldName)
Definition InternationalizationMetadata.cpp:52
CORE_API bool operator<(const FLocMetadataObject &Other) const
Definition InternationalizationMetadata.cpp:179
CORE_API void RemoveField(const FString &FieldName)
Definition InternationalizationMetadata.cpp:47
CORE_API FString ToString() const
Definition InternationalizationMetadata.cpp:270
bool HasField(const FString &FieldName)
Definition InternationalizationMetadata.h:104
Definition InternationalizationMetadata.h:234
virtual CORE_API FString ToString() const override
Definition InternationalizationMetadata.cpp:554
FLocMetadataValueArray(const TArray< TSharedPtr< FLocMetadataValue > > &InArray)
Definition InternationalizationMetadata.h:236
TArray< TSharedPtr< FLocMetadataValue > > Value
Definition InternationalizationMetadata.h:249
virtual FString GetTypeString() const override
Definition InternationalizationMetadata.h:254
virtual TArray< TSharedPtr< FLocMetadataValue > > AsArray() override
Definition InternationalizationMetadata.h:240
virtual CORE_API TSharedRef< FLocMetadataValue > Clone() const override
Definition InternationalizationMetadata.cpp:544
virtual ELocMetadataType GetType() const override
Definition InternationalizationMetadata.h:246
Definition InternationalizationMetadata.h:209
virtual ELocMetadataType GetType() const override
Definition InternationalizationMetadata.h:221
bool Value
Definition InternationalizationMetadata.h:224
virtual bool AsBool() override
Definition InternationalizationMetadata.h:215
FLocMetadataValueBoolean(bool InBool)
Definition InternationalizationMetadata.h:211
virtual FString ToString() const override
Definition InternationalizationMetadata.h:219
virtual FString GetTypeString() const override
Definition InternationalizationMetadata.h:229
virtual CORE_API TSharedRef< FLocMetadataValue > Clone() const override
Definition InternationalizationMetadata.cpp:452
Definition InternationalizationMetadata.h:259
virtual ELocMetadataType GetType() const override
Definition InternationalizationMetadata.h:271
FLocMetadataValueObject(TSharedPtr< FLocMetadataObject > InObject)
Definition InternationalizationMetadata.h:261
virtual CORE_API FString ToString() const override
Definition InternationalizationMetadata.cpp:625
TSharedPtr< FLocMetadataObject > Value
Definition InternationalizationMetadata.h:274
virtual TSharedPtr< FLocMetadataObject > AsObject() override
Definition InternationalizationMetadata.h:265
virtual FString GetTypeString() const override
Definition InternationalizationMetadata.h:279
virtual CORE_API TSharedRef< FLocMetadataValue > Clone() const override
Definition InternationalizationMetadata.cpp:619
Definition InternationalizationMetadata.h:181
virtual CORE_API TSharedRef< FLocMetadataValue > Clone() const override
Definition InternationalizationMetadata.cpp:421
virtual FString AsString() override
Definition InternationalizationMetadata.h:187
void SetString(const FString &InString)
Definition InternationalizationMetadata.h:190
virtual FString GetTypeString() const override
Definition InternationalizationMetadata.h:203
virtual FString ToString() const override
Definition InternationalizationMetadata.h:192
FLocMetadataValueString(const FString &InString)
Definition InternationalizationMetadata.h:183
virtual ELocMetadataType GetType() const override
Definition InternationalizationMetadata.h:194
FString Value
Definition InternationalizationMetadata.h:198
Definition InternationalizationMetadata.h:33
virtual FString AsString()
Definition InternationalizationMetadata.h:40
virtual TArray< TSharedPtr< FLocMetadataValue > > AsArray()
Definition InternationalizationMetadata.h:46
virtual ELocMetadataType GetType() const =0
virtual bool EqualTo(const FLocMetadataValue &Other) const =0
virtual TSharedRef< FLocMetadataValue > Clone() const =0
virtual TSharedPtr< FLocMetadataObject > AsObject()
Definition InternationalizationMetadata.h:49
virtual bool LessThan(const FLocMetadataValue &Other) const =0
bool operator==(const FLocMetadataValue &Other) const
Definition InternationalizationMetadata.h:55
FLocMetadataValue()
Definition InternationalizationMetadata.h:59
virtual CORE_API ~FLocMetadataValue()=0
virtual bool AsBool()
Definition InternationalizationMetadata.h:43
virtual FString GetTypeString() const =0
bool operator<(const FLocMetadataValue &Other) const
Definition InternationalizationMetadata.h:56
CORE_API void ErrorMessage(const FString &InType)
Definition InternationalizationMetadata.cpp:23
virtual FString ToString() const =0
Definition StructuredArchiveSlots.h:52
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition FieldSystemNoiseAlgo.cpp:6