+ ~Literal();
+private:
+ Literal(const Literal &);
+ Literal &operator =(const Literal &);
+
+public:
+ Type GetType() const { return type; }
+ bool IsArray() const { return GetType() == ARRAY_VALUES || GetType() == ARRAY_PROPS; }
+ bool IsObject() const { return GetType() == OBJECT; }
+ int ArraySize() const { return GetType() == ARRAY_VALUES ? GetValues().size() : GetPropertyLists().size(); }
+
+ const std::vector<Value *> &GetValues() const;
+ const std::vector<PropertyList *> &GetPropertyLists() const;
+ bool GetBoolean() const;
+ int GetRed() const;
+ int GetGreen() const;
+ int GetBlue() const;
+ int GetAlpha() const;
+ int GetNumber() const;
+ const std::string &GetString() const;
+ int GetX() const;
+ int GetY() const;
+ const std::string &GetTypeName() const;
+ const PropertyList *GetProperties() const;