jhump commented on code in PR #3266:
URL: https://github.com/apache/avro/pull/3266#discussion_r1929243692
##########
lang/c++/include/avro/CustomAttributes.hh:
##########
@@ -19,27 +19,76 @@
#ifndef avro_CustomAttributes_hh__
#define avro_CustomAttributes_hh__
-#include "Config.hh"
#include <iostream>
#include <map>
#include <optional>
#include <string>
+#include "Config.hh"
+
namespace avro {
// CustomAttributes class stores avro custom attributes.
// Each attribute is represented by a unique name and value.
// User is supposed to create CustomAttributes object and then add it to
Schema.
class AVRO_DECL CustomAttributes {
+
public:
- // Retrieves the custom attribute json entity for that attributeName,
returns an
- // null if the attribute doesn't exist.
+ enum ValueMode {
+ // When a CustomAttributes is created using this mode, all values are
strings.
+ // The value should not be quoted, but any interior quotes and special
+ // characters (such as newlines) must be escaped.
+ string,
+ // When a CustomAttributes is created using this mode, all values are
JSON
+ // values. String values must be quoted and escaped.
+ json
+ };
+
+ // Creates a new CustomAttributes object where all values are strings.
+ // All values passed to addAttribute() and returned from getAttribute() or
the
+ // attributes() map will not be enclosed in quotes. However, any internal
quotes
+ // WILL be escaped and other special characters MAY be escaped.
+ //
+ // To support non-string values, use
CustomAttributes(CustomAttributes::json) instead.
+ CustomAttributes() : CustomAttributes(string) {}
+
+ // Creates a new CustomAttributes object.
+ //
+ // If the given mode is string, all values must be strings. All values
passed to
Review Comment:
Trimmed away redundant comments in 0f0efd2.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]