RStudio Launcher Plugin SDK  1.1.3
A software development kit for creating plugins that work the the RStudio Launcher.
Classes | Public Types | Public Member Functions | Friends | List of all members
rstudio::launcher_plugins::json::Array Class Reference

Class which represents a JSON array. More...

#include <Json.hpp>

Inheritance diagram for rstudio::launcher_plugins::json::Array:
rstudio::launcher_plugins::json::Value

Classes

class  Iterator
 Class which allows iterating over the elements of a JSON array. More...
 

Public Types

typedef Value value_type
 Typedef required for the inheritance of std::iterator with a value_type of json::Value.
 
typedef std::reverse_iterator< IteratorReverseIterator
 Reverse iterator for a JSON array.
 

Public Member Functions

 Array ()
 Constructs an empty JSON array.
 
 Array (const StringPairList &in_strPairs)
 Constructs a JSON array from a list of string pairs as an array of strings in the format "key=value". More...
 
 Array (const Array &in_other)
 Copy constructor. More...
 
 Array (Array &&in_other) noexcept
 Move constructor. More...
 
Arrayoperator= (const Array &in_other)
 Assignment operator. More...
 
Arrayoperator= (Array &&in_other) noexcept
 Move operator. More...
 
Value operator[] (size_t in_index) const
 Accessor operator. Gets the JSON value at the specified position in the array. More...
 
Iterator begin () const
 Gets an iterator pointing to the first member of this array. More...
 
Iterator end () const
 Gets an iterator after the last member of this array. More...
 
ReverseIterator rbegin () const
 Gets an iterator pointing to the last member of this array, which iterates in the reverse direction. More...
 
ReverseIterator rend () const
 Gets an iterator before the first member of this array, which can be compared with an other ReverseIterator to determine when reverse iteration has ended. More...
 
void clear ()
 Clears the JSON array.
 
Iterator erase (const Iterator &in_itr)
 Erases the member specified by the provided iterator. More...
 
Iterator erase (const Iterator &in_first, const Iterator &in_last)
 Erases a range of member specified by the provided iterators to the first and last members to erase. More...
 
Value getBack () const
 Gets the value at the back of the JSON array. More...
 
Value getFront () const
 Gets the value at the front of the JSON array. More...
 
Value getValueAt (size_t in_index) const
 Gets the value at the specified index of the JSON array. More...
 
size_t getSize () const
 Gets the number of values in the JSON array. More...
 
bool isEmpty () const
 Checks whether the JSON array is empty. More...
 
Error parse (const char *in_jsonStr) override
 Parses the JSON string into this array. More...
 
Error parse (const std::string &in_jsonStr) override
 Parses the JSON string into this array. More...
 
