001/**
002 *   Copyright (C) 2015 Typesafe Inc. <http://typesafe.com>
003 */
004package com.typesafe.config.parser;
005
006/**
007 * A node in the syntax tree for a HOCON or JSON document.
008 *
009 * <p>
010 * Note: at present there is no way to obtain an instance of this interface, so
011 * please ignore it. A future release will make syntax tree nodes available in
012 * the public API. If you are interested in working on it, please see: <a
013 * href="https://github.com/typesafehub/config/issues/300"
014 * >https://github.com/typesafehub/config/issues/300</a>
015 *
016 * <p>
017 * Because this object is immutable, it is safe to use from multiple threads and
018 * there's no need for "defensive copies."
019 *
020 * <p>
021 * <em>Do not implement interface {@code ConfigNode}</em>; it should only be
022 * implemented by the config library. Arbitrary implementations will not work
023 * because the library internals assume a specific concrete implementation.
024 * Also, this interface is likely to grow new methods over time, so third-party
025 * implementations will break.
026 */
027public interface ConfigNode {
028    /**
029     * The original text of the input which was used to form this particular
030     * node.
031     *
032     * @return the original text used to form this node as a String
033     */
034    public String render();
035}