All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.json.JSONMLParserConfiguration Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
package org.json;

/*
Public Domain.
*/
/**
 *  Configuration object for the XML to JSONML parser. The configuration is immutable.
 *
 * @deprecated
 */
@SuppressWarnings({ "" })
@Deprecated()
public class JSONMLParserConfiguration extends ParserConfiguration {

    /**
     * We can override the default maximum nesting depth if needed.
     */
    public static final int DEFAULT_MAXIMUM_NESTING_DEPTH = ParserConfiguration.DEFAULT_MAXIMUM_NESTING_DEPTH;

    /**
     * Original Configuration of the XML to JSONML Parser.
     */
    public static final JSONMLParserConfiguration ORIGINAL = new JSONMLParserConfiguration();

    /**
     * Original configuration of the XML to JSONML Parser except that values are kept as strings.
     */
    public static final JSONMLParserConfiguration KEEP_STRINGS = new JSONMLParserConfiguration().withKeepStrings(true);

    /**
     * Default parser configuration. Does not keep strings (tries to implicitly convert values).
     */
    public JSONMLParserConfiguration() {
        super();
        this.maxNestingDepth = DEFAULT_MAXIMUM_NESTING_DEPTH;
    }

    /**
     * Configure the parser string processing and use the default CDATA Tag Name as "content".
     * @param keepStrings true to parse all values as string.
     *      false to try and convert XML string values into a JSON value.
     * @param maxNestingDepth int to limit the nesting depth
     */
    protected JSONMLParserConfiguration(final boolean keepStrings, final int maxNestingDepth) {
        super(keepStrings, maxNestingDepth);
    }

    /**
     * Provides a new instance of the same configuration.
     */
    @Override
    protected JSONMLParserConfiguration clone() {
        // future modifications to this method should always ensure a "deep"
        // clone in the case of collections. i.e. if a Map is added as a configuration
        // item, a new map instance should be created and if possible each value in the
        // map should be cloned as well. If the values of the map are known to also
        // be immutable, then a shallow clone of the map is acceptable.
        return new JSONMLParserConfiguration(this.keepStrings, this.maxNestingDepth);
    }

    @Override
    public JSONMLParserConfiguration withKeepStrings(final boolean newVal) {
        return super.withKeepStrings(newVal);
    }

    @Override
    public JSONMLParserConfiguration withMaxNestingDepth(int maxNestingDepth) {
        return super.withMaxNestingDepth(maxNestingDepth);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy