InterfaceService.java 2.88 KB
package com.sitech.ismp.check.interfaces;

import java.util.ArrayList;
import java.util.List;

public class InterfaceService {
	
	private String endSign = InterfacePro.commandEndSign;
	private String colsep = "###";
	
	public List<BaseCommand> getShellCommand(String command) {

		List<BaseCommand> list = new ArrayList<BaseCommand>();
		
		this.addCommand(list, command, endSign,true);
		
		return list;
	}
	
	public List<BaseCommand> getOracleCommand(String command, String dbName,String dbUserName,
			String dbPwd) {
		
		if(!command.endsWith(";"))
			command += ";";

		List<BaseCommand> list = new ArrayList<BaseCommand>();
		
		this.addCommand(list, "sqlplus "+dbUserName+"/"+dbPwd+"@"+dbName, ">", false);
		this.addCommand(list, "set colsep "+colsep, ">");
		this.addCommand(list, "set heading on", ">");
		this.addCommand(list, "set pagesize 0", ">");
		this.addCommand(list, "set feedback off", ">");
		this.addCommand(list, "set echo off", ">");
		this.addCommand(list, "set term off", ">");
		this.addCommand(list, "set trims on", ">");
		this.addCommand(list, "set linesize 1024", ">");
		this.addCommand(list, command, ">", true);
		this.addCommand(list, "exit", endSign);
		
		return list;
		
	}

	public List<BaseCommand> getParameter(String ip, String userName) {
		List<BaseCommand> list = new ArrayList<BaseCommand>();
		
		this.addCommand(list, ip, "Input Protocols Type:", false);
		this.addCommand(list, "SSH2", "Input Hostname:", false);
		this.addCommand(list, ip, "Input User Prompt:", false);
		this.addCommand(list, "null", "Input Password Prompt:", false);
		this.addCommand(list, "assword:", "Input User:", false);
		this.addCommand(list, userName, "Input Password:", false);
		
		return list;
	}
	
	private List<BaseCommand> addCommand(List<BaseCommand> list,String command,String endFlag){
		return this.addCommand(list, command, endFlag, false);
	}
	private List<BaseCommand> addCommand(List<BaseCommand> list,String command,String endFlag,boolean outPut){
		if(list==null)
			return null;
		
		BaseCommand cmd = new BaseCommand();
		cmd.setCommand(command);
		cmd.setEnd_flag(endFlag);
		cmd.setOut_put(outPut);
		
		list.add(cmd);
		
		return list;
	}
	
	
	public String formatOracleResult(String sql,String result){
		
		result = result.replaceAll("\t", "");
		while(result.indexOf(colsep+"\r\n")>=0){
			result = result.replaceAll(colsep+"\r\n", colsep+" "+colsep);
		}
		
		if(sql.indexOf("*")>0){
			return result;
		}else{
			String temp = sql.substring(sql.toLowerCase().indexOf("select")+6, sql.toLowerCase().indexOf("from"));
			String[] columnNames = temp.split(",");
			
			String str = "";
			String[] ss = result.split("\r\n\r\n");
			if(ss.length==1)
				ss = result.split("\r\n");
			for(int i=0;i<ss.length;i++){
				String[] cols = ss[i].split(colsep);
				for(int j=0;j<cols.length;j++){
					str += columnNames[j].trim() + "=" + cols[j].trim() + "\n";
				}
			}
			
			return str;
		}
		
		
	}
}