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 ObjectVarAsObject () const override
 
ObjectVarAsObject () override
 
Type GetType () const override
 
int Size () const
 
VarSet (const std::string &propName)
 
VarSet (const std::string &propName, const Var &value)
 
VarSet (const std::string &propName, const VarPtr &varPtr)
 
template<typename T >
VarSet (const std::string &propName, const T &value)
 
const VarGet (const std::string &propName) const
 
VarGet (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)
 
ObjectGetPrototype () const
 
std::string ToStr () const override
 
void Attach (Observer *o, const std::string &title="")
 
void Detach (Observer *o)
 
const void * Data () const override
 
ObservableObservable ()
 
void Clear (bool recursive=false)
 
- Public Member Functions inherited from vl::AbstractVar
virtual const BoolVarAsBool () const
 
virtual const NumberVarAsNumber () const
 
virtual const StringVarAsString () const
 
virtual const ObjectVarAsObject () const
 
virtual const ListVarAsList () const
 
virtual BoolVarAsBool ()
 
virtual NumberVarAsNumber ()
 
virtual StringVarAsString ()
 
virtual ObjectVarAsObject ()
 
virtual ListVarAsList ()
 
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: