001package org.javasimon.console.text;
002
003/**
004 * Stringifier with particular meaning: do not stringify this value.
005 * @author gquintana
006 */
007public class NoneStringifier<T> implements Stringifier<T> {
008        private NoneStringifier() {
009        }
010        public String toString(T value) {
011                throw new UnsupportedOperationException("Do not stringify");
012        }
013        private static final NoneStringifier INSTANCE=new NoneStringifier();
014        /**
015         * Get unique instance of the NoneStringifier
016         */
017        public static <T> NoneStringifier<T> getInstance() {
018                return (NoneStringifier<T>) INSTANCE;
019        }
020        /**
021         * Check whether stringifier is the NoneStringifier
022         * @param stringifier Stringifier to compare with NoneStringifier
023         * @return null when stringifier==NoneStringifier, else given stringifier
024         */
025        public static <T> Stringifier<T> checkInstance(Stringifier<T> stringifier) {
026                return INSTANCE==stringifier?null:stringifier;
027        }
028}