class ExtractValueConsumer
            implements ValueConsumer {
        @Override
        public void accept(byte[] bytes, int off, int len) {
            text.bytes = bytes;
            text.off = off;
            text.length = len;
        }

        @Override
        public void acceptNull() {
            text.set(BYTES_NULL);
        }

        @Override
        public void accept(boolean val) {
            text.set(val ? BYTES_TRUE : BYTES_FALSE);
        }

        @Override
        public void accept(int val) {
            int size = (val < 0) ? IOUtils.stringSize(-val) + 1 : IOUtils.stringSize(val);
            text.setCapacity(size, false);
            byte[] bytes = text.bytes;
            IOUtils.getChars(val, size, bytes);
            text.length = size;
        }

        @Override
        public void accept(long val) {
            int size = (val < 0) ? IOUtils.stringSize(-val) + 1 : IOUtils.stringSize(val);
            text.setCapacity(size, false);
            byte[] bytes = text.bytes;
            IOUtils.getChars(val, size, bytes);
            text.length = size;
        }

        @Override
        public void accept(Number val) {<FILL_FUNCTION_BODY>}

        @Override
        public void accept(String val) {
            text.set(val);
        }

        @Override
        public void accept(Map object) {
            text.set(JSON.toJSONBytes(object));
        }

        @Override
        public void accept(List array) {
            text.set(JSON.toJSONBytes(array));
        }
    }

            if (val instanceof Integer) {
                accept(val.intValue());
                return;
            }

            if (val instanceof Long) {
                accept(val.longValue());
                return;
            }

            String str = val.toString();
            text.set(str);
        
<no_super_class>