[DEV] add capabilities at the ejson parser

This commit is contained in:
Edouard DUPIN 2013-08-20 22:18:46 +02:00
parent 2627da57d8
commit 3c102ab263
5 changed files with 25 additions and 2 deletions

View File

@ -47,7 +47,8 @@ namespace ejson
private:
etk::Vector<ejson::Value*> m_value; //!< vector of sub elements
public:
esize_t Size(void) { return m_value.Size(); };
ejson::Value* Get(esize_t _id) { return m_value[_id]; };
public:
/**
* @brief Get the node type.

View File

@ -212,3 +212,16 @@ ejson::Array* ejson::Object::GetSubArray(const etk::UString& _named) const
}
return tmp->ToArray();
}
void ejson::Object::AddSub(const etk::UString& _name, ejson::Value* _value)
{
if (NULL == _value) {
return;
}
if (_name.Size()==0) {
return;
}
m_value.Add(_name, _value);
}

View File

@ -52,6 +52,8 @@ namespace ejson
ejson::Object* GetSubObject(const etk::UString& _named) const;
ejson::String* GetSubString(const etk::UString& _named) const;
ejson::Array* GetSubArray(const etk::UString& _named) const;
public:
void AddSub(const etk::UString& _name, ejson::Value* _value);
public:
/**
* @brief Get the node type.

View File

@ -25,6 +25,7 @@ namespace ejson
* @brief basic element of a xml structure
*/
String(bool _quoted=false) : m_quoted(_quoted) { };
String(const etk::UString& _value) : m_quoted(false), m_value(_value) { };
/**
* @brief destructor
*/
@ -53,7 +54,7 @@ namespace ejson
* @brief Set the value of the node.
* @param[in] _value New value of the node.
*/
void SetValue(etk::UString _value) { m_value = _value; };
void SetValue(const etk::UString& _value) { m_value = _value; };
/**
* @brief Get the current element Value.
* @return the reference of the string value.

View File

@ -159,6 +159,12 @@ namespace ejson
*/
int32_t CountWhiteChar(const etk::UString& _data, int32_t _pos, ejson::filePos& _filePos) const;
public:
/**
* @brief Cast the element in a Value if it is possible.
* @return pointer on the class or NULL.
*/
virtual ejson::Value* ToValue(void) { return this; };
virtual const ejson::Value* ToValue(void) const { return this; };
/**
* @brief Cast the element in a Document if it is possible.
* @return pointer on the class or NULL.