VL
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vl::ObjectVar Class Reference

#include <vl.h>

Inheritance diagram for vl::ObjectVar:
vl::AbstractVar

Public Member Functions

 ObjectVar ()=default
 
 ObjectVar (const ObjectDataType &dataPtr)
 
bool IsObject () const override
 
bool operator== (const ObjectVar &right) const
 
bool operator== (const ObjectVar &right)
 
 operator bool () const override
 
const ObjectVar & AsObject () const override
 
ObjectVar & AsObject () override
 
Type GetType () const override
 
int Size () const
 
Var & Set (const std::string &propName)
 
Var & Set (const std::string &propName, const Var &value)
 
Var & Set (const std::string &propName, const VarPtr &varPtr)
 
template<typename T >
Var & Set (const std::string &propName, const T &value)
 
const Var & Get (const std::string &propName) const
 
Var & Get (const std::string &propName)
 
bool Has (const std::string &propName) const
 
bool HasOwn (const std::string &propName) const
 
std::shared_ptr< std::string > GetRelativePath (const std::string &propName) const
 
bool Overridden (const std::string &propName) const
 
int PropCount () const
 
bool RemoveProperty (const std::string &propName)
 
bool RenameProperty (const std::string &propName, const std::string &newName)
 
VarPtr Ptr () const override
 
bool IsNull () const override
 
bool Accept (Visitor &v, const char *name=nullptr) const override
 
vl::VarPtr Copy () const
 
bool ForeachProp (const std::function< bool(const std::string &, const vl::Var &)> &pred, bool recursive=false) const
 
bool ForeachProp (const std::function< bool(const std::string &, vl::Var &)> &pred, bool recursive=false)
 
void SetPrototype (const vl::Object &proto)
 
Object & GetPrototype () const
 
std::string ToStr () const override
 
void Attach (Observer *o, const std::string &title="")
 
void Detach (Observer *o)
 
const void * Data () const override
 
Observable * Observable ()
 
void Clear (bool recursive=false)
 
- Public Member Functions inherited from vl::AbstractVar
virtual const BoolVar & AsBool () const
 
virtual const NumberVar & AsNumber () const
 
virtual const StringVar & AsString () const
 
virtual const ObjectVar & AsObject () const
 
virtual const ListVar & AsList () const
 
virtual BoolVar & AsBool ()
 
virtual NumberVar & AsNumber ()
 
virtual StringVar & AsString ()
 
virtual ObjectVar & AsObject ()
 
virtual ListVar & AsList ()
 
virtual bool IsBool () const
 
virtual bool IsNumber () const
 
virtual bool IsString () const
 
virtual bool IsObject () const
 
virtual bool IsList () const
 
virtual bool IsNull () const
 
virtual Type GetType () const
 
virtual VarPtr Ptr () const =0
 
virtual bool Accept (Visitor &v, const char *name=nullptr) const
 
virtual operator bool () const
 
virtual std::string ToStr () const
 
virtual const void * Data () const
 
virtual vl::VarPtr Copy () const
 

Protected Member Functions

std::shared_ptr< std::string > getRelativePathRecursive (const std::string &propName, const std::string &path="") const
 
bool overriddenRecursive (const std::string &propName, int count=0) const
 
- Protected Member Functions inherited from vl::AbstractVar
template<typename T >
VarPtr PtrImpl (const T *body) const
 

Protected Attributes

ObjectDataType mData = std::make_shared<PropsDataType>()
 

Constructor & Destructor Documentation

◆ ObjectVar() [1/2]

vl::ObjectVar::ObjectVar ( )
default

◆ ObjectVar() [2/2]

vl::ObjectVar::ObjectVar ( const ObjectDataType &  dataPtr)

Member Function Documentation

◆ Accept()

bool vl::ObjectVar::Accept ( Visitor &  v,
const char *  name = nullptr 
) const
overridevirtual

Reimplemented from vl::AbstractVar.

◆ AsObject() [1/2]

const ObjectVar & vl::ObjectVar::AsObject ( ) const
overridevirtual

Reimplemented from vl::AbstractVar.

◆ AsObject() [2/2]

ObjectVar & vl::ObjectVar::AsObject ( )
overridevirtual

Reimplemented from vl::AbstractVar.

◆ Attach()

void vl::ObjectVar::Attach ( Observer *  o,
const std::string &  title = "" 
)
inline

◆ Clear()

void vl::ObjectVar::Clear ( bool  recursive = false)

◆ Copy()

VarPtr vl::ObjectVar::Copy ( ) const
virtual

Reimplemented from vl::AbstractVar.

◆ Data()

const void * vl::ObjectVar::Data ( ) const
inlineoverridevirtual

Reimplemented from vl::AbstractVar.

◆ Detach()

void vl::ObjectVar::Detach ( Observer *  o)
inline

◆ ForeachProp() [1/2]

bool vl::ObjectVar::ForeachProp ( const std::function< bool(const std::string &, const vl::Var &)> &  pred,
bool  recursive = false 
) const

◆ ForeachProp() [2/2]

bool vl::ObjectVar::ForeachProp ( const std::function< bool(const std::string &, vl::Var &)> &  pred,
bool  recursive = false 
)

◆ Get() [1/2]

Var & vl::ObjectVar::Get ( const std::string &  propName)

◆ Get() [2/2]

const Var & vl::ObjectVar::Get ( const std::string &  propName) const

◆ GetPrototype()

Object & vl::ObjectVar::GetPrototype ( ) const

◆ GetRelativePath()

std::shared_ptr< std::string > vl::ObjectVar::GetRelativePath ( const std::string &  propName) const

◆ getRelativePathRecursive()

std::shared_ptr< std::string > vl::ObjectVar::getRelativePathRecursive ( const std::string &  propName,
const std::string &  path = "" 
) const
protected

◆ GetType()

Type vl::ObjectVar::GetType ( ) const
overridevirtual

Reimplemented from vl::AbstractVar.

◆ Has()

bool vl::ObjectVar::Has ( const std::string &  propName) const

◆ HasOwn()

bool vl::ObjectVar::HasOwn ( const std::string &  propName) const

◆ IsNull()

bool vl::ObjectVar::IsNull ( ) const
inlineoverridevirtual

Reimplemented from vl::AbstractVar.

◆ IsObject()

bool vl::ObjectVar::IsObject ( ) const
inlineoverridevirtual

Reimplemented from vl::AbstractVar.

◆ Observable()

Observable * vl::ObjectVar::Observable ( )
inline

◆ operator bool()

vl::ObjectVar::operator bool ( ) const
overridevirtual

Reimplemented from vl::AbstractVar.

◆ operator==() [1/2]

bool vl::ObjectVar::operator== ( const ObjectVar &  right)

◆ operator==() [2/2]

bool vl::ObjectVar::operator== ( const ObjectVar &  right) const

◆ Overridden()

bool vl::ObjectVar::Overridden ( const std::string &  propName) const

◆ overriddenRecursive()

bool vl::ObjectVar::overriddenRecursive ( const std::string &  propName,
int  count = 0 
) const
protected

◆ PropCount()

int vl::ObjectVar::PropCount ( ) const

◆ Ptr()

VarPtr vl::ObjectVar::Ptr ( ) const
inlineoverridevirtual

Implements vl::AbstractVar.

◆ RemoveProperty()

bool vl::ObjectVar::RemoveProperty ( const std::string &  propName)

◆ RenameProperty()

bool vl::ObjectVar::RenameProperty ( const std::string &  propName,
const std::string &  newName 
)

◆ Set() [1/4]

Var & vl::ObjectVar::Set ( const std::string &  propName)

◆ Set() [2/4]

template<typename T >
Var & vl::ObjectVar::Set ( const std::string &  propName,
const T &  value 
)
inline

◆ Set() [3/4]

Var & vl::ObjectVar::Set ( const std::string &  propName,
const Var &  value 
)

◆ Set() [4/4]

Var & vl::ObjectVar::Set ( const std::string &  propName,
const VarPtr &  varPtr 
)

◆ SetPrototype()

void vl::ObjectVar::SetPrototype ( const vl::Object &  proto)

◆ Size()

int vl::ObjectVar::Size ( ) const

◆ ToStr()

std::string vl::ObjectVar::ToStr ( ) const
overridevirtual

Reimplemented from vl::AbstractVar.

Member Data Documentation

◆ mData

ObjectDataType vl::ObjectVar::mData = std::make_shared<PropsDataType>()
protected

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