/*******************************************************************************
 * Copyright (c) 2012 EclipseSource Muenchen GmbH.
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 ******************************************************************************/
package org.eclipse.emf.emfstore.client.ui.errorreporting;

import java.io.File;
import java.util.Arrays;

import org.apache.commons.lang.StringUtils;

/**
 * Preference keys and default values for error reporting feature.
 * 
 * @author emueller
 * 
 */
public final class ErrorReportingPreferences {

	private ErrorReportingPreferences() {

	}

	/**
	 * The qualifier of the preferences used by the error reporting feature.
	 */
	public static final String QUALIFIER = "org.eclipse.emf.emfstore.client.ui.errorreporting";

	/**
	 * Preference key for the zip path.
	 */
	public static final String ZIP_PATH_KEY = "zipPath";

	/**
	 * Default value for the zip path.
	 */
	public static final String ZIP_PATH_DEFAULT = StringUtils.join(
		Arrays.asList(System.getProperty("user.home"), "Desktop"), File.separatorChar);
}