Class IniSerializer
- All Implemented Interfaces:
Function<Object,,String> ThrowingFunction<Object,,String> IniMetaProvider,RecordWritable
Converts Java POJOs to INI format (section/key-value structure).
Media types
Produces:
Accepts:
Bean-to-INI mapping
- Simple properties → key-value pairs in the default section
- Nested beans →
[sectionName] sections - Deeply nested beans →
[path/to/section] section paths - Collections and complex values → JSON5-encoded inline values
- Maps with string keys →
[sectionName] sections - Null values → unquoted
null token
Example:
Example output (Map of name/age):
Complex (nested object + array):
Limitations
- Top-level collections, arrays, and scalar values are not supported. The root must be a bean or
Map<String,?> . ThrowsSerializeExceptionfor unsupported root types. ReaderandInputStreampassthrough is not supported.
Notes:
- This class is thread safe and reusable.
- Complex values (collections, maps with complex values) are embedded as JSON5 inline strings and remain fully round-trippable.
See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
WriterSerializer.DefaultBuilderNested classes/interfaces inherited from class org.apache.juneau.marshall.serializer.Serializer
Serializer.Null -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final IniSerializerDefault serializer.static final IniSerializerDefault serializer with blank lines between sections.protected final charKey-value separator.protected final booleanWhether to add spaces around the separator.protected final booleanWhether to emit property descriptions as comments.Fields inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
maxIndent, quoteChar, quoteCharOverride, useWhitespaceFields inherited from class org.apache.juneau.marshall.serializer.Serializer
accept, addBeanTypes, addRootType, keepNullProperties, listener, nonDefault, produces, sortCollections, sortMaps, trimEmptyCollections, trimEmptyMaps, trimStringsFields inherited from class org.apache.juneau.marshall.MarshallingContextable
marshallingContextFields inherited from class org.apache.juneau.marshall.Context
CONTEXT_APPLY_FILTER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy()Creates a builder from this context object.static IniSerializer.Buildercreate()Creates a new builder.Create a session builder based on the properties defined on this context.Returns the INI-specific metadata on the specified bean property.getIniClassMeta(ClassMeta<?> cm) Returns the INI-specific metadata on the specified class.booleanStreaming-quality signal queryable before opening a cursor.Returns the properties on this bean as a map for debugging.writeRecords(Object output) Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).Methods inherited from class org.apache.juneau.marshall.serializer.WriterSerializer
applyThrows, getMaxIndent, getQuoteChar, getSession, getStreamCharset, isUseWhitespace, isWriterSerializer, println, quoteChar, toString, writeMethods inherited from class org.apache.juneau.marshall.serializer.Serializer
createSerializerBuilder, doWrite, forEachAcceptMediaType, getListener, getMediaTypeRanges, getPrimaryMediaType, getResponseContentType, getResponseHeaders, getUriContext, getUriRelativity, getUriResolution, isAddBeanTypes, isAddRootType, isKeepNullProperties, isNonDefault, isSortCollections, isSortMaps, isTrimEmptyCollections, isTrimEmptyMaps, isTrimStrings, write, writeToStringMethods inherited from class org.apache.juneau.marshall.MarshallingTraverseContext
getDetectRecursions, getIgnoreRecursions, getInitialDepth, getMaxDepth, isDetectRecursions, isIgnoreRecursions, shouldDetectRecursionsMethods inherited from class org.apache.juneau.marshall.MarshallingContextable
getDurationFormat, getMarshallingContext, getPeriodFormatMethods inherited from class org.apache.juneau.marshall.Context
createBuilder, getAnnotationProvider, init, isDebug, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.juneau.commons.function.ThrowingFunction
apply
-
Field Details
-
DEFAULT
Default serializer. -
DEFAULT_READABLE
Default serializer with blank lines between sections. -
kvSeparator
Key-value separator. -
spacedSeparator
Whether to add spaces around the separator. -
useComments
Whether to emit property descriptions as comments.
-
-
Constructor Details
-
IniSerializer
Constructor.- Parameters:
builder- The builder.
-
-
Method Details
-
create
Creates a new builder.- Returns:
- A new builder.
-
createSession
Description copied from class:ContextCreate a session builder based on the properties defined on this context.Use this method for creating sessions where you want to override basic settings. Otherwise, use
Context.getSession()directly.- Overrides:
createSessionin classWriterSerializer- Returns:
- A new session builder.
-
copy
Description copied from class:ContextCreates a builder from this context object.Builders are used to define new contexts (e.g. serializers, parsers) based on existing configurations.
- Overrides:
copyin classWriterSerializer- Returns:
- A new Builder object.
-
getIniBeanPropertyMeta
Description copied from interface:IniMetaProviderReturns the INI-specific metadata on the specified bean property.- Specified by:
getIniBeanPropertyMetain interfaceIniMetaProvider- Parameters:
bpm- The bean property to return the metadata on.- Returns:
- The metadata.
-
getIniClassMeta
Description copied from interface:IniMetaProviderReturns the INI-specific metadata on the specified class.- Specified by:
getIniClassMetain interfaceIniMetaProvider- Parameters:
cm- The class to return the metadata on.- Returns:
- The metadata.
-
properties
Description copied from class:ContextReturns the properties on this bean as a map for debugging.- Overrides:
propertiesin classWriterSerializer- Returns:
- The properties on this bean as a map for debugging.
-
writeRecords
Convenience delegator that opens aRecordWriterover the output using default session arguments (mirrorsWriterSerializer.write(Object)).The real implementation lives on
IniSerializerSession.writeRecords(Object). Callers that need request-derived configuration should callcreateSession()and invokeIniSerializerSession.writeRecords(Object)on the built session instead.- Specified by:
writeRecordsin interfaceRecordWritable- Parameters:
output- The output.- Returns:
- A new
RecordWriter. - Throws:
IOException- If a problem occurred opening the underlying output.
-
isRecordStreaming
Description copied from interface:RecordWritableStreaming-quality signal queryable before opening a cursor.- Specified by:
isRecordStreamingin interfaceRecordWritable- Returns:
true ifRecordWritable.writeRecords(Object)returns an O(1)-memory streaming cursor;false for buffered (whole-value) formats backed byRecordAdapter.
-