// Path: aesh/src/main/java/org/aesh/extensions/highlight/Encoder.java
// public interface Encoder {
// 
//     void textToken(String text, TokenType type);
// 
//     void beginGroup(TokenType type);
// 
//     void endGroup(TokenType type);
// 
//     void beginLine(TokenType type);
// 
//     void endLine(TokenType type);
// 
//     public enum Type {
//         TERMINAL, DEBUG
//     }
// 
//     public abstract static class AbstractEncoder implements Encoder {
//         public static final String NEW_LINE = System.getProperty("line.separator");
// 
//         protected OutputStream out;
//         protected Theme theme;
//         protected Map<String, Object> options;
// 
//         public AbstractEncoder(OutputStream out, Theme theme, Map<String, Object> options) {
//             this.out = out;
//             this.theme = theme;
//             this.options = options;
//         }
// 
//         protected Color color(TokenType type) {
//             return this.theme.lookup(type);
//         }
// 
//         protected void write(String str) {
//             try {
//                 out.write(str.getBytes());
//             }
//             catch (IOException e) {
//                 throw new RuntimeException("Could not write to output", e);
//             }
//         }
// 
//         protected void write(byte[] bytes) {
//             try {
//                 out.write(bytes);
//             }
//             catch (IOException e) {
//                 throw new RuntimeException("Could not write to output", e);
//             }
//         }
//     }
// 
//     public static class Factory {
//         private static Factory factory;
// 
//         private Map<String, Class<? extends Encoder>> registry;
// 
//         private Factory() {
//             this.registry = new HashMap<>();
//         }
// 
//         private static Factory instance() {
//             if (factory == null) {
//                 factory = new Factory();
//             }
//             return factory;
//         }
// 
//         public static void registrer(String type, Class<? extends Encoder> encoder) {
//             instance().registry.put(type, encoder);
//         }
// 
//         public static Encoder create(String type, OutputStream out, Theme theme, Map<String, Object> options) {
//             Class<? extends Encoder> encoder = instance().registry.get(type);
//             if (encoder != null) {
//                 try {
//                     Constructor<? extends Encoder> constructor = encoder.getConstructor(OutputStream.class, Theme.class,
//                             Map.class);
//                     return constructor.newInstance(out, theme, options);
//                 }
//                 catch (Exception e) {
//                     throw new RuntimeException("Could not create new instance of " + encoder);
//                 }
//             }
//             throw new RuntimeException("No encoder found for type " + type);
//         }
//     }
// }
// 
// Path: aesh/src/main/java/org/aesh/extensions/highlight/TokenType.java
// public enum TokenType {
//     debug, // highlight for debugging (white on blue background)
// 
//     annotation, // Groovy, Java
//     attribute_name, // HTML, CSS
//     attribute_value, // HTML
//     binary, // Python, Ruby
//     char_, // most scanners, also inside of strings
//     class_, // lots of scanners, for different purposes also in CSS
//     class_variable, // Ruby, YAML
//     color, // CSS
//     comment, // most scanners
//     constant, // PHP, Ruby
//     content, // inside of strings, most scanners
//     decorator, // Python
//     definition, // CSS
//     delimiter, // inside strings, comments and other types
//     directive, // lots of scanners
//     doctype, // Goorvy, HTML, Ruby, YAML
//     docstring, // Python
//     done, // Taskpaper
//     entity, // HTML
//     error, // invalid token, most scanners
//     escape, // Ruby (string inline variables like //$foo, //@bar)
//     exception, // Java, PHP, Python
//     filename, // Diff
//     float_, // most scanners
//     function, // CSS, JavaScript, PHP
//     method, // groovy
//     global_variable, // Ruby, YAML
//     hex, // hexadecimal number; lots of scanners
//     id, // CSS
//     imaginary, // Python
//     important, // CSS, Taskpaper
//     include, // C, Groovy, Java, Python, Sass
//     inline, // nested code, eg. inline string evaluation; lots of scanners
//     inline_delimiter, // used instead of :inline > :delimiter FIXME: Why use inline_delimiter?
//     instance_variable, // Ruby
//     integer, // most scanners
//     key, // lots of scanners, used together with :value
//     keyword, // reserved word that's actually implemented; most scanners
//     label, // C, PHP
//     local_variable, // local and magic variables; some scanners
//     map, // Lua tables
//     modifier, // used inside on strings; lots of scanners
//     namespace, // Clojure, Java, Taskpaper
//     octal, // lots of scanners
//     predefined, // predefined function: lots of scanners
//     predefined_constant, // lots of scanners
//     predefined_type, // C, Java, PHP
//     preprocessor, // C, Delphi, HTML
//     pseudo_class, // CSS
//     regexp, // Groovy, JavaScript, Ruby
//     reserved, // most scanners
//     shell, // Ruby
//     string, // most scanners
//     symbol, // Clojure, Ruby, YAML
//     tag, // CSS, HTML
//     type, // CSS, Java, SQL, YAML
//     value, // used together with :key; CSS, JSON, YAML
//     variable, // Sass, SQL, YAML
// 
//     change, // Diff
//     delete, // Diff
//     head, // Diff, YAML
//     insert, // Diff
//     eyecatcher, // Diff
// 
//     ident, // almost all scanners
//     operator, // almost all scanners
// 
//     space, // almost all scanners
//     plain, // almost all scanners
//     unknown
// }


import org.aesh.extensions.highlight.Encoder;
import org.aesh.extensions.highlight.TokenType;
/*
 * JBoss, Home of Professional Open Source
 * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors
 * as indicated by the @authors tag. All rights reserved.
 * See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.aesh.extensions.text.highlight.encoder;



public class NullEncoder implements Encoder {

    @Override
// Path: aesh/src/main/java/org/aesh/extensions/highlight/Encoder.java
// public interface Encoder {
// 
//     void textToken(String text, TokenType type);
// 
//     void beginGroup(TokenType type);
// 
//     void endGroup(TokenType type);
// 
//     void beginLine(TokenType type);
// 
//     void endLine(TokenType type);
// 
//     public enum Type {
//         TERMINAL, DEBUG
//     }
// 
//     public abstract static class AbstractEncoder implements Encoder {
//         public static final String NEW_LINE = System.getProperty("line.separator");
// 
//         protected OutputStream out;
//         protected Theme theme;
//         protected Map<String, Object> options;
// 
//         public AbstractEncoder(OutputStream out, Theme theme, Map<String, Object> options) {
//             this.out = out;
//             this.theme = theme;
//             this.options = options;
//         }
// 
//         protected Color color(TokenType type) {
//             return this.theme.lookup(type);
//         }
// 
//         protected void write(String str) {
//             try {
//                 out.write(str.getBytes());
//             }
//             catch (IOException e) {
//                 throw new RuntimeException("Could not write to output", e);
//             }
//         }
// 
//         protected void write(byte[] bytes) {
//             try {
//                 out.write(bytes);
//             }
//             catch (IOException e) {
//                 throw new RuntimeException("Could not write to output", e);
//             }
//         }
//     }
// 
//     public static class Factory {
//         private static Factory factory;
// 
//         private Map<String, Class<? extends Encoder>> registry;
// 
//         private Factory() {
//             this.registry = new HashMap<>();
//         }
// 
//         private static Factory instance() {
//             if (factory == null) {
//                 factory = new Factory();
//             }
//             return factory;
//         }
// 
//         public static void registrer(String type, Class<? extends Encoder> encoder) {
//             instance().registry.put(type, encoder);
//         }
// 
//         public static Encoder create(String type, OutputStream out, Theme theme, Map<String, Object> options) {
//             Class<? extends Encoder> encoder = instance().registry.get(type);
//             if (encoder != null) {
//                 try {
//                     Constructor<? extends Encoder> constructor = encoder.getConstructor(OutputStream.class, Theme.class,
//                             Map.class);
//                     return constructor.newInstance(out, theme, options);
//                 }
//                 catch (Exception e) {
//                     throw new RuntimeException("Could not create new instance of " + encoder);
//                 }
//             }
//             throw new RuntimeException("No encoder found for type " + type);
//         }
//     }
// }
// 
// Path: aesh/src/main/java/org/aesh/extensions/highlight/TokenType.java
// public enum TokenType {
//     debug, // highlight for debugging (white on blue background)
// 
//     annotation, // Groovy, Java
//     attribute_name, // HTML, CSS
//     attribute_value, // HTML
//     binary, // Python, Ruby
//     char_, // most scanners, also inside of strings
//     class_, // lots of scanners, for different purposes also in CSS
//     class_variable, // Ruby, YAML
//     color, // CSS
//     comment, // most scanners
//     constant, // PHP, Ruby
//     content, // inside of strings, most scanners
//     decorator, // Python
//     definition, // CSS
//     delimiter, // inside strings, comments and other types
//     directive, // lots of scanners
//     doctype, // Goorvy, HTML, Ruby, YAML
//     docstring, // Python
//     done, // Taskpaper
//     entity, // HTML
//     error, // invalid token, most scanners
//     escape, // Ruby (string inline variables like //$foo, //@bar)
//     exception, // Java, PHP, Python
//     filename, // Diff
//     float_, // most scanners
//     function, // CSS, JavaScript, PHP
//     method, // groovy
//     global_variable, // Ruby, YAML
//     hex, // hexadecimal number; lots of scanners
//     id, // CSS
//     imaginary, // Python
//     important, // CSS, Taskpaper
//     include, // C, Groovy, Java, Python, Sass
//     inline, // nested code, eg. inline string evaluation; lots of scanners
//     inline_delimiter, // used instead of :inline > :delimiter FIXME: Why use inline_delimiter?
//     instance_variable, // Ruby
//     integer, // most scanners
//     key, // lots of scanners, used together with :value
//     keyword, // reserved word that's actually implemented; most scanners
//     label, // C, PHP
//     local_variable, // local and magic variables; some scanners
//     map, // Lua tables
//     modifier, // used inside on strings; lots of scanners
//     namespace, // Clojure, Java, Taskpaper
//     octal, // lots of scanners
//     predefined, // predefined function: lots of scanners
//     predefined_constant, // lots of scanners
//     predefined_type, // C, Java, PHP
//     preprocessor, // C, Delphi, HTML
//     pseudo_class, // CSS
//     regexp, // Groovy, JavaScript, Ruby
//     reserved, // most scanners
//     shell, // Ruby
//     string, // most scanners
//     symbol, // Clojure, Ruby, YAML
//     tag, // CSS, HTML
//     type, // CSS, Java, SQL, YAML
//     value, // used together with :key; CSS, JSON, YAML
//     variable, // Sass, SQL, YAML
// 
//     change, // Diff
//     delete, // Diff
//     head, // Diff, YAML
//     insert, // Diff
//     eyecatcher, // Diff
// 
//     ident, // almost all scanners
//     operator, // almost all scanners
// 
//     space, // almost all scanners
//     plain, // almost all scanners
//     unknown
// }


// Path: aesh/src/test/java/org/aesh/extensions/text/highlight/encoder/NullEncoder.java
import org.aesh.extensions.highlight.Encoder;
import org.aesh.extensions.highlight.TokenType;

/*
 * JBoss, Home of Professional Open Source
 * Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors
 * as indicated by the @authors tag. All rights reserved.
 * See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.aesh.extensions.text.highlight.encoder;



public class NullEncoder implements Encoder {

    @Override
    public void textToken(String text, TokenType type) {