8#ifndef INCLUDED_BALJSN_ENCODEROPTIONS
9#define INCLUDED_BALJSN_ENCODEROPTIONS
235#include <balscm_version.h>
245#ifndef BDE_OMIT_INTERNAL_DEPRECATED
253#include <bsl_limits.h>
254#include <bsl_iosfwd.h>
258namespace baljsn {
class EncoderOptions; }
295 int d_initialIndentLevel;
298 int d_spacesPerLevel;
302 int d_datetimeFractionalSecondPrecision;
306 int d_maxFloatPrecision;
310 int d_maxDoublePrecision;
317 bool d_encodeEmptyArrays;
320 bool d_encodeNullElements;
330 bool d_encodeInfAndNaNAsStrings;
335 bool d_encodeQuotedDecimal64;
339 bool d_escapeForwardSlash;
343 bool d_encodeAnonSequenceInChoice;
354#ifndef BDE_OMIT_INTERNAL_DEPRECATED
464 template<
class MANIPULATOR>
473 template<
class MANIPULATOR>
482 template<
class MANIPULATOR>
550 bsl::ostream&
print(bsl::ostream& stream,
560 template<
class ACCESSOR>
568 template<
class ACCESSOR>
577 template<
class ACCESSOR>
580 int nameLength)
const;
671template <
class MANIPULATOR>
732 &d_encodeAnonSequenceInChoice,
741template <
class MANIPULATOR>
744 enum { NOT_FOUND = -1 };
782 &d_encodeAnonSequenceInChoice,
790template <
class MANIPULATOR>
792 MANIPULATOR& manipulator,
796 enum { NOT_FOUND = -1 };
800 if (0 == attributeInfo) {
812 d_initialIndentLevel = value;
820 d_spacesPerLevel = value;
826 d_encodingStyle = value;
839 d_encodeEmptyArrays = value;
845 d_encodeNullElements = value;
851 d_encodeInfAndNaNAsStrings = value;
860 d_datetimeFractionalSecondPrecision = value;
866 d_maxFloatPrecision = value;
872 d_maxDoublePrecision = value;
878 d_encodeQuotedDecimal64 = value;
884 d_escapeForwardSlash = value;
890 d_encodeAnonSequenceInChoice = value;
894template <
class ACCESSOR>
955 d_encodeAnonSequenceInChoice,
964template <
class ACCESSOR>
967 enum { NOT_FOUND = -1 };
1005 d_encodeAnonSequenceInChoice,
1013template <
class ACCESSOR>
1017 int nameLength)
const
1019 enum { NOT_FOUND = -1 };
1023 if (0 == attributeInfo) {
1033 return d_initialIndentLevel;
1039 return d_spacesPerLevel;
1051 return d_encodeEmptyArrays;
1057 return d_encodeNullElements;
1063 return d_encodeInfAndNaNAsStrings;
1069 return d_datetimeFractionalSecondPrecision;
1075 return d_maxFloatPrecision;
1081 return d_maxDoublePrecision;
1087 return d_encodeQuotedDecimal64;
1093 return d_escapeForwardSlash;
1099 return d_encodeAnonSequenceInChoice;
1111 return lhs.initialIndentLevel() == rhs.initialIndentLevel()
1112 && lhs.spacesPerLevel() == rhs.spacesPerLevel()
1113 && lhs.encodingStyle() == rhs.encodingStyle()
1114 && lhs.encodeEmptyArrays() == rhs.encodeEmptyArrays()
1115 && lhs.encodeNullElements() == rhs.encodeNullElements()
1116 && lhs.encodeInfAndNaNAsStrings() == rhs.encodeInfAndNaNAsStrings()
1117 && lhs.datetimeFractionalSecondPrecision() == rhs.datetimeFractionalSecondPrecision()
1118 && lhs.maxFloatPrecision() == rhs.maxFloatPrecision()
1119 && lhs.maxDoublePrecision() == rhs.maxDoublePrecision()
1120 && lhs.encodeQuotedDecimal64() == rhs.encodeQuotedDecimal64()
1121 && lhs.escapeForwardSlash() == rhs.escapeForwardSlash()
1122 && lhs.encodeAnonSequenceInChoice() ==
1123 rhs.encodeAnonSequenceInChoice();
1131 return lhs.initialIndentLevel() !=
rhs.initialIndentLevel()
1132 ||
lhs.spacesPerLevel() !=
rhs.spacesPerLevel()
1133 ||
lhs.encodingStyle() !=
rhs.encodingStyle()
1134 ||
lhs.encodeEmptyArrays() !=
rhs.encodeEmptyArrays()
1135 ||
lhs.encodeNullElements() !=
rhs.encodeNullElements()
1136 ||
lhs.encodeInfAndNaNAsStrings() !=
rhs.encodeInfAndNaNAsStrings()
1137 ||
lhs.datetimeFractionalSecondPrecision() !=
rhs.datetimeFractionalSecondPrecision()
1138 ||
lhs.maxFloatPrecision() !=
rhs.maxFloatPrecision()
1139 ||
lhs.maxDoublePrecision() !=
rhs.maxDoublePrecision()
1140 ||
lhs.encodeQuotedDecimal64() !=
rhs.encodeQuotedDecimal64()
1141 ||
lhs.escapeForwardSlash() !=
rhs.escapeForwardSlash()
1142 ||
lhs.encodeAnonSequenceInChoice() !=
1143 rhs.encodeAnonSequenceInChoice();
1148 bsl::ostream& stream,
1151 return rhs.print(stream, 0, -1);
Definition baljsn_encoderoptions.h:290
static const bool DEFAULT_INITIALIZER_ENCODE_ANON_SEQUENCE_IN_CHOICE
Definition baljsn_encoderoptions.h:419
static const int DEFAULT_INITIALIZER_DATETIME_FRACTIONAL_SECOND_PRECISION
Definition baljsn_encoderoptions.h:409
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
static const int DEFAULT_INITIALIZER_INITIAL_INDENT_LEVEL
Definition baljsn_encoderoptions.h:397
void setEncodingStyle(baljsn::EncodingStyle::Value value)
Definition baljsn_encoderoptions.h:824
static const int DEFAULT_INITIALIZER_MAX_DOUBLE_PRECISION
Definition baljsn_encoderoptions.h:413
static const baljsn::EncodingStyle::Value DEFAULT_INITIALIZER_ENCODING_STYLE
Definition baljsn_encoderoptions.h:401
void setMaxFloatPrecision(int value)
Definition baljsn_encoderoptions.h:864
int manipulateAttribute(MANIPULATOR &manipulator, int id)
Definition baljsn_encoderoptions.h:742
static const char CLASS_NAME[]
Definition baljsn_encoderoptions.h:395
static const bool DEFAULT_INITIALIZER_ENCODE_QUOTED_DECIMAL64
Definition baljsn_encoderoptions.h:415
static const bool DEFAULT_INITIALIZER_ENCODE_NULL_ELEMENTS
Definition baljsn_encoderoptions.h:405
~EncoderOptions()
Destroy this object.
static const bool DEFAULT_INITIALIZER_ENCODE_EMPTY_ARRAYS
Definition baljsn_encoderoptions.h:403
EncodingStyle
Definition baljsn_encoderoptions.h:351
@ e_COMPACT
Definition baljsn_encoderoptions.h:352
@ e_PRETTY
Definition baljsn_encoderoptions.h:353
@ BSLA_DEPRECATED
Definition baljsn_encoderoptions.h:355
bool encodeInfAndNaNAsStrings() const
Definition baljsn_encoderoptions.h:1061
void setEncodeAnonSequenceInChoice(bool value)
Definition baljsn_encoderoptions.h:888
void setEncodeQuotedDecimal64(bool value)
Definition baljsn_encoderoptions.h:876
int maxFloatPrecision() const
Definition baljsn_encoderoptions.h:1073
bool encodeNullElements() const
Definition baljsn_encoderoptions.h:1055
static const bool DEFAULT_INITIALIZER_ENCODE_INF_AND_NA_N_AS_STRINGS
Definition baljsn_encoderoptions.h:407
void setInitialIndentLevel(int value)
Definition baljsn_encoderoptions.h:808
bool encodeAnonSequenceInChoice() const
Definition baljsn_encoderoptions.h:1097
void setDatetimeFractionalSecondPrecision(int value)
Definition baljsn_encoderoptions.h:855
void setEncodeEmptyArrays(bool value)
Definition baljsn_encoderoptions.h:837
int maxDoublePrecision() const
Definition baljsn_encoderoptions.h:1079
EncoderOptions()
Create an object of type EncoderOptions having the default value.
void setSpacesPerLevel(int value)
Definition baljsn_encoderoptions.h:816
EncoderOptions & operator=(const EncoderOptions &rhs)
Assign to this object the value of the specified rhs object.
static const int DEFAULT_INITIALIZER_SPACES_PER_LEVEL
Definition baljsn_encoderoptions.h:399
int datetimeFractionalSecondPrecision() const
Definition baljsn_encoderoptions.h:1067
@ ATTRIBUTE_ID_ESCAPE_FORWARD_SLASH
Definition baljsn_encoderoptions.h:371
@ ATTRIBUTE_ID_ENCODE_ANON_SEQUENCE_IN_CHOICE
Definition baljsn_encoderoptions.h:372
@ ATTRIBUTE_ID_ENCODE_EMPTY_ARRAYS
Definition baljsn_encoderoptions.h:364
@ ATTRIBUTE_ID_INITIAL_INDENT_LEVEL
Definition baljsn_encoderoptions.h:361
@ ATTRIBUTE_ID_DATETIME_FRACTIONAL_SECOND_PRECISION
Definition baljsn_encoderoptions.h:367
@ ATTRIBUTE_ID_MAX_DOUBLE_PRECISION
Definition baljsn_encoderoptions.h:369
@ ATTRIBUTE_ID_ENCODE_INF_AND_NA_N_AS_STRINGS
Definition baljsn_encoderoptions.h:366
@ ATTRIBUTE_ID_ENCODE_NULL_ELEMENTS
Definition baljsn_encoderoptions.h:365
@ ATTRIBUTE_ID_ENCODE_QUOTED_DECIMAL64
Definition baljsn_encoderoptions.h:370
@ ATTRIBUTE_ID_SPACES_PER_LEVEL
Definition baljsn_encoderoptions.h:362
@ ATTRIBUTE_ID_MAX_FLOAT_PRECISION
Definition baljsn_encoderoptions.h:368
@ ATTRIBUTE_ID_ENCODING_STYLE
Definition baljsn_encoderoptions.h:363
void setEncodeNullElements(bool value)
Definition baljsn_encoderoptions.h:843
baljsn::EncoderOptions::EncodingStyle encodingStyle() const
Definition baljsn_encoderoptions.h:1043
@ ATTRIBUTE_INDEX_ENCODE_INF_AND_NA_N_AS_STRINGS
Definition baljsn_encoderoptions.h:385
@ ATTRIBUTE_INDEX_ENCODE_QUOTED_DECIMAL64
Definition baljsn_encoderoptions.h:389
@ ATTRIBUTE_INDEX_ESCAPE_FORWARD_SLASH
Definition baljsn_encoderoptions.h:390
@ ATTRIBUTE_INDEX_MAX_FLOAT_PRECISION
Definition baljsn_encoderoptions.h:387
@ ATTRIBUTE_INDEX_ENCODE_EMPTY_ARRAYS
Definition baljsn_encoderoptions.h:383
@ ATTRIBUTE_INDEX_ENCODING_STYLE
Definition baljsn_encoderoptions.h:382
@ ATTRIBUTE_INDEX_SPACES_PER_LEVEL
Definition baljsn_encoderoptions.h:381
@ ATTRIBUTE_INDEX_INITIAL_INDENT_LEVEL
Definition baljsn_encoderoptions.h:380
@ ATTRIBUTE_INDEX_ENCODE_NULL_ELEMENTS
Definition baljsn_encoderoptions.h:384
@ ATTRIBUTE_INDEX_MAX_DOUBLE_PRECISION
Definition baljsn_encoderoptions.h:388
@ ATTRIBUTE_INDEX_ENCODE_ANON_SEQUENCE_IN_CHOICE
Definition baljsn_encoderoptions.h:391
@ ATTRIBUTE_INDEX_DATETIME_FRACTIONAL_SECOND_PRECISION
Definition baljsn_encoderoptions.h:386
void setEscapeForwardSlash(bool value)
Definition baljsn_encoderoptions.h:882
@ NUM_ATTRIBUTES
Definition baljsn_encoderoptions.h:376
EncoderOptions(const EncoderOptions &original)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition baljsn_encoderoptions.h:421
int accessAttributes(ACCESSOR &accessor) const
Definition baljsn_encoderoptions.h:895
bool encodeQuotedDecimal64() const
Definition baljsn_encoderoptions.h:1085
int initialIndentLevel() const
Definition baljsn_encoderoptions.h:1031
static const int DEFAULT_INITIALIZER_MAX_FLOAT_PRECISION
Definition baljsn_encoderoptions.h:411
bool escapeForwardSlash() const
Return the value of the "EscapeForwardSlash" attribute of this object.
Definition baljsn_encoderoptions.h:1091
int accessAttribute(ACCESSOR &accessor, int id) const
Definition baljsn_encoderoptions.h:965
int spacesPerLevel() const
Definition baljsn_encoderoptions.h:1037
bool encodeEmptyArrays() const
Definition baljsn_encoderoptions.h:1049
int manipulateAttributes(MANIPULATOR &manipulator)
Definition baljsn_encoderoptions.h:672
static const bool DEFAULT_INITIALIZER_ESCAPE_FORWARD_SLASH
Definition baljsn_encoderoptions.h:417
void setEncodeInfAndNaNAsStrings(bool value)
Definition baljsn_encoderoptions.h:849
void setMaxDoublePrecision(int value)
Definition baljsn_encoderoptions.h:870
#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:294
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition baljsn_convertfromjsonoptions.h:112
bool operator==(const DatumDecoderOptions &lhs, const DatumDecoderOptions &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, const DatumDecoderOptions &rhs)
bool operator!=(const DatumDecoderOptions &lhs, const DatumDecoderOptions &rhs)
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
Value
Definition baljsn_encodingstyle.h:80
@ e_COMPACT
Definition baljsn_encodingstyle.h:81
@ e_PRETTY
Definition baljsn_encodingstyle.h:82
Definition bdlat_attributeinfo.h:139
int d_id
Definition bdlat_attributeinfo.h:142