CommandParser.java
01 /*
02  *  Licensed to the Apache Software Foundation (ASF) under one
03  *  or more contributor license agreements.  See the NOTICE file
04  *  distributed with this work for additional information
05  *  regarding copyright ownership.  The ASF licenses this file
06  *  to you under the Apache License, Version 2.0 (the
07  *  "License"); you may not use this file except in compliance
08  *  with the License.  You may obtain a copy of the License at
09  *
10  *    http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing,
13  *  software distributed under the License is distributed on an
14  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  *  KIND, either express or implied.  See the License for the
16  *  specific language governing permissions and limitations
17  *  under the License.    
18  *
19  
20  */
21 package org.apache.qpid.tools.utils;
22 
23 public interface CommandParser
24 {
25     /**
26      * If there is more than one command received on the last parse request.
27      *
28      * Subsequent calls to parse will utilise this input rather than reading new data from the input source
29      @return boolean
30      */
31     boolean more();
32 
33     /**
34      * True if the currently parsed command has been requested as a background operation
35      *
36      @return boolean
37      */
38     boolean isBackground();
39 
40     /**
41      * Parses user commands, and groups tokens in the
42      * String[] format that all Java main's love.
43      *
44      * If more than one command is provided in one input line then the more() method will return true.
45      * A subsequent call to parse() will continue to parse that input line before reading new input.
46      *
47      @return <code>input</code> split in args[] format; null if eof.
48      @throws java.io.IOException if there is a problem reading from the input stream
49      */
50     String[] parse() throws java.io.IOException;
51 }