YAMLAnchorReplayingFactory.java

package com.fasterxml.jackson.dataformat.yaml;

import java.io.CharArrayReader;
import java.io.InputStream;
import java.io.IOException;
import java.io.Reader;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.core.io.IOContext;

/**
 * A subclass of YAMLFactory with the only purpose to replace the YAMLParser by
 * the YAMLAnchorReplayingParser subclass.
 *
 * @since 2.19
 */
public class YAMLAnchorReplayingFactory extends YAMLFactory {
    private static final long serialVersionUID = 1L;

    public YAMLAnchorReplayingFactory() {
        super();
    }

    public YAMLAnchorReplayingFactory(ObjectCodec oc) {
        super(oc);
    }

    public YAMLAnchorReplayingFactory(YAMLFactory src, ObjectCodec oc) {
        super(src, oc);
    }

    protected YAMLAnchorReplayingFactory(YAMLFactoryBuilder b) {
        super(b);
    }

    @Override
    public YAMLAnchorReplayingFactory copy() {
        _checkInvalidCopy(YAMLAnchorReplayingFactory.class);
        return new YAMLAnchorReplayingFactory(this, (ObjectCodec) null);
    }

    @Override
    protected Object readResolve() {
        return new YAMLAnchorReplayingFactory(this, _objectCodec);
    }

    @Override
    protected YAMLParser _createParser(InputStream input, IOContext ctxt) throws IOException {
        return new YAMLAnchorReplayingParser(ctxt, _parserFeatures, _yamlParserFeatures,
                _loaderOptions, _objectCodec,
                _createReader(input, (JsonEncoding) null, ctxt));
    }

    @Override
    protected YAMLParser _createParser(Reader r, IOContext ctxt) throws IOException {
        return new YAMLAnchorReplayingParser(ctxt, _parserFeatures, _yamlParserFeatures,
                _loaderOptions, _objectCodec, r);
    }

    @Override
    protected YAMLParser _createParser(char[] data, int offset, int len, IOContext ctxt, boolean recyclable) throws IOException {
        return new YAMLAnchorReplayingParser(ctxt, _parserFeatures, _yamlParserFeatures,
                _loaderOptions, _objectCodec, new CharArrayReader(data, offset, len));
    }

    @Override
    protected YAMLParser _createParser(byte[] data, int offset, int len, IOContext ctxt) throws IOException {
        return new YAMLAnchorReplayingParser(ctxt, _parserFeatures, _yamlParserFeatures,
                _loaderOptions, _objectCodec, _createReader(data, offset, len, (JsonEncoding) null, ctxt));
    }
}