// Path: src/de/elanev/studip/android/app/backend/datamodel/User.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class User {
// 	public String user_id;
// 	public String username;
// 	public Name name;
// 
// 	/**
// 	 * Default constructor
// 	 */
// 	public User() {
// 	}
// 
// 	@JsonIgnoreProperties(ignoreUnknown = true)
// 	public class Name {
// 		public String family;
// 		public String given;
// 		public String prefix;
// 		public String suffix;
// 		public String formatted;
// 
// 		public Name() {
// 		}
// 
// 	}
// 
// }
// 
// Path: src/de/uni/hannover/studip/sync/datamodel/SettingsFile.java
// public class SettingsFile {
// 
// 	/**
// 	 * Path to studip sync root dir.
// 	 */
// 	public String rootDir;
// 
// 	/**
// 	 * Folder structure template.
// 	 */
// 	public String folderStructure;
// 
// 	/**
// 	 * If true existing files will be overwritten,
// 	 * otherwise a version number is appended.
// 	 */
// 	public boolean overwriteFiles = true;
// 
// 	/**
// 	 * If true documents from all visible semesters will be downloaded,
// 	 * otherwise only from the current semester.
// 	 */
// 	public boolean downloadAllSemesters;
// 
// 	/**
// 	 * 0: Do not replace whitespaces
// 	 * 1: Replace with "-"
// 	 * 2: Replace with "_"
// 	 */
// 	public int replaceWhitespaces;
// 
// }
// 
// Path: src/de/uni/hannover/studip/sync/datamodel/OAuthFile.java
// public class OAuthFile {
// 
// 	/**
// 	 * Logged in user firstname.
// 	 */
// 	public String firstName;
// 
// 	/**
// 	 * Logged in user lastname.
// 	 */
// 	public String lastName;
// 
// 	/**
// 	 * Logged in user name.
// 	 */
// 	public String userName;
// 
// 	/**
// 	 * Logged in user id.
// 	 */
// 	public String userId;
// 
// 	/**
// 	 * OAuth access token.
// 	 */
// 	public String token;
// 
// 	/**
// 	 * OAuth access secret.
// 	 */
// 	public String secret;
// 
// }


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.scribe.model.Token;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.elanev.studip.android.app.backend.datamodel.User;
import de.uni.hannover.studip.sync.datamodel.SettingsFile;
import de.uni.hannover.studip.sync.datamodel.OAuthFile;
	 * 
	 * @return
	 * @throws IOException
	 */
	public static Path openTreeFile() throws IOException {
		final Path configDir = Paths.get(System.getProperty("user.home"), CONFIG_DIR);
		if (!Files.isDirectory(configDir)) {
			Files.createDirectory(configDir);
		}

		return configDir.resolve(TREE_FILE_NAME);
	}

	/**
	 * Init oauth config file.
	 * 
	 * @throws IOException
	 */
	public void initOAuthFile() throws IOException {
		oauth.init();
	}

	/**
	 * Get root directoy.
	 */
	public String getRootDirectory() {
		settings.lock.readLock().lock();
		try {
			return settings.data.rootDir;

// Path: src/de/elanev/studip/android/app/backend/datamodel/User.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class User {
// 	public String user_id;
// 	public String username;
// 	public Name name;
// 
// 	/**
// 	 * Default constructor
// 	 */
// 	public User() {
// 	}
// 
// 	@JsonIgnoreProperties(ignoreUnknown = true)
// 	public class Name {
// 		public String family;
// 		public String given;
// 		public String prefix;
// 		public String suffix;
// 		public String formatted;
// 
// 		public Name() {
// 		}
// 
// 	}
// 
// }
// 
// Path: src/de/uni/hannover/studip/sync/datamodel/SettingsFile.java
// public class SettingsFile {
// 
// 	/**
// 	 * Path to studip sync root dir.
// 	 */
// 	public String rootDir;
// 
// 	/**
// 	 * Folder structure template.
// 	 */
// 	public String folderStructure;
// 
// 	/**
// 	 * If true existing files will be overwritten,
// 	 * otherwise a version number is appended.
// 	 */
// 	public boolean overwriteFiles = true;
// 
// 	/**
// 	 * If true documents from all visible semesters will be downloaded,
// 	 * otherwise only from the current semester.
// 	 */
// 	public boolean downloadAllSemesters;
// 
// 	/**
// 	 * 0: Do not replace whitespaces
// 	 * 1: Replace with "-"
// 	 * 2: Replace with "_"
// 	 */
// 	public int replaceWhitespaces;
// 
// }
// 
// Path: src/de/uni/hannover/studip/sync/datamodel/OAuthFile.java
// public class OAuthFile {
// 
// 	/**
// 	 * Logged in user firstname.
// 	 */
// 	public String firstName;
// 
// 	/**
// 	 * Logged in user lastname.
// 	 */
// 	public String lastName;
// 
// 	/**
// 	 * Logged in user name.
// 	 */
// 	public String userName;
// 
// 	/**
// 	 * Logged in user id.
// 	 */
// 	public String userId;
// 
// 	/**
// 	 * OAuth access token.
// 	 */
// 	public String token;
// 
// 	/**
// 	 * OAuth access secret.
// 	 */
// 	public String secret;
// 
// }


// Path: src/de/uni/hannover/studip/sync/models/Config.java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.scribe.model.Token;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.elanev.studip.android.app.backend.datamodel.User;
import de.uni.hannover.studip.sync.datamodel.SettingsFile;
import de.uni.hannover.studip.sync.datamodel.OAuthFile;

	 * 
	 * @return
	 * @throws IOException
	 */
	public static Path openTreeFile() throws IOException {
		final Path configDir = Paths.get(System.getProperty("user.home"), CONFIG_DIR);
		if (!Files.isDirectory(configDir)) {
			Files.createDirectory(configDir);
		}

		return configDir.resolve(TREE_FILE_NAME);
	}

	/**
	 * Init oauth config file.
	 * 
	 * @throws IOException
	 */
	public void initOAuthFile() throws IOException {
		oauth.init();
	}

	/**
	 * Get root directoy.
	 */
	public String getRootDirectory() {
		settings.lock.readLock().lock();
		try {
			return settings.data.rootDir;

		} finally {