You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
* Added a sorted specifier list to reduce string compares when evaluating metadata tags * Use move semantices where possible * Use RemoveSwap instead of Remove when processing show/hide metadata tags. Generated code can change as a result of hide/show tag order changing. #jira #rnx #ROBOMERGE-SOURCE: CL 10872240 via CL 10872241 via CL 10872242 #ROBOMERGE-BOT: (v620-10870533) [CL 10872243 by marc audy in Main branch]
73 lines
2.2 KiB
C++
73 lines
2.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/NameTypes.h"
|
|
#include "Containers/Map.h"
|
|
#include "UObject/Class.h"
|
|
|
|
class FClass;
|
|
class FClasses;
|
|
struct FPropertySpecifier;
|
|
|
|
/** Structure that holds class meta data generated from its UCLASS declaration */
|
|
class FClassDeclarationMetaData
|
|
{
|
|
public:
|
|
FClassDeclarationMetaData();
|
|
|
|
EClassFlags ClassFlags;
|
|
TMap<FName, FString> MetaData;
|
|
FString ClassWithin;
|
|
FString ConfigName;
|
|
|
|
TArray<FString> HideCategories;
|
|
TArray<FString> ShowSubCatgories;
|
|
TArray<FString> HideFunctions;
|
|
TArray<FString> AutoExpandCategories;
|
|
TArray<FString> AutoCollapseCategories;
|
|
TArray<FString> DependsOn;
|
|
TArray<FString> ClassGroupNames;
|
|
TArray<FString> SparseClassDataTypes;
|
|
|
|
/**
|
|
* Parse Class's properties to generate its declaration data.
|
|
*
|
|
* @param InClassSpecifiers Class properties collected from its UCLASS macro
|
|
* @param InRequiredAPIMacroIfPresent *_API macro if present (empty otherwise)
|
|
* @param OutClassData Parsed class meta data
|
|
*/
|
|
void ParseClassProperties(TArray<FPropertySpecifier>&& InClassSpecifiers, const FString& InRequiredAPIMacroIfPresent);
|
|
|
|
/**
|
|
* Merges all category properties with the class which at this point only has its parent propagated categories
|
|
*
|
|
* @param Class Class to merge categories for
|
|
*/
|
|
void MergeClassCategories(FClass* Class);
|
|
|
|
/**
|
|
* Merges all class flags and validates them
|
|
*
|
|
* @param DeclaredClassName Name this class was declared with (for validation)
|
|
* @param PreviousClassFlags Class flags before resetting the class (for validation)
|
|
* @param Class Class to merge flags for
|
|
* @param AllClasses All known classes
|
|
*/
|
|
void MergeAndValidateClassFlags(const FString& DeclaredClassName, uint32 PreviousClassFlags, FClass* Class, const FClasses& AllClasses);
|
|
private:
|
|
|
|
/** Merges all 'show' categories */
|
|
void MergeShowCategories();
|
|
/** Sets and validates 'within' property */
|
|
void SetAndValidateWithinClass(FClass* Class, const FClasses& AllClasses);
|
|
/** Sets and validates 'ConfigName' property */
|
|
void SetAndValidateConfigName(FClass* Class);
|
|
|
|
TArray<FString> ShowCategories;
|
|
TArray<FString> ShowFunctions;
|
|
TArray<FString> DontAutoCollapseCategories;
|
|
bool WantsToBePlaceable;
|
|
};
|