package com.fasterxml.jackson.dataformat.javaprop.impl;

import java.io.*;
import java.util.Properties;

import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.io.IOContext;
import com.fasterxml.jackson.dataformat.javaprop.JavaPropsGenerator;

public class PropertiesBackedGenerator extends JavaPropsGenerator
{
    /*
    /**********************************************************
    /* Configuration
    /**********************************************************
     */

    
Underlying Properties that we will update with logical properties written out.
/** * Underlying {@link Properties} that we will update with logical * properties written out. */
final protected Properties _props; /* /********************************************************** /* Life-cycle /********************************************************** */ public PropertiesBackedGenerator(IOContext ctxt, Properties props, int stdFeatures, ObjectCodec codec) { super(ctxt, stdFeatures, codec); _props = props; } /* /********************************************************** /* Overridden methods, configuration /********************************************************** */ @Override public Object getOutputTarget() { return _props; } /* /********************************************************** /* Overridden methods: low-level I/O /********************************************************** */ @Override public void close() throws IOException { } @Override public void flush() throws IOException { } /* /********************************************************** /* Implementations for methods from base class /********************************************************** */ @Override protected void _releaseBuffers() { } /* /********************************************************** /* Internal methods; escaping writes /********************************************************** */ @Override protected void _writeEscapedEntry(char[] text, int offset, int len) throws IOException { _writeEscapedEntry(new String(text, offset, len)); } @Override protected void _writeEscapedEntry(String value) throws IOException { _props.put(_basePath.toString(), value); } @Override protected void _writeUnescapedEntry(String value) throws IOException { _props.put(_basePath.toString(), value); } /* /********************************************************** /* Internal methods; raw writes /********************************************************** */ /* 02-Jun-2016, tatu: no way to support raw writes, so two things we * could do instead: throw exception, or just quietly ignore. Typically * I favor throwing exception, but here it's probably better to simply * ignore. */ @Override protected void _writeRaw(char c) throws IOException { } @Override protected void _writeRaw(String text) throws IOException { } @Override protected void _writeRaw(StringBuilder text) throws IOException { } @Override protected void _writeRaw(char[] text, int offset, int len) throws IOException { } protected void _writeRawLong(String text) throws IOException { } protected void _writeRawLong(StringBuilder text) throws IOException { } }