/********************************************************************
*
* Created: 8/4/2014 14:59
*
* File: fsCNameComponent.h
*
* Author: Mick Waites
*
* Purpose: Calculates and stores information about a HOG entity
* based on the name of the entity.
*
*********************************************************************/
#ifndef fsCNameComponenthdr
#define fsCNameComponenthdr
#include <fsCore/src/fsCUniqueId.h>
#include <fsAppCore/src/components/fsIComponent.h>
class fsCNameComponent : public fsIComponent
{
friend class fsCComponentFactory;
public:
static fsCNameComponent* get(const fsCEntity* pEntity);
static fsCNameComponent* get(const fsIComponent* pComponent);
static fsStr localisedNameCalculate(const fsStr& pLayerName);
static fsStr nameSansSuffixCalculate(const fsStr& pLayerName);
static fsStr nameSansPrefixCalculate(const fsStr& pLayerName);
const fsStr& nameSansSuffixGet() const;
const fsStr& nameSansPrefixGet() const;
const fsStr& localisedNameGet() const;
static const fsChar mHiddenPrefix;
static const fsChar mVisiblePrefix;
static const fsStr mTaskChar;
static const fsCUniqueId mTypeId;
protected:
static fsIComponent* create(fsCEntity* pParent);
fsCNameComponent(fsCEntity* pParent);
virtual ~fsCNameComponent();<--- Destructor in derived class
fsStr mFullName;
fsStr mStrippedName;
fsStr mLocalisedName;
private:
void initialise();
static void localisedNameCalculate(const fsStr& pFullName, const fsStr& pStrippedName, fsStr& pLocalisedName);
};
#endif