Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package ca.carleton.gcrc.couch.command.dump;
  
  import java.io.File;
  import java.io.Reader;
 import java.util.List;
 
 
 public class DumpSettings {
 
 	public enum Type {
 		DUMP
 		,RESTORE
 	};
 	
 	private Type opType = null;
 	private PrintStream outStream = .;
 	private PrintStream errStream = .;
 	private BufferedReader inReader = null;
 	private FilenameFilter filenameFilter = null;
 	private FSEntryNameFilter fsEntryNameFilter = null;
 	private boolean helpRequested = false;
 	private boolean debug = false;
 	private File dumpDir = null;
 	private List<StringdocIds = new Vector<String>();
 	private String server = null;
 	private String user = null;
 	private String password = null;
 	private String dbName = null;
 
 	public DumpSettings(Type opTypethrows Exception {
 		this.  = opType;
 		
 		setInStream(."UTF-8");
 		
 			public boolean accept(File parentString filename) {
 				// Skip over special directories
 				ifnull != filename 
 				 && filename.length() > 0
 				 && filename.charAt(0) == '.' 
 				 ) {
 					return false;
 				}
 				return true;
 			}
 		};
 		
 			public boolean accept(FSEntry parentString name) {
 				// Skip over special directories
 				ifnull != name 
 				 && name.length() > 0
 				 && name.charAt(0) == '.' 
 				 ) {
 					return false;
 				}
 				return true;
 			}
 		};
 	}
 	
 	public void parseCommandLineArguments(Stack<StringargumentStackthrows Exception {
 		// Pick up options
 		whilefalse == argumentStack.empty() ){
 			String optionName = argumentStack.peek();
 			if"--dump-dir".equals(optionName) ){
 				argumentStack.pop();
 				
 				ifargumentStack.empty() ){
 					throw new Exception("Directory expected for option '--dump-dir'");
 				}
 				String dumpDirStr = argumentStack.pop();
 				File dumpDirFile = new File(dumpDirStr);
 				setDumpDir(dumpDirFile);
 
 			} else if"--doc-id".equals(optionName) ){
 				argumentStack.pop();
 				ifargumentStack.size() < 1 ){
 					throw new Exception("--doc-id option requires a document identifier");
 				}
 				
 				String docId = argumentStack.pop();
 				.add(docId);
 
else if"--server".equals(optionName) ){
				argumentStack.pop();
				ifargumentStack.size() < 1 ){
					throw new Exception("--server option requires the URL to the CouchDB server");
				}
				setServerargumentStack.pop() );
else if"--user".equals(optionName) ){
				argumentStack.pop();
				ifargumentStack.size() < 1 ){
					throw new Exception("--user option requires the name of the user to connect to CouchDb");
				}
				setUserargumentStack.pop() );
else if"--password".equals(optionName) ){
				argumentStack.pop();
				ifargumentStack.size() < 1 ){
					throw new Exception("--password option requires the password of the user to connect to CouchDb");
				}
				setPasswordargumentStack.pop() );
else if"--db".equals(optionName) ){
				argumentStack.pop();
				ifargumentStack.size() < 1 ){
					throw new Exception("--db option requires the name of the CouchDb database");
				}
				setDbNameargumentStack.pop() );
