001package org.javasimon.console.json;
002
003import java.io.IOException;
004import java.io.Writer;
005
006import org.javasimon.console.text.Stringifier;
007
008/**
009 * JavaScript simple type.
010 *
011 * @author gquintana
012 */
013public class SimpleJS<T> extends AnyJS {
014
015        /** Simple value. */
016        protected final T value;
017
018        /** Value formatter. */
019        private final Stringifier<T> valueStringifier;
020
021        /** Hidden constructor use factory methods instead. */
022        public SimpleJS(T value, Stringifier<T> valueStringifier) {
023                this.value = value;
024                this.valueStringifier = valueStringifier;
025        }
026
027        public T getValue() {
028                return value;
029        }
030
031        @Override
032        public void write(Writer writer) throws IOException {
033                writer.write(valueStringifier.toString(value));
034        }
035}