blob: 7826015d186092038d08235aaca7f1cfd219fd5e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2011 Oracle. 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:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.common.ui.internal;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jpt.common.ui.JptCommonUiPlugin;
/**
* This tracing class manages to convert the string value into boolean values or
* integer values that are associated with the tracing debug flags. Those flags
* are specified in the .options file. The supported keys are defined here as
* constants for quick reference.
*
* @version 2.0
* @since 2.0
*/
@SuppressWarnings("nls")
public final class Tracing
{
/**
* A constant used to retrieve the value associated with "/debug".
*/
public static final String DEBUG = "/debug";
/**
* A constant used to retrieve the value associated with "/debug/ui/db".
*/
public static final String UI_DB = "/debug/ui/db";
/**
* A constant used to retrieve the value associated with "/debug/ui/detailsView".
*/
public static final String UI_DETAILS_VIEW = "/debug/ui/detailsView";
/**
* A constant used to retrieve the value associated with "/debug/ui/layout".
*/
public static final String UI_LAYOUT = "/debug/ui/layout";
/**
* A constant used to retrieve the value associated with "/unit-tests".
*/
public static final String UNIT_TESTS = "/unit-tests";
/**
* Can't instantiate this <code>Tracing</code> class.
*/
private Tracing()
{
super();
throw new UnsupportedOperationException("Tracing cannot be instantiated");
}
/**
* Retrieves the debug value associated with the given flag. The default
* value is <code>false</code>.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @return <code>true</code> if the given flag is active; <code>false</code>
* otherwise
*/
public static boolean booleanDebugOption(String flag)
{
return booleanDebugOption(flag, false);
}
/**
* Retrieves the debug value associated with the given flag.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @param defaultValue The default value if the value associated with the
* given flag could not be found
* @return <code>true</code> if the given flag is active; <code>false</code>
* otherwise
*/
public static boolean booleanDebugOption(String flag, boolean defaultValue)
{
String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
return (string == null) ? defaultValue : Boolean.parseBoolean(string.trim());
}
/**
* Retrieves the debug value associated with the given flag. The default value
* is 0.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @return The value associated with the given flag, or the given default
* value
*/
public static int intDebugOption(String flag)
{
return intDebugOption(flag, 0);
}
/**
* Retrieves the debug value associated with the given flag.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @param defaultValue The default value if the value associated with the
* given flag could not be found
* @return The value associated with the given flag, or the given default
* value
*/
public static int intDebugOption(String flag, int defaultValue)
{
String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
return (string == null) ? defaultValue : Integer.parseInt(string);
}
/**
* Logs the given messages, appends it with this plug-in id.
*
* @param message The message to be logged
*/
public static void log(String message)
{
System.out.print("[" + JptCommonUiPlugin.PLUGIN_ID + "] ");
System.out.println(message);
}
/**
* Retrieves the debug value associated with the given flag. The default value
* is an empty string.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @return The value associated with the given flag, or the given default
* value
*/
public static String stringDebugOption(String flag)
{
return stringDebugOption(flag, "");
}
/**
* Retrieves the debug value associated with the given flag.
*
* @param flag The flag to retrieve the debug value, which should be
* contained in the .options file, the flag should start with "/"
* @param defaultValue The default value if the value associated with the
* given flag could not be found
* @return The value associated with the given flag, or the given default
* value
*/
public static String stringDebugOption(String flag, String defaultValue)
{
String string = Platform.getDebugOption(JptCommonUiPlugin.PLUGIN_ID + flag);
return (string != null) ? string : defaultValue;
}
}