else if"--help".equals(optionName) ){
					argumentStack.pop();
else if"--debug".equals(optionName) ){
					argumentStack.pop();
					setDebug(true);
else {
				break;
			}
		}
	}
	public void acceptUserOptions() throws Exception {
		// server
		whilenull ==  ) {
			 = getUserInput("Enter the URL of the CouchDb server",null);
			ifnull ==  ){
				getErrStream().println("The URL to the CouchDb server must be specified");
			}
		}
		// dbName
		whilenull ==  ) {
			 = getUserInput("Enter the name of the database",null);
			ifnull ==  ){
				getErrStream().println("The name of the database must be specified");
			}
		}
		// user
		ifnull ==  ) {
			 = getUserInput("Enter the name of the user",null);
		}
		// password
		ifnull !=  && null ==  ) {
			 = getUserInput("Enter the password for the user",null);
		}
		// dumpDir
		whilenull ==  ) {
			String prompt = null;
			if == . ) {
				prompt = "Enter the directory where the disk documents should be sent";
else if == . ) {
				prompt = "Enter the directory where the disk documents are located";
			}
			String dumpDirStr = getUserInput(prompt,null);
			ifnull == dumpDirStr ){
				getErrStream().println("The directory for the dump must be specified");
else {
				 = new File(dumpDirStr);
			}
		}
	}
	private String getUserInput(String promptString defaultValuethrows Exception {
		// Prompt user
		ps.print(prompt);
		ifnull != defaultValue ){
			ps.print(" [");
			ps.print(defaultValue);
			ps.print("]");
		}
		ps.print(": ");
		// Read answer
		String line = null;
		try {
			line = reader.readLine();
catch(Exception e) {
			throw new Exception("Error while reading configuration information from user",e);
		}
		String atlasName = null;
		ifnull == line ) {
			// End of stream reached
			throw new Exception("End of input stream reached");
else {
			line = line.trim();
			if"".equals(line) ){
				atlasName = defaultValue;
else {
				atlasName = line;
			}
		}
		return atlasName;
	}
		// Create couch client
		CouchClient couchClient = null;
		{
			Properties couchClientProps = new Properties();
			couchClientProps.put("couchdb.server");
			ifnull !=  && null !=  ) {
				couchClientProps.put("couchdb.user");
				couchClientProps.put("couchdb.password");
			}
			CouchFactory couchFactory = new CouchFactory();
			couchClient = couchFactory.getClient(couchClientProps);
			// Verify that we can connect to the server
			try {
				couchClient.validateContext();
catch(Exception e) {
				throw new Exception("Unable to connect to the server. Probably a problem with server URL, user name or password.",e);
			}
		}
		return couchClient;
	}
	public CouchDb createCouchDb() throws Exception {
		CouchClient couchClient = createCouchClient();
		// Get database from Couch Client
		CouchDb couchDb = null;
		{
			iffalse == couchClient.databaseExists() ) {
				throw new Exception("Can not find a database with the name: "+);
			}
			couchDb = couchClient.getDatabase();
		}
		return couchDb;
	}
		return ;
	}
	public void setOutStream(PrintStream outStream) {
		this. = outStream;
	}
		return ;
	}
	public void setErrStream(PrintStream errStream) {
		this. = errStream;
	}
		return ;
	}
	public void setInStream(InputStream inStreamString charEncodingthrows Exception {
		InputStreamReader isr = new InputStreamReader(inStreamcharEncoding);
		BufferedReader bufReader = new BufferedReader(isr);
		this. = bufReader;
	}
	public void setInReader(Reader readerthrows Exception {
		BufferedReader bufReader = new BufferedReader(reader);
		this. = bufReader;
	}
	}
	public void setFilenameFilter(FilenameFilter filenameFilter) {
		this. = filenameFilter;
	}
	}
	public void setFsEntryNameFilter(FSEntryNameFilter fsEntryNameFilter) {
		this. = fsEntryNameFilter;
	}
	public boolean isHelpRequested() {
	}
	public void setHelpRequested(boolean helpRequested) {
		this. = helpRequested;
	}
	public boolean isDebug() {
		return ;
	}
	public void setDebug(boolean debug) {
		this. = debug;
	}
	public File getDumpDir() {
		return ;
	}
	public void setDumpDir(File dumpDir) {
		this. = dumpDir;
	}
	public List<StringgetDocIds() {
		return ;
	}
	public String getServer() {
		return ;
	}
	public void setServer(String server) {
		this. = server;
	}
	public String getUser() {
		return ;
	}
	public void setUser(String user) {
		this. = user;
	}
	public String getPassword() {
		return ;
	}
	public void setPassword(String password) {
		this. = password;
	}
	public String getDbName() {
		return ;
	}
	public void setDbName(String dbName) {
		this. = dbName;
	}
New to GrepCode? Check out our FAQ X