equal
deleted
inserted
replaced
15 * You should have received a copy of the GNU General Public License |
15 * You should have received a copy of the GNU General Public License |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 */ |
17 */ |
18 package info.globalcode.sql.dk; |
18 package info.globalcode.sql.dk; |
19 |
19 |
|
20 import static info.globalcode.sql.dk.Functions.readString; |
20 import info.globalcode.sql.dk.InfoLister.InfoType; |
21 import info.globalcode.sql.dk.InfoLister.InfoType; |
21 import info.globalcode.sql.dk.configuration.Property; |
22 import info.globalcode.sql.dk.configuration.Property; |
|
23 import java.io.IOException; |
|
24 import java.io.InputStream; |
22 import java.util.ArrayList; |
25 import java.util.ArrayList; |
23 import java.util.HashMap; |
26 import java.util.HashMap; |
24 import java.util.List; |
27 import java.util.List; |
25 import java.util.Map; |
28 import java.util.Map; |
26 |
29 |
33 */ |
36 */ |
34 public class CLIParser { |
37 public class CLIParser { |
35 |
38 |
36 public static final String TYPE_NAME_SEPARATOR = ":"; |
39 public static final String TYPE_NAME_SEPARATOR = ":"; |
37 |
40 |
38 public CLIOptions parseOptions(String[] args) throws CLIParserException { |
41 public CLIOptions parseOptions(String[] args, InputStream in) throws CLIParserException { |
39 CLIOptions options = new CLIOptions(); |
42 CLIOptions options = new CLIOptions(); |
40 |
43 |
41 List<SQLType> numberedTypes = new ArrayList<>(); |
44 List<SQLType> numberedTypes = new ArrayList<>(); |
42 Map<String, SQLType> namedTypes = new HashMap<>(); |
45 Map<String, SQLType> namedTypes = new HashMap<>(); |
43 |
46 |
67 case Tokens.DB: |
70 case Tokens.DB: |
68 options.setDatabaseName(fetchNext(args, ++i)); |
71 options.setDatabaseName(fetchNext(args, ++i)); |
69 break; |
72 break; |
70 case Tokens.SQL: |
73 case Tokens.SQL: |
71 options.setSql(fetchNext(args, ++i)); |
74 options.setSql(fetchNext(args, ++i)); |
|
75 break; |
|
76 case Tokens.SQL_IN: |
|
77 try { |
|
78 options.setSql(readString(in)); |
|
79 } catch (IOException e) { |
|
80 throw new CLIParserException("Unable to read SQL from the input stream", e); |
|
81 } |
72 break; |
82 break; |
73 case Tokens.BATCH: |
83 case Tokens.BATCH: |
74 options.setBatch(true); |
84 options.setBatch(true); |
75 break; |
85 break; |
76 case Tokens.DATA: // --data is the last option |
86 case Tokens.DATA: // --data is the last option |
158 |
168 |
159 // bash-completion:options: |
169 // bash-completion:options: |
160 public static final String DB = "--db"; // bash-completion:option // help: database name |
170 public static final String DB = "--db"; // bash-completion:option // help: database name |
161 public static final String DB_PROPERTY = "--db-property"; // bash-completion:option // help: name and value |
171 public static final String DB_PROPERTY = "--db-property"; // bash-completion:option // help: name and value |
162 public static final String SQL = "--sql"; // bash-completion:option // help: SQL query/command |
172 public static final String SQL = "--sql"; // bash-completion:option // help: SQL query/command |
|
173 public static final String SQL_IN = "--sql-in"; // bash-completion:option // help: SQL query/command |
163 public static final String BATCH = "--batch"; // bash-completion:option // help: batch mode (no argument) |
174 public static final String BATCH = "--batch"; // bash-completion:option // help: batch mode (no argument) |
164 public static final String DATA = "--data"; // bash-completion:option // help: list of ordinal parameters |
175 public static final String DATA = "--data"; // bash-completion:option // help: list of ordinal parameters |
165 public static final String DATA_NAMED = "--data-named"; // bash-completion:option // help: list of named parameters |
176 public static final String DATA_NAMED = "--data-named"; // bash-completion:option // help: list of named parameters |
166 public static final String NAME_PREFIX = "--name-prefix"; // bash-completion:option // help: parameter name prefix – regular expression |
177 public static final String NAME_PREFIX = "--name-prefix"; // bash-completion:option // help: parameter name prefix – regular expression |
167 public static final String NAME_SUFFIX = "--name-suffix"; // bash-completion:option // help: parameter name suffix – regular expression |
178 public static final String NAME_SUFFIX = "--name-suffix"; // bash-completion:option // help: parameter name suffix – regular expression |