Path: blob/master/debugtools/DDR_VM/src/com/ibm/j9ddr/command/ConsoleCommandReader.java
6005 views
/*******************************************************************************1* Copyright (c) 2001, 2014 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/21package com.ibm.j9ddr.command;2223import java.io.BufferedReader;24import java.io.InputStream;25import java.io.InputStreamReader;26import java.io.PrintStream;2728import com.ibm.j9ddr.tools.ddrinteractive.DDRInteractive;2930public class ConsoleCommandReader extends CommandReader {31private BufferedReader reader;3233public ConsoleCommandReader(PrintStream out) {34super(out);35//default to stdin for input36setInputStream(System.in);37}3839@Override40public void setInputStream(InputStream in) {41if(reader != null) {42//close the current input stream43try {44reader.close();45} catch (Exception e) {46//ignore exceptions47}48}49reader = new BufferedReader(new InputStreamReader(in));50}515253@Override54public void processInput(DDRInteractive engine) throws Exception {55while (true) {56String line;5758prompt();59while ((line = reader.readLine()) != null) {60if (line.length() == 0) {61continue;62}6364try {65processLine(engine, line);66prompt();67} catch (ExitException e) {68return;69}70}71}72}7374private void prompt() {75out.print("> ");76}77}787980