void push_back (const Value &in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (bool in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (double in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (float in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (int in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (int64_t in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (const char *in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (const std::string &in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (unsigned int in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (uint64_t in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (const Array &in_value)
 Pushes the value onto the end of the JSON array. More...
 
void push_back (const Object &in_value)
 Pushes the value onto the end of the JSON array. More...
 
bool toSetString (std::set< std::string > &out_set) const
 Converts this JSON array to a set of strings. More...
 
StringPairList toStringPairList () const
 Converts this array into a vector of string pairs. Elements of the form "key=value" will be parsed into the pair <"key", "value">. Elements which are not in that format (e.g. "value") will be parsed as <"value", "">. Any elements of the array which are not strings will be skipped. More...
 
bool toVectorInt (std::vector< int > &out_set) const
 Converts this JSON array to a vector of integers. More...
 
bool toVectorString (std::vector< std::string > &out_set) const
 Converts this JSON array to a vector of strings. More...
 
- Public Member Functions inherited from rstudio::launcher_plugins::json::Value
 Value ()
 Constructor.
 
 Value (ValueImplPtr in_valueImpl)
 Constructor. Creates a JSON value from a Value::Impl object. More...
 
 Value (const Value &in_other)
 Copy constructor. More...
 
 Value (Value &&in_other) noexcept
 Move constructor. More...
 
 Value (bool in_value)
 Conversion constructor. More...
 
 Value (double in_value)
 Conversion constructor. More...
 
 Value (float in_value)
 Conversion constructor. More...
 
 Value (int in_value)
 Conversion constructor. More...
 
 Value (int64_t in_value)
 Conversion constructor. More...
 
 Value (const char *in_value)
 Conversion constructor. More...
 
 Value (const std::string &in_value)
 Conversion constructor. More...
 
 Value (unsigned int in_value)
 Conversion constructor. More...
 
 Value (uint64_t in_value)
 Conversion constructor. More...
 
virtual ~Value ()=default
 Virtual destructor.
 
Valueoperator= (const Value &in_other)
 Assignment operator from Value. More...
 
Valueoperator= (Value &&in_other) noexcept
 Move operator. More...
 
Valueoperator= (bool in_value)
 Assignment operator. More...
 
Valueoperator= (double in_value)
 Assignment operator. More...
 
Valueoperator= (float in_value)
 Assignment operator. More...
 
Valueoperator= (int in_value)
 Assignment operator. More...
 
Valueoperator= (int64_t in_value)
 Assignment operator. More...
 
Valueoperator= (const char *in_value)
 Assignment operator. More...
 
Valueoperator= (const std::string &in_value)
 Assignment operator. More...
 
Valueoperator= (unsigned int in_value)
 Assignment operator. More...
 
Valueoperator= (uint64_t in_value)
 Assignment operator. More...
 
bool operator== (const Value &in_other) const
 Equality operator. More...
 
bool operator!= (const Value &in_other) const
 Inequality operator. More...
 
Value clone () const
 Makes a copy of this JSON value. More...
 
Error coerce (const std::string &in_schema, std::vector< std::string > &out_propViolations)
 Attempts to coerce a JSON object to conform to the given schema by discarding non-conforming properties. More...
 
Array getArray () const
 Gets the value as a JSON array. If the call to getType() does not return Type::ARRAY, this method is invalid. More...
 
bool getBool () const
 Gets the value as a bool. If the call to getType() does not return Type::BOOL, this method is invalid. More...
 
double getDouble () const
 Gets the value as a double. If the call to getType() does not return Type::DOUBLE, this method is invalid. More...
 
float getFloat () const
 Gets the value as a float. If the call to getType() does not return Type::FLOAT, this method is invalid. More...
 
int getInt () const
 Gets the value as an int. If the call to getType() does not return Type::INT, this method is invalid. More...
 
int64_t getInt64 () const
 Gets the value as an int64. If the call to getType() does not return Type::INT64, this method is invalid. More...
 
Object getObject () const
 Gets the value as a JSON object. IF the call to getType() does not return Type::OBJECT, this method is invalid. More...
 
std::string getString () const
 Gets the value as a string. If the call to getType() does not return Type::STRING, this method is invalid. More...
 
Type getType () const
 Gets the type of this value. More...
 
unsigned int getUInt () const
 Gets the value as an unsigned int. If the call to getType() does not return Type::UINT, this method is invalid. More...
 
uint64_t getUInt64 () const
 Gets the value as an uint64. If the call to getType() does not return Type::UINT64, this method is invalid. More...
 
template<typename T >
getValue () const
 Gets this JSON value as the specified type. More...
 
bool isArray () const
 Checks whether the value is a JSON array or not. More...
 
bool isBool () const
 Checks whether the value is a boolean value or not. More...
 
bool isDouble () const
 Checks whether the value is a double value or not. More...
 
bool isFloat () const
 Checks whether the value is a float value or not. More...
 
bool isInt () const
 Checks whether the value is an int 32 value or not. More...
 
bool isInt64 () const
 Checks whether the value is an int 64 value or not. More...
 
bool isObject () const
 Checks whether the value is a JSON object or not. More...
 
bool isString () const
 Checks whether the value is a string value or not. More...
 
bool isNull () const
 Checks whether the value is null or not. More...
 
bool isUInt () const
 Checks whether the value is an unsigned int 32 value or not. More...
 
bool isUInt64 () const
 Checks whether the value is an unsigned int 64 value or not. More...
 
Error parseAndValidate (const std::string &in_jsonStr, const std::string &in_schema)
 Parses the JSON string and validates it against the schema. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, const json::Value &in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, bool in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, double in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, float in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, int in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, int64_t in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, const char *in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, const std::string &in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, unsigned int in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, uint64_t in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, const Array &in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error setValueAtPointerPath (const std::string &in_pointerPath, const Object &in_value)
 Sets a value within the current value based on the specified JSON Pointer path. More...
 
Error validate (const std::string &in_schema) const
 Validates this JSON value against a schema. More...
 
std::string write () const
 Writes this value to a string. More...
 
void write (std::ostream &io_ostream) const
 Writes this value to the specified output stream. More...
 
std::string writeFormatted () const
 Writes and formats this value to a string. More...
 
void writeFormatted (std::ostream &io_ostream) const
 Writes and formats this value to the specified output stream. More...
 

Friends

class Value
 

Additional Inherited Members

- Protected Types inherited from rstudio::launcher_plugins::json::Value
typedef std::shared_ptr< Impl > ValueImplPtr
 Convenience typedef for the type of the private implementation of json::Value.
 
- Protected Member Functions inherited from rstudio::launcher_plugins::json::Value
 PRIVATE_IMPL_SHARED (m_impl)
 Private implementation of Value.
 

Detailed Description

Class which represents a JSON array.

Constructor & Destructor Documentation

◆ Array() [1/3]

rstudio::launcher_plugins::json::Array::Array ( const StringPairList &  in_strPairs)
explicit

Constructs a JSON array from a list of string pairs as an array of strings in the format "key=value".

Parameters
in_strPairsThe list of string pairs from which to construct this array.

◆ Array() [2/3]

rstudio::launcher_plugins::json::Array::Array ( const Array in_other)

Copy constructor.

Parameters
in_otherThe JSON array to copy from.

◆ Array() [3/3]

rstudio::launcher_plugins::json::Array::Array ( Array &&  in_other)
noexcept

Move constructor.

Parameters
in_otherThe JSON array to move to this Object.

Member Function Documentation

◆ begin()

Iterator rstudio::launcher_plugins::json::Array::begin ( ) const

Gets an iterator pointing to the first member of this array.

Returns
An iterator pointing to the first member of this array.

◆ end()

Iterator rstudio::launcher_plugins::json::Array::end ( ) const

Gets an iterator after the last member of this array.

Returns
An iterator after the last member of this array.

◆ erase() [1/2]

Iterator rstudio::launcher_plugins::json::Array::erase ( const Iterator in_first,
const Iterator in_last 
)

Erases a range of member specified by the provided iterators to the first and last members to erase.

Parameters
in_firstThe iterator pointing to the first member to erase.
in_lastThe iterator pointing to the last member to erase.
Returns
An iterator pointing to the member immediately after the last erased member.

◆ erase() [2/2]

Iterator rstudio::launcher_plugins::json::Array::erase ( const Iterator in_itr)

Erases the member specified by the provided iterator.

Parameters
in_itrThe iterator pointing to the member to erase.
Returns
An iterator pointing to the member immediately after the erased member.

◆ getBack()

Value rstudio::launcher_plugins::json::Array::getBack ( ) const

Gets the value at the back of the JSON array.

Returns
The value at the back of the JSON array or an empty value, if the array is empty.

◆ getFront()

Value rstudio::launcher_plugins::json::Array::getFront ( ) const

Gets the value at the front of the JSON array.

Returns
The value at the front of the JSON array or an empty value, if the array is empty.

◆ getSize()

size_t rstudio::launcher_plugins::json::Array::getSize ( ) const

Gets the number of values in the JSON array.

Returns
The number of values in the JSON array.

◆ getValueAt()

Value rstudio::launcher_plugins::json::Array::getValueAt ( size_t  in_index) const

Gets the value at the specified index of the JSON array.

Parameters
in_indexThe index of the value to retrieve.
Returns
The value at the specified index or an empty value if the index is out of bounds.

◆ isEmpty()

bool rstudio::launcher_plugins::json::Array::isEmpty ( ) const

Checks whether the JSON array is empty.

Returns
True if the JSON array has no members; false otherwise.

◆ operator=() [1/2]

Array& rstudio::launcher_plugins::json::Array::operator= ( Array &&  in_other)
noexcept

Move operator.

Parameters
in_otherThe JSON Array to move from.
Returns
A reference to this JSON Array.

◆ operator=() [2/2]

Array& rstudio::launcher_plugins::json::Array::operator= ( const Array in_other)

Assignment operator.

Parameters
in_otherThe JSON array to copy from.
Returns
A reference to this JSON array.

◆ operator[]()

Value rstudio::launcher_plugins::json::Array::operator[] ( size_t  in_index) const

Accessor operator. Gets the JSON value at the specified position in the array.

Parameters
in_indexThe position of the element to access.
Exceptions
std::out_of_rangeIf in_index is greater than or equal to the value returned by getSize().
Returns
The value of the member with the specified name, if it exists; empty JSON value otherwise.

◆ parse() [1/2]

Error rstudio::launcher_plugins::json::Array::parse ( const char *  in_jsonStr)
overridevirtual

Parses the JSON string into this array.

Parameters
in_jsonStrThe JSON string to parse.
Returns
Success on successful parse when the resulting JSON value is a JSON Array; error otherwise (e.g. ParseError).

Reimplemented from rstudio::launcher_plugins::json::Value.

◆ parse() [2/2]

Error rstudio::launcher_plugins::json::Array::parse ( const std::string &  in_jsonStr)
overridevirtual

Parses the JSON string into this array.

Parameters
in_jsonStrThe JSON string to parse.
Returns
Success on successful parse when the resulting JSON value is a JSON Array; error otherwise (e.g. ParseError).

Reimplemented from rstudio::launcher_plugins::json::Value.

◆ push_back() [1/12]

void rstudio::launcher_plugins::json::Array::push_back ( bool  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [2/12]

void rstudio::launcher_plugins::json::Array::push_back ( const Array in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [3/12]

void rstudio::launcher_plugins::json::Array::push_back ( const char *  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [4/12]

void rstudio::launcher_plugins::json::Array::push_back ( const Object in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [5/12]

void rstudio::launcher_plugins::json::Array::push_back ( const std::string &  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [6/12]

void rstudio::launcher_plugins::json::Array::push_back ( const Value in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [7/12]

void rstudio::launcher_plugins::json::Array::push_back ( double  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [8/12]

void rstudio::launcher_plugins::json::Array::push_back ( float  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [9/12]

void rstudio::launcher_plugins::json::Array::push_back ( int  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [10/12]

void rstudio::launcher_plugins::json::Array::push_back ( int64_t  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [11/12]

void rstudio::launcher_plugins::json::Array::push_back ( uint64_t  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ push_back() [12/12]

void rstudio::launcher_plugins::json::Array::push_back ( unsigned int  in_value)

Pushes the value onto the end of the JSON array.

MAINTENANCE NOTE: This method must be named in the STL style to work with STL functions and types such as std::back_inserter.

Parameters
in_valueThe value to push onto the end of the JSON array.

◆ rbegin()

ReverseIterator rstudio::launcher_plugins::json::Array::rbegin ( ) const

Gets an iterator pointing to the last member of this array, which iterates in the reverse direction.

Returns
A reverse iterator pointing to the last member of this array.

◆ rend()

ReverseIterator rstudio::launcher_plugins::json::Array::rend ( ) const

Gets an iterator before the first member of this array, which can be compared with an other ReverseIterator to determine when reverse iteration has ended.

Returns
An iterator before the first member of this array.

◆ toSetString()

bool rstudio::launcher_plugins::json::Array::toSetString ( std::set< std::string > &  out_set) const

Converts this JSON array to a set of strings.

Parameters
out_setThe set of strings.
Returns
True if this array could be converted to a set of strings; false otherwise.

◆ toStringPairList()

StringPairList rstudio::launcher_plugins::json::Array::toStringPairList ( ) const

Converts this array into a vector of string pairs. Elements of the form "key=value" will be parsed into the pair <"key", "value">. Elements which are not in that format (e.g. "value") will be parsed as <"value", "">. Any elements of the array which are not strings will be skipped.

Returns
The string elements of this JSON array as key value pairs.

◆ toVectorInt()

bool rstudio::launcher_plugins::json::Array::toVectorInt ( std::vector< int > &  out_set) const

Converts this JSON array to a vector of integers.

Parameters
out_setThe vector of integers.
Returns
True if this array could be converted to a vector of integers; false otherwise.

◆ toVectorString()

bool rstudio::launcher_plugins::json::Array::toVectorString ( std::vector< std::string > &  out_set) const

Converts this JSON array to a vector of strings.

Parameters
out_setThe vector of strings.
Returns
True if this array could be converted to a vector of strings; false otherwise.

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