core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java
More Linux porting changes. Use HostOS.EXE_EXT to select the Win32 ".exe" suffix in executable filenames.
/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
package com.nokia.carbide.cpp.internal.codescanner.config;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResourceChangeEvent;
import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.preference.IPreferenceStore;
import com.nokia.carbide.cpp.internal.codescanner.CSPlugin;
import com.nokia.carbide.cpp.internal.codescanner.ui.CSPreferenceConstants;
import com.nokia.cpp.internal.api.utils.core.HostOS;
/**
* A class for handling global and project specific Codescanner configuration settings.
*/
public class CSConfigManager implements IResourceChangeListener {
// name of CodeScanner configuration file generated by this plugin
public static final String CS_CONFIG_SETTINGS_FILE = "carbide_cs_config.xml";
// name of CodeScanner commandline tool
public static final String CS_CMDLINE_TOOL = "codescanner" + HostOS.EXE_EXT;
// private members
private static CSConfigSettings defaultConfig;
private String codescannerDir = null;
private String resultsDir = null;
private String outputFormatArgument = null;
private List<String> inputArguments = null;
private boolean htmlResults = false;
private boolean xmlResults = false;
private Map<IProject, CSProjectSettings> settingsMap;
/**
* Create an instance of CSConfigManager.
*/
public CSConfigManager() {
super();
defaultConfig = new CSConfigSettings();
defaultConfig.loadDefaultConfig();
settingsMap = new HashMap<IProject, CSProjectSettings>();
}
/**
* Get the default CodeScanner configuration settings.
* @return default CodeScanner configuration settings
*/
public CSConfigSettings getDefaultConfig() {
if (defaultConfig == null) {
defaultConfig = new CSConfigSettings();
defaultConfig.loadDefaultConfig();
}
return defaultConfig;
}
/**
* Find out whether the CodeScanner commandline tool exists in the specified
* CodeScanner directory. If it does, return its full path, otherwise return null.
* @return full path of the CodeScanner commandline tool if it exists
*/
public String getCSCommandLineTool() {
String csCmdLineTool = CS_CMDLINE_TOOL;
if (codescannerDir != null && codescannerDir.length() > 0) {
csCmdLineTool = codescannerDir + csCmdLineTool;
}
IPath fullPath = new Path(csCmdLineTool);
if (fullPath.toFile().exists()) {
return csCmdLineTool;
}
else {
return null;
}
}
/**
* Return the directory for scanning results.
* @return the directory for scanning results
*/
public String getCSResultsDirectory() {
return resultsDir;
}
/**
* Are we generating html reports for scanning results?
* @return true if generating html reports
*/
public boolean generateHtmlResults() {
return htmlResults;
}
/**
* Are we generating xml reports for scanning results?
* @return true if generating xml reports
*/
public boolean generateXmlResults() {
return xmlResults;
}
/**
* Create CodeScanner settings for a given project and store it.
* @param project - the project in question
* @return the project specific CodeScanner settings
*/
public CSProjectSettings createProjectSettings(IProject project) {
synchronized (settingsMap) {
assert(settingsMap.get(project) == null);
CSProjectSettings settings = new CSProjectSettings(project);
settingsMap.put(project, settings);
return settings;
}
}
/**
* Get the CodeScanner settings for a given project.
* @param project - the project in question
* @return the project specific CodeScanner settings
*/
public CSProjectSettings getProjectSettings(IProject project) {
synchronized (settingsMap) {
CSProjectSettings settings = settingsMap.get(project);
if (settings == null) {
settings = createProjectSettings(project);
}
return settings;
}
}
/**
* Handle any resource change event
* @param event - the resource change event in question
*/
public void resourceChanged(IResourceChangeEvent event) {
// remove projects from map when they are closed or deleted
if (event.getType() == IResourceChangeEvent.PRE_CLOSE || event.getType() == IResourceChangeEvent.PRE_DELETE) {
settingsMap.remove(event.getResource());
}
}
/**
* Load either project specific or global CodeScanner configuration settings.
* @param project - project associated with currently selected resource
* @param configFilePath - path of CodeScanner configuration file
* @return true if settings has been successfully loaded
*/
public boolean loadConfigSettings(IProject project) {
boolean success = false;
if (project != null) {
success = loadProjectConfigSettings(project);
}
if (!success) {
success = loadGlobalConfigSettings();
}
clearArguments();
return success;
}
/**
* Load project specific CodeScanner settings.
* @param project - project associated with currently selected resource
* @param configFilePath - path of CodeScanner configuration file
* @return true if settings has been successfully loaded
*/
public boolean loadProjectConfigSettings(IProject project) {
if (project == null) {
return false;
}
boolean success = false;
CSProjectSettings projectSettings = getProjectSettings(project);
IDialogSettings cSettings = projectSettings.getDialogSettings();
IDialogSettings pageSettings = cSettings.getSection(CSPreferenceConstants.PROPERTY_SETTINGS_ID);
if (pageSettings == null) {
success = false;
}
else {
success = pageSettings.getBoolean(CSPreferenceConstants.PROJ_SETTINGS);
if (success) {
codescannerDir = pageSettings.get(CSPreferenceConstants.CODESCANNER_FOLDER);
htmlResults = pageSettings.getBoolean(CSPreferenceConstants.HTML_RESULTS);
xmlResults = pageSettings.getBoolean(CSPreferenceConstants.XML_RESULTS);
resultsDir = pageSettings.get(CSPreferenceConstants.RESULTS_FOLDER);
}
else {
codescannerDir = "";
htmlResults = false;
xmlResults = false;
resultsDir = "";
}
}
return success;
}
/**
* Load global CodeScanner settings.
* @param project - project associated with currently selected resource
* @param configFilePath - path of CodeScanner configuration file
* @return true if settings has been successfully loaded
*/
public boolean loadGlobalConfigSettings() {
IPreferenceStore store = CSPlugin.getCSPrefsStore();
codescannerDir = store.getString(CSPreferenceConstants.CODESCANNER_FOLDER);
htmlResults = store.getBoolean(CSPreferenceConstants.HTML_RESULTS);
xmlResults = store.getBoolean(CSPreferenceConstants.XML_RESULTS);
resultsDir = store.getString(CSPreferenceConstants.RESULTS_FOLDER);
return true;
}
/**
* Create a CodeScanner configuration file from either project specific or
* global CodeScanner configuration settings.
* @param project - project associated with currently selected resource
* @param configFilePath - path of CodeScanner configuration file
* @return true if configuration file has been successfully created
*/
public File createConfigFile(IProject project, String configFilePath) {
File configFile = null;
if (project != null) {
configFile = createProjectConfigFile(project, configFilePath);
}
if (configFile == null) {
configFile = createGlobalConfigFile(project, configFilePath);
}
return configFile;
}
/**
* Create a CodeScanner configuration file from project specific CodeScanner settings.
* @param configFilePath - path of CodeScanner configuration file
* @param settings - project specific CodeScanner settings
* @return CodeScanner configuration file
*/
public File createProjectConfigFile(IProject project, String configFilePath) {
if (configFilePath.length() == 0) {
return null;
}
// load project specific settings
CSProjectSettings projectSettings = getProjectSettings(project);
IDialogSettings cSettings = projectSettings.getDialogSettings();
IDialogSettings pageSettings = cSettings.getSection(CSPreferenceConstants.PROPERTY_SETTINGS_ID);
if (pageSettings == null) {
return null;
}
if (!pageSettings.getBoolean(CSPreferenceConstants.PROJ_SETTINGS)) {
return null;
}
// create and initialize a configuration file
File configFile = new File(configFilePath);
if (configFile.exists()) {
configFile.delete();
}
CSConfigSettings configSettings = new CSConfigSettings();
configSettings.loadDefaultConfig();
// retrieve various stored values
String fileFilterString = pageSettings.get(CSPreferenceConstants.FILE_FILTERS);
if (fileFilterString != null) {
StringTokenizer fileFilters = new StringTokenizer(fileFilterString, CSPreferenceConstants.DELIMETER);
EList<String> fileFilterList = configSettings.getSourceFilters().getExclude();
fileFilterList.clear();
while (fileFilters.hasMoreTokens()) {
String fileFilter = fileFilters.nextToken();
fileFilterList.add(fileFilter);
}
}
String scriptsString = pageSettings.get(CSPreferenceConstants.RULE_SCRIPTS);
String categoriesString = pageSettings.get(CSPreferenceConstants.RULE_CATEGORIES);
String severitiesString = pageSettings.get(CSPreferenceConstants.RULE_SEVERITIES);
String enabledString = pageSettings.get(CSPreferenceConstants.RULES_ENABLED);
if ((scriptsString != null) &&
(categoriesString != null) &&
(severitiesString != null) &&
(enabledString != null)) {
StringTokenizer scriptTokens = new StringTokenizer(scriptsString, CSPreferenceConstants.DELIMETER);
StringTokenizer categoryTokens = new StringTokenizer(categoriesString, CSPreferenceConstants.DELIMETER);
StringTokenizer severityTokens = new StringTokenizer(severitiesString, CSPreferenceConstants.DELIMETER);
StringTokenizer enabledTokens = new StringTokenizer(enabledString, CSPreferenceConstants.DELIMETER);
while (scriptTokens.hasMoreTokens() &&
categoryTokens.hasMoreTokens() &&
severityTokens.hasMoreTokens() &&
enabledTokens.hasMoreTokens()) {
String scriptString = "script_" + scriptTokens.nextToken();
String categoryString = categoryTokens.nextToken();
String severityString = severityTokens.nextToken();
int value = Integer.valueOf(enabledTokens.nextToken());
boolean enabled = (value != 0);
CSScript script = CSScript.toScript(scriptString);
if (!script.equals(CSScript.script_unknown)) {
configSettings.setScriptCategory(script, categoryString);
configSettings.setScriptSeverity(script, severityString);
configSettings.setScriptEnabled(script, enabled);
}
}
}
configSettings.setScriptCClassIgnore(pageSettings.get(CSPreferenceConstants.CCLASSIGNORE));
configSettings.setScriptForbiddenWords(pageSettings.get(CSPreferenceConstants.FORBIDEENWORDS));
String icons = pageSettings.get(CSPreferenceConstants.ICONS);
if (icons.length() == 0) {
icons = null;
}
configSettings.setScriptIcons(icons);
configSettings.setScriptLFunctionIgnore(pageSettings.get(CSPreferenceConstants.LFUNCTIONIGNORE));
configSettings.setScriptLongLinesLength(pageSettings.getInt(CSPreferenceConstants.LONGLINES_LENGTH));
configSettings.setScriptOpenIgnore(pageSettings.get(CSPreferenceConstants.OPENIGNORE));
configSettings.setScriptWorryingComments(pageSettings.get(CSPreferenceConstants.WORRYINGCOMMENTS));
configSettings.setInputArguments(inputArguments);
configSettings.setOutputFormatArgument(outputFormatArgument);
if (isProjectKbScanningEnabled(pageSettings)) {
CSPlugin.getKbManager().clearRules();
CSPlugin.getKbManager().addKBaseRulesToConfigSettings(project, configSettings);
}
// copy settings to the configuration file and return it
configSettings.saveConfig(configFile);
return configFile;
}
/**
* Create a CodeScanner configuration file from global CodeScanner settings.
* @param configFilePath - path of CodeScanner configuration file
* @return CodeScanner configuration file
*/
public File createGlobalConfigFile(IProject project, String configFilePath) {
if (configFilePath.length() == 0) {
return null;
}
// create and initialize a configuration file
File configFile = new File(configFilePath);
if (configFile.exists()) {
configFile.delete();
}
CSConfigSettings configSettings = new CSConfigSettings();
configSettings.loadDefaultConfig();
// retrieve various stored values
IPreferenceStore store = CSPlugin.getCSPrefsStore();
String fileFilterString = store.getString(CSPreferenceConstants.FILE_FILTERS);
if (fileFilterString != null) {
StringTokenizer fileFilters = new StringTokenizer(fileFilterString, CSPreferenceConstants.DELIMETER);
EList<String> fileFilterList = configSettings.getSourceFilters().getExclude();
fileFilterList.clear();
while (fileFilters.hasMoreTokens()) {
String fileFilter = fileFilters.nextToken();
fileFilterList.add(fileFilter);
}
}
String scriptsString = store.getString(CSPreferenceConstants.RULE_SCRIPTS);
String categoriesString = store.getString(CSPreferenceConstants.RULE_CATEGORIES);
String severitiesString = store.getString(CSPreferenceConstants.RULE_SEVERITIES);
String enabledString = store.getString(CSPreferenceConstants.RULES_ENABLED);
if ((scriptsString != null) &&
(categoriesString != null) &&
(severitiesString != null) &&
(enabledString != null)) {
StringTokenizer scriptTokens = new StringTokenizer(scriptsString, CSPreferenceConstants.DELIMETER);
StringTokenizer categoryTokens = new StringTokenizer(categoriesString, CSPreferenceConstants.DELIMETER);
StringTokenizer severityTokens = new StringTokenizer(severitiesString, CSPreferenceConstants.DELIMETER);
StringTokenizer enabledTokens = new StringTokenizer(enabledString, CSPreferenceConstants.DELIMETER);
while (scriptTokens.hasMoreTokens() &&
categoryTokens.hasMoreTokens() &&
severityTokens.hasMoreTokens() &&
enabledTokens.hasMoreTokens()) {
String scriptString = "script_" + scriptTokens.nextToken();
String categoryString = categoryTokens.nextToken();
String severityString = severityTokens.nextToken();
int value = Integer.valueOf(enabledTokens.nextToken());
boolean enabled = (value != 0);
CSScript script = CSScript.toScript(scriptString);
if (!script.equals(CSScript.script_unknown)) {
configSettings.setScriptCategory(script, categoryString);
configSettings.setScriptSeverity(script, severityString);
configSettings.setScriptEnabled(script, enabled);
}
}
}
configSettings.setScriptCClassIgnore(store.getString(CSPreferenceConstants.CCLASSIGNORE));
configSettings.setScriptForbiddenWords(store.getString(CSPreferenceConstants.FORBIDEENWORDS));
String icons = store.getString(CSPreferenceConstants.ICONS);
if (icons != null && icons.length() == 0) {
icons = null;
}
configSettings.setScriptIcons(icons);
configSettings.setScriptLFunctionIgnore(store.getString(CSPreferenceConstants.LFUNCTIONIGNORE));
configSettings.setScriptLongLinesLength(store.getInt(CSPreferenceConstants.LONGLINES_LENGTH));
configSettings.setScriptOpenIgnore(store.getString(CSPreferenceConstants.OPENIGNORE));
configSettings.setScriptWorryingComments(store.getString(CSPreferenceConstants.WORRYINGCOMMENTS));
configSettings.setInputArguments(inputArguments);
configSettings.setOutputFormatArgument(outputFormatArgument);
if (isGlobalKbScanningEnabled()) {
CSPlugin.getKbManager().clearRules();
CSPlugin.getKbManager().addKBaseRulesToConfigSettings(project, configSettings);
}
// copy settings to the configuration file and return it
configSettings.saveConfig(configFile);
return configFile;
}
/**
* Load project specific CodeScanner settings from a CodeScanner configuration file.
* @param configFilePath - path of CodeScanner configuration file
* @param settings - project specific CodeScanner settings
*/
public void loadProjectConfigFile(String configFilePath, IDialogSettings settings) {
if ((configFilePath.length() == 0) || (settings == null)) {
return;
}
// load settings from a configuration file
File configFile = new File(configFilePath);
CSConfigSettings configSettings = new CSConfigSettings();
configSettings.loadDefaultConfig();
if (configSettings.loadConfig(configFile)) {
// store various values
String fileFilters = "";
EList<String> fileFilterList = configSettings.getSourceFilters().getExclude();
for (Iterator<String> iterator = fileFilterList.iterator(); iterator.hasNext();) {
fileFilters += iterator.next() + CSPreferenceConstants.DELIMETER;
}
settings.put(CSPreferenceConstants.FILE_FILTERS, fileFilters);
String scriptString = "";
String categoryString = "";
String severityString = "";
String enabledString = "";
for (CSScript script : CSScript.values()) {
if (!script.equals(CSScript.script_unknown)) {
scriptString += script.toString() + CSPreferenceConstants.DELIMETER;
if (configSettings.getScript(script) != null) {
categoryString += configSettings.getScriptCategory(script) + CSPreferenceConstants.DELIMETER;
severityString += configSettings.getScriptSeverity(script) + CSPreferenceConstants.DELIMETER;
int flag = 1;
if (!configSettings.getScriptEnabled(script))
flag = 0;
enabledString += flag + CSPreferenceConstants.DELIMETER;
}
else {
categoryString += defaultConfig.getScriptCategory(script) + CSPreferenceConstants.DELIMETER;
severityString += defaultConfig.getScriptSeverity(script) + CSPreferenceConstants.DELIMETER;
int flag = 1;
if (!defaultConfig.getScriptEnabled(script))
flag = 0;
enabledString += flag + CSPreferenceConstants.DELIMETER;
}
}
}
settings.put(CSPreferenceConstants.RULE_SCRIPTS, scriptString);
settings.put(CSPreferenceConstants.RULE_CATEGORIES, categoryString);
settings.put(CSPreferenceConstants.RULE_SEVERITIES, severityString);
settings.put(CSPreferenceConstants.RULES_ENABLED, enabledString);
settings.put(CSPreferenceConstants.CCLASSIGNORE, getCClassIgnoreFromConfig(configSettings));
settings.put(CSPreferenceConstants.FORBIDEENWORDS, getForbiddenWordsFromConfig(configSettings));
settings.put(CSPreferenceConstants.ICONS, getIconsFromConfig(configSettings));
settings.put(CSPreferenceConstants.LFUNCTIONIGNORE, getLFunctionIgnoreFromConfig(configSettings));
settings.put(CSPreferenceConstants.LONGLINES_LENGTH, getLongLinesLengthFromConfig(configSettings));
settings.put(CSPreferenceConstants.OPENIGNORE, getOpenIgnoreFromConfig(configSettings));
settings.put(CSPreferenceConstants.WORRYINGCOMMENTS, getWorryingCommentsFromConfig(configSettings));
}
}
/**
* Load global CodeScanner settings from a CodeScanner configuration file.
* @param configFilePath - path of CodeScanner configuration file
*/
public void loadGlobalConfigFile(String configFilePath) {
if (configFilePath.length() == 0) {
return;
}
// load settings from a configuration file
File configFile = new File(configFilePath);
CSConfigSettings configSettings = new CSConfigSettings();
configSettings.loadDefaultConfig();
if (configSettings.loadConfig(configFile)) {
IPreferenceStore store = CSPlugin.getCSPrefsStore();
// store various values
String fileFilters = "";
EList<String> fileFilterList = configSettings.getSourceFilters().getExclude();
for (Iterator<String> iterator = fileFilterList.iterator(); iterator.hasNext();) {
fileFilters += iterator.next() + CSPreferenceConstants.DELIMETER;
}
store.setValue(CSPreferenceConstants.FILE_FILTERS, fileFilters);
String scriptString = "";
String categoryString = "";
String severityString = "";
String enabledString = "";
for (CSScript script : CSScript.values()) {
if (!script.equals(CSScript.script_unknown)) {
scriptString += script.toString() + CSPreferenceConstants.DELIMETER;
if (configSettings.getScript(script) != null) {
categoryString += configSettings.getScriptCategory(script) + CSPreferenceConstants.DELIMETER;
severityString += configSettings.getScriptSeverity(script) + CSPreferenceConstants.DELIMETER;
int flag = 1;
if (!configSettings.getScriptEnabled(script))
flag = 0;
enabledString += flag + CSPreferenceConstants.DELIMETER;
}
else {
categoryString += defaultConfig.getScriptCategory(script) + CSPreferenceConstants.DELIMETER;
severityString += defaultConfig.getScriptSeverity(script) + CSPreferenceConstants.DELIMETER;
int flag = 1;
if (!defaultConfig.getScriptEnabled(script))
flag = 0;
enabledString += flag + CSPreferenceConstants.DELIMETER;
}
}
}
store.setValue(CSPreferenceConstants.RULE_SCRIPTS, scriptString);
store.setValue(CSPreferenceConstants.RULE_CATEGORIES, categoryString);
store.setValue(CSPreferenceConstants.RULE_SEVERITIES, severityString);
store.setValue(CSPreferenceConstants.RULES_ENABLED, enabledString);
store.setValue(CSPreferenceConstants.CCLASSIGNORE, getCClassIgnoreFromConfig(configSettings));
store.setValue(CSPreferenceConstants.FORBIDEENWORDS, getForbiddenWordsFromConfig(configSettings));
store.setValue(CSPreferenceConstants.ICONS, getIconsFromConfig(configSettings));
store.setValue(CSPreferenceConstants.LFUNCTIONIGNORE, getLFunctionIgnoreFromConfig(configSettings));
store.setValue(CSPreferenceConstants.LONGLINES_LENGTH, getLongLinesLengthFromConfig(configSettings));
store.setValue(CSPreferenceConstants.OPENIGNORE, getOpenIgnoreFromConfig(configSettings));
store.setValue(CSPreferenceConstants.WORRYINGCOMMENTS, getWorryingCommentsFromConfig(configSettings));
}
}
/**
* Set the input arguments.
* @param configSettings - CodeScanner configuration settings to be set
* @param inputPaths - input paths to be converted into input arguments
*/
public void setInputArguments(List<IPath> inputPaths) {
inputArguments = new ArrayList<String>();
for (IPath inputPath : inputPaths){
inputArguments.add(inputPath.toOSString());
}
}
/**
* Set the output format argument.
* @param configSettings - CodeScanner configuration settings to be set
*/
public void setOutputFormatArgument() {
outputFormatArgument = "std";
if (generateHtmlResults()) {
outputFormatArgument += "|html";
}
if (generateXmlResults()) {
outputFormatArgument += "|xml";
}
}
/**
* Clear various argument settings.
*/
private void clearArguments() {
inputArguments = null;
outputFormatArgument = null;
}
/**
* Get the C class ignore list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return C class ignore list as a string
*/
private String getCClassIgnoreFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptCClassIgnore();
if (value == null) {
value = getDefaultConfig().getScriptCClassIgnore();
}
return value;
}
/**
* Get the forbidden words list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return forbidden words list as a string
*/
private String getForbiddenWordsFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptForbiddenWords();
if (value == null) {
value = getDefaultConfig().getScriptForbiddenWords();
}
return value;
}
/**
* Get the customizable icons list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return customizable icons list as a string
*/
private String getIconsFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptIcons();
if (value == null) {
value = getDefaultConfig().getScriptIcons();
}
if (value == null) {
value = "";
}
return value;
}
/**
* Get the L-function ignore list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return L-function ignore list as a string
*/
private String getLFunctionIgnoreFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptLFunctionIgnore();
if (value == null) {
value = getDefaultConfig().getScriptLFunctionIgnore();
}
return value;
}
/**
* Get the long lines length attribute value from a CodeScanner configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return the long lines length attribute value
*/
private int getLongLinesLengthFromConfig(CSConfigSettings configSettings) {
return configSettings.getScriptLongLinesLength();
}
/**
* Get the Open() function ignore list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return Open() function ignore list as a string
*/
private String getOpenIgnoreFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptOpenIgnore();
if (value == null) {
value = getDefaultConfig().getScriptOpenIgnore();
}
return value;
}
/**
* Get the worrying comments list from from a CodeScanner configuration settings.
* If the list does not exist in, get it from the default configuration settings.
* @param configSettings - CodeScanner configuration settings to be read
* @return worrying comments list as a string
*/
private String getWorryingCommentsFromConfig(CSConfigSettings configSettings) {
String value = configSettings.getScriptWorryingComments();
if (value == null) {
value = getDefaultConfig().getScriptWorryingComments();
}
return value;
}
/**
* Check whether to perform project specific knowledge base scanning.
* @param pageSettings - project specific settings
* @return true if performing project specific knowledge base scanning.
*/
private boolean isProjectKbScanningEnabled (IDialogSettings pageSettings) {
return pageSettings.getBoolean(CSPreferenceConstants.KBSCANNING);
}
/**
* Check whether to perform global knowledge base scanning.
* @return true if performing global knowledge base scanning.
*/
private boolean isGlobalKbScanningEnabled() {
return CSPlugin.getCSPrefsStore().getBoolean(CSPreferenceConstants.KBSCANNING);
}
}