src/jdk.internal.le/share/classes/jdk/internal/jline/Terminal.java
changeset 53333 fd6de53a0d6e
parent 53332 ab474ef0a0ac
parent 53010 086dfcfc3731
child 53334 b94283cb226b
equal deleted inserted replaced
53332:ab474ef0a0ac 53333:fd6de53a0d6e
     1 /*
       
     2  * Copyright (c) 2002-2016, the original author or authors.
       
     3  *
       
     4  * This software is distributable under the BSD license. See the terms of the
       
     5  * BSD license in the documentation provided with this software.
       
     6  *
       
     7  * http://www.opensource.org/licenses/bsd-license.php
       
     8  */
       
     9 package jdk.internal.jline;
       
    10 
       
    11 import java.io.IOException;
       
    12 import java.io.InputStream;
       
    13 import java.io.OutputStream;
       
    14 
       
    15 /**
       
    16  * Representation of the input terminal for a platform.
       
    17  *
       
    18  * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
       
    19  * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
       
    20  * @since 2.0
       
    21  */
       
    22 public interface Terminal
       
    23 {
       
    24     void init() throws Exception;
       
    25 
       
    26     void restore() throws Exception;
       
    27 
       
    28     void reset() throws Exception;
       
    29 
       
    30     boolean isSupported();
       
    31 
       
    32     int getWidth();
       
    33 
       
    34     int getHeight();
       
    35 
       
    36     boolean isAnsiSupported();
       
    37 
       
    38     /**
       
    39      * When ANSI is not natively handled, the output will have to be wrapped.
       
    40      */
       
    41     OutputStream wrapOutIfNeeded(OutputStream out);
       
    42 
       
    43     /**
       
    44      * When using native support, return the InputStream to use for reading characters
       
    45      * else return the input stream passed as a parameter.
       
    46      *
       
    47      * @since 2.6
       
    48      */
       
    49     InputStream wrapInIfNeeded(InputStream in) throws IOException;
       
    50 
       
    51     /**
       
    52      * For terminals that don't wrap when character is written in last column,
       
    53      * only when the next character is written.
       
    54      * These are the ones that have 'am' and 'xn' termcap attributes (xterm and
       
    55      * rxvt flavors falls under that category)
       
    56      */
       
    57     boolean hasWeirdWrap();
       
    58 
       
    59     boolean isEchoEnabled();
       
    60 
       
    61     void setEchoEnabled(boolean enabled);
       
    62 
       
    63     void disableInterruptCharacter();
       
    64     void enableInterruptCharacter();
       
    65 
       
    66     String getOutputEncoding();
       
    67 
       
    68 }