< prev index next >

jdk/src/jdk.internal.le/share/classes/jdk/internal/jline/TerminalFactory.java

Print this page




 146         UNIX
 147     }
 148 
 149     private static final Map<Flavor, Callable<? extends Terminal>> FLAVORS = new HashMap<>();
 150 
 151     static {
 152 //        registerFlavor(Flavor.WINDOWS, AnsiWindowsTerminal.class);
 153 //        registerFlavor(Flavor.UNIX, UnixTerminal.class);
 154         registerFlavor(Flavor.WINDOWS, WindowsTerminal :: new);
 155         registerFlavor(Flavor.UNIX, UnixTerminal :: new);
 156     }
 157 
 158     public static synchronized Terminal get() {
 159         if (term == null) {
 160             term = create();
 161         }
 162         return term;
 163     }
 164 
 165     public static Terminal getFlavor(final Flavor flavor) throws Exception {
 166         Callable<? extends Terminal> sup = FLAVORS.get(flavor);
 167         if (sup != null) {
 168             return sup.call();
 169         }
 170 
 171         throw new InternalError();
 172     }
 173 
 174     public static void registerFlavor(final Flavor flavor, final Callable<? extends Terminal> sup) {
 175         FLAVORS.put(flavor, sup);
 176     }
 177 
 178 }


 146         UNIX
 147     }
 148 
 149     private static final Map<Flavor, Callable<? extends Terminal>> FLAVORS = new HashMap<>();
 150 
 151     static {
 152 //        registerFlavor(Flavor.WINDOWS, AnsiWindowsTerminal.class);
 153 //        registerFlavor(Flavor.UNIX, UnixTerminal.class);
 154         registerFlavor(Flavor.WINDOWS, WindowsTerminal :: new);
 155         registerFlavor(Flavor.UNIX, UnixTerminal :: new);
 156     }
 157 
 158     public static synchronized Terminal get() {
 159         if (term == null) {
 160             term = create();
 161         }
 162         return term;
 163     }
 164 
 165     public static Terminal getFlavor(final Flavor flavor) throws Exception {
 166         return FLAVORS.getOrDefault(flavor, () -> {throw new InternalError();}).call();





 167     }
 168 
 169     public static void registerFlavor(final Flavor flavor, final Callable<? extends Terminal> sup) {
 170         FLAVORS.put(flavor, sup);
 171     }
 172 
 173 }
< prev index next >