package com.github.coolcooldee.sloth.parameter; import com.github.coolcooldee.sloth.Application; import com.github.coolcooldee.sloth.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; /** * resolution the parameters in java -jar * TODO Consider using args4j * Created by sloth on 16/6/16. */ public abstract class UserInputParamters { static Logger logger = LoggerFactory.getLogger(UserInputParamters.class); private static String storePathInUserParam; private static String packageNameInUserParam; private static String projectNameInUserParam; private static String dbHostInUserParam; private static String dbPortInUserParam; private static String dbUserNameInUserParam; private static String dbPasswordInUserParam; private static String dbSchemaInUserParam; private static String dbTableInUserParam; private static String strategy4genParam; private static String rollbackVersionParam = ""; public static String[] genInputArgs(String path, String projectname, String dbHost, String dbPort, String dbUser, String dbPassword, String dbName, String strategy, String packageName){ String str = "-path$1 -projectname$2 -h$3 -P$4 -u$5 -p$6 -d$7 -strategy$8 -package$9"; str = str.replace("$1",path).replace("$2",projectname).replace("$3",dbHost).replace("$4", dbPort) .replace("$5",dbUser).replace("$6",dbPassword).replace("$7",dbName).replace("$8",strategy) .replace("$9",packageName); return str.split(" "); } public static int init(String[] inputArgs) { if (inputArgs != null) { for (int i = 0; i < inputArgs.length; i++) { String temp = inputArgs[i]; if (StringUtil.isEmpty(temp)) continue; if (temp.startsWith("-path")) { setStorePathInUserParam(inputArgs[i].replace("-path", "")); if (!getStorePathInUserParam().endsWith(File.pathSeparator)) { setStorePathInUserParam(getStorePathInUserParam() + File.separator); } }else if (temp.startsWith("-rollback")) { setRollbackVersionParam(inputArgs[i].replace("-package", "")); }else if (temp.startsWith("-package")) { setPackageNameInUserParam(inputArgs[i].replace("-package", "")); }else if (temp.startsWith("-strategy")) { setStrategy4genParam(inputArgs[i].replace("-strategy", "")); } else if (temp.startsWith("-projectname")) { setProjectNameInUserParam(inputArgs[i].replace("-projectname", "")); } else if (temp.startsWith("-help")) { setDbHostInUserParam(inputArgs[i].replace("-help", "")); if ("".equals(DBSourceParameters.getSourceDbHost())) { logger.info("-h\tdb's host."); logger.info("-P\tdb's Port."); logger.info("-u\tdb's username."); logger.info("-p\tdb's password."); logger.info("-d\tdb's schema name."); logger.info("-t\tdb's table name."); logger.info("-strategy\tassign the strategy for generating target project."); logger.info("-path\ttarget project's dir path."); logger.info("-package\ttarget project's package."); logger.info("-projectname\ttarget project's name."); logger.info("-rollback\trollback the target project to previous version."); return -1; } } else if (temp.startsWith("-P")) { setDbPortInUserParam(inputArgs[i].replace("-P", "")); } else if (temp.startsWith("-u")) { setDbUserNameInUserParam(inputArgs[i].replace("-u", "")); } else if (temp.startsWith("-p")) { setDbPasswordInUserParam(inputArgs[i].replace("-p", "")); } else if (temp.startsWith("-d")) { setDbSchemaInUserParam(inputArgs[i].replace("-d", "")); }else if (temp.startsWith("-t")) { setDbTableInUserParam(inputArgs[i].replace("-t", "")); } } return 1; } return 1; } public static String getStorePathInUserParam() { return storePathInUserParam; } public static void setStorePathInUserParam(String storePathInUserParam) { UserInputParamters.storePathInUserParam = storePathInUserParam; } public static String getPackageNameInUserParam() { return packageNameInUserParam; } public static void setPackageNameInUserParam(String packageNameInUserParam) { UserInputParamters.packageNameInUserParam = packageNameInUserParam; } public static String getProjectNameInUserParam() { return projectNameInUserParam; } public static void setProjectNameInUserParam(String projectNameInUserParam) { UserInputParamters.projectNameInUserParam = projectNameInUserParam; } public static String getDbHostInUserParam() { return dbHostInUserParam; } public static void setDbHostInUserParam(String dbHostInUserParam) { UserInputParamters.dbHostInUserParam = dbHostInUserParam; } public static String getDbPortInUserParam() { return dbPortInUserParam; } public static void setDbPortInUserParam(String dbPortInUserParam) { UserInputParamters.dbPortInUserParam = dbPortInUserParam; } public static String getDbUserNameInUserParam() { return dbUserNameInUserParam; } public static void setDbUserNameInUserParam(String dbUserNameInUserParam) { UserInputParamters.dbUserNameInUserParam = dbUserNameInUserParam; } public static String getDbPasswordInUserParam() { return dbPasswordInUserParam; } public static void setDbPasswordInUserParam(String dbPasswordInUserParam) { UserInputParamters.dbPasswordInUserParam = dbPasswordInUserParam; } public static String getDbSchemaInUserParam() { return dbSchemaInUserParam; } public static void setDbSchemaInUserParam(String dbSchemaInUserParam) { UserInputParamters.dbSchemaInUserParam = dbSchemaInUserParam; } public static String getStrategy4genParam() { return strategy4genParam; } public static void setStrategy4genParam(String strategy4genParam) { UserInputParamters.strategy4genParam = strategy4genParam; } public static String getDbTableInUserParam() { return dbTableInUserParam; } public static void setDbTableInUserParam(String dbTableInUserParam) { UserInputParamters.dbTableInUserParam = dbTableInUserParam; } public static String getRollbackVersionParam() { return rollbackVersionParam; } public static void setRollbackVersionParam(String rollbackVersionParam) { UserInputParamters.rollbackVersionParam = rollbackVersionParam; } }