|
15 | 15 | import com.fasterxml.jackson.core.io.CharacterEscapes;
|
16 | 16 | import com.fasterxml.jackson.core.type.WritableTypeId;
|
17 | 17 | import com.fasterxml.jackson.core.type.WritableTypeId.Inclusion;
|
| 18 | +import com.fasterxml.jackson.core.util.JacksonFeatureSet; |
18 | 19 | import com.fasterxml.jackson.core.util.VersionUtil;
|
19 | 20 |
|
20 | 21 | import static com.fasterxml.jackson.core.JsonTokenId.*;
|
|
29 | 30 | public abstract class JsonGenerator
|
30 | 31 | implements Closeable, Flushable, Versioned
|
31 | 32 | {
|
| 33 | + /** |
| 34 | + * Default set of {@link StreamReadCapability}ies that may be used as |
| 35 | + * basis for format-specific readers (or as bogus instance if non-null |
| 36 | + * set needs to be passed). |
| 37 | + * |
| 38 | + * @since 2.12 |
| 39 | + */ |
| 40 | + protected final static JacksonFeatureSet<StreamWriteCapability> DEFAULT_WRITE_CAPABILITIES |
| 41 | + = JacksonFeatureSet.fromDefaults(StreamWriteCapability.values()); |
| 42 | + |
| 43 | + /** |
| 44 | + * Default set of {@link StreamReadCapability}ies for typical textual formats, |
| 45 | + * to use either as-is, or as a base with possible differences. |
| 46 | + * |
| 47 | + * @since 2.12 |
| 48 | + */ |
| 49 | + protected final static JacksonFeatureSet<StreamWriteCapability> DEFAULT_TEXTUAL_WRITE_CAPABILITIES |
| 50 | + = DEFAULT_WRITE_CAPABILITIES.with(StreamWriteCapability.CAN_WRITE_FORMATTED_NUMBERS); |
| 51 | + |
| 52 | + /** |
| 53 | + * Default set of {@link StreamReadCapability}ies for typical binary formats, |
| 54 | + * to use either as-is, or as a base with possible differences. |
| 55 | + * |
| 56 | + * @since 2.12 |
| 57 | + */ |
| 58 | + protected final static JacksonFeatureSet<StreamWriteCapability> DEFAULT_BINARY_WRITE_CAPABILITIES |
| 59 | + = DEFAULT_WRITE_CAPABILITIES.with(StreamWriteCapability.CAN_WRITE_BINARY_NATIVELY); |
| 60 | + |
32 | 61 | /**
|
33 | 62 | * Enumeration that defines all togglable features for generators.
|
34 | 63 | */
|
@@ -634,7 +663,7 @@ public void setCurrentValue(Object v) {
|
634 | 663 | ctxt.setCurrentValue(v);
|
635 | 664 | }
|
636 | 665 | }
|
637 |
| - |
| 666 | + |
638 | 667 | /*
|
639 | 668 | /**********************************************************
|
640 | 669 | /* Public API, capability introspection methods
|
@@ -719,6 +748,18 @@ public void setCurrentValue(Object v) {
|
719 | 748 | */
|
720 | 749 | public boolean canWriteFormattedNumbers() { return false; }
|
721 | 750 |
|
| 751 | + /** |
| 752 | + * Accessor for getting metadata on capabilities of this parser, based on |
| 753 | + * underlying data format being read (directly or indirectly). |
| 754 | + * |
| 755 | + * @return Set of read capabilities for content to read via this parser |
| 756 | + * |
| 757 | + * @since 2.12 |
| 758 | + */ |
| 759 | + public JacksonFeatureSet<StreamWriteCapability> getWriteCapabilities() { |
| 760 | + return DEFAULT_WRITE_CAPABILITIES; |
| 761 | + } |
| 762 | + |
722 | 763 | /*
|
723 | 764 | /**********************************************************
|
724 | 765 | /* Public API, write methods, structural
|
|
0 commit comments