java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java
branchv_0
changeset 69 0befec5034c2
parent 63 3b9ec9c23a37
child 71 e5d04a68ce1e
equal deleted inserted replaced
68:574cd7fbb5b2 69:0befec5034c2
    18 package info.globalcode.sql.dk;
    18 package info.globalcode.sql.dk;
    19 
    19 
    20 import static info.globalcode.sql.dk.Functions.isNotEmpty;
    20 import static info.globalcode.sql.dk.Functions.isNotEmpty;
    21 import static info.globalcode.sql.dk.Functions.isEmpty;
    21 import static info.globalcode.sql.dk.Functions.isEmpty;
    22 import static info.globalcode.sql.dk.Functions.equalz;
    22 import static info.globalcode.sql.dk.Functions.equalz;
       
    23 import info.globalcode.sql.dk.InfoLister.InfoType;
    23 import java.io.OutputStream;
    24 import java.io.OutputStream;
    24 import java.util.ArrayList;
    25 import java.util.ArrayList;
    25 import java.util.Collection;
    26 import java.util.Collection;
    26 import java.util.EnumSet;
    27 import java.util.EnumSet;
    27 import java.util.List;
    28 import java.util.List;
    49 		QUERY_NOW,
    50 		QUERY_NOW,
    50 		PREPARE_BATCH,
    51 		PREPARE_BATCH,
    51 		EXECUTE_BATCH,
    52 		EXECUTE_BATCH,
    52 		JUST_SHOW_INFO
    53 		JUST_SHOW_INFO
    53 	}
    54 	}
    54 
       
    55 	public enum INFO_TYPE {
       
    56 
       
    57 		HELP,
       
    58 		VERSION,
       
    59 		LICENSE,
       
    60 		FORMATTERS,
       
    61 		TYPES,
       
    62 		DATABASES,
       
    63 		CONNECTION
       
    64 	}
       
    65 	private final List<NamedParameter> namedParameters = new ArrayList<>();
    55 	private final List<NamedParameter> namedParameters = new ArrayList<>();
    66 	private final List<Parameter> numberedParameters = new ArrayList<>();
    56 	private final List<Parameter> numberedParameters = new ArrayList<>();
    67 	private final EnumSet<INFO_TYPE> showInfo = EnumSet.noneOf(INFO_TYPE.class);
    57 	private final EnumSet<InfoType> showInfo = EnumSet.noneOf(InfoType.class);
    68 
    58 
    69 	public void validate() throws InvalidOptionsException {
    59 	public void validate() throws InvalidOptionsException {
    70 		InvalidOptionsException e = new InvalidOptionsException();
    60 		InvalidOptionsException e = new InvalidOptionsException();
    71 
    61 
    72 		MODE mode = getMode();
    62 		MODE mode = getMode();
    95 				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name prefix if just showing info."));
    85 				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name prefix if just showing info."));
    96 			}
    86 			}
    97 			if (!equalz(nameSuffix, DEFAULT_NAME_SUFFIX)) {
    87 			if (!equalz(nameSuffix, DEFAULT_NAME_SUFFIX)) {
    98 				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name suffix if just showing info."));
    88 				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name suffix if just showing info."));
    99 			}
    89 			}
   100 			if (showInfo.contains(INFO_TYPE.CONNECTION) && isEmpty(databaseNameToTest, false)) {
    90 			if (showInfo.contains(InfoType.CONNECTION) && isEmpty(databaseNameToTest, false)) {
   101 				e.addProblem(new InvalidOptionsException.OptionProblem("Please specify which database should be tested."));
    91 				e.addProblem(new InvalidOptionsException.OptionProblem("Please specify which database should be tested."));
   102 			}
    92 			}
   103 		}
    93 		}
   104 
    94 
   105 		if (!namedParameters.isEmpty() && !numberedParameters.isEmpty()) {
    95 		if (!namedParameters.isEmpty() && !numberedParameters.isEmpty()) {
   213 
   203 
   214 	public void setFormatterName(String formatterName) {
   204 	public void setFormatterName(String formatterName) {
   215 		this.formatterName = formatterName;
   205 		this.formatterName = formatterName;
   216 	}
   206 	}
   217 
   207 
   218 	public void addShowInfo(INFO_TYPE info) {
   208 	public void addShowInfo(InfoType info) {
   219 		showInfo.add(info);
   209 		showInfo.add(info);
   220 	}
   210 	}
   221 
   211 
   222 	public EnumSet<INFO_TYPE> getShowInfo() {
   212 	public EnumSet<InfoType> getShowInfo() {
   223 		return showInfo;
   213 		return showInfo;
   224 	}
   214 	}
   225 
   215 
   226 	public String getDatabaseNameToTest() {
   216 	public String getDatabaseNameToTest() {
   227 		return databaseNameToTest;
   217 		return databaseNameToTest;