/*
* 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.io.IOException;
import java.net.URISyntaxException;
import java.util.List;

import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;

import com.nokia.carbide.cpp.internal.codescanner.Messages;
import com.nokia.carbide.cpp.internal.codescanner.gen.CSConfig.*;
import com.nokia.carbide.cpp.internal.codescanner.xml.CSConfigXMLLoader;

/**
 * A class for handling CodeScanner configuration settings.
 *
 */
public class CSConfigSettings {

	private CodescannerConfigType csConfig;

	/**
	 * The constructor.
	 */
	public CSConfigSettings() {
		csConfig = null;
	}
	
	/**
	 * Create the default CodeScanner configuration settings.
	 */
	public void loadDefaultConfig() {
		CodescannerConfigType config = CSConfigFactory.eINSTANCE.createCodescannerConfigType();
		config.setArguments(createDefaultArguments());
		config.setCategories(createDefaultCategories());
		config.setCustomrules(createDefaultCustomRules());
		config.setScripts(createDefaultScripts());
		config.setSeverities(createDefaultSeverities());
		config.setSources(createDefaultSources());
		csConfig = config;
	}

	/**
	 * Load CodeScanner configuration settings from a file.
	 * @param configFile - file containing CodeScanner configuration settings.
	 * @return true on success
	 */
	public boolean loadConfig(File configFile) {
		if (configFile == null)
			return false;
		boolean success = true;
		try {
			this.csConfig = CSConfigXMLLoader.loadCSConfig(configFile.toURL());	
			success = (this.csConfig != null);
		}
		catch (URISyntaxException eURI){
			eURI.printStackTrace();
			loadConfigError(configFile.getName(), eURI.getMessage());
			success = false;
		}
		catch (IOException eIO){
			eIO.printStackTrace();
			loadConfigError(configFile.getName(), eIO.getMessage());
			success = false;
		}
		return success;
	}

	/**
	 * Save CodeScanner configuration settings to a file.
	 * @param configFile - file to write CodeScanner configuration settings.
	 * @return true on success
	 */
	public boolean saveConfig(File configFile) {
		if (configFile == null)
			return false;
		boolean success = true;
		try {
			if (this.csConfig != null) {
				configFile.createNewFile();
				success = CSConfigXMLLoader.writeCSConfig(this.csConfig, configFile.toURL());
			}
			else
				success = false;
		}
		catch (URISyntaxException eURI){
			eURI.printStackTrace();
			saveConfigError(configFile.getName(), eURI.getMessage());
			success = false;
		}
		catch (IOException eIO){
			eIO.printStackTrace();
			saveConfigError(configFile.getName(), eIO.getMessage());
			success = false;
		}
		return success;
	}

	/**
	 * Retrieve entire CodeScanner configuration settings
	 * @return CodeScanner configuration settings
	 */
	public CodescannerConfigType getConfig() {
		return this.csConfig;
	}

	/**
	 * Set entire CodeScanner configuration settings
	 * @param config - new configuration settings
	 */
	public void setConfig(CodescannerConfigType config) {
		this.csConfig = config;
	}

	/**
	 * Retrieve CodeScanner arguments
	 * @return CodeScanner arguments
	 */
	public ArgumentsType getArguments() {
		return this.csConfig.getArguments();
	}

	/**
	 * Set CodeScanner arguments
	 * @param arguments - new arguments
	 */
	public void setArguments(ArgumentsType arguments) {
		this.csConfig.setArguments(arguments);
	}

	/**
	 * Retrieve a CodeScanner argument.
	 * @param argument - argument element containing the attribute
	 * @return argument element
	 */
	public Object getArgument(CSArgument argument) {
		switch (argument) {
			case argument_input:
				return this.csConfig.getArguments().getInput();
			case argument_lxr:
				return this.csConfig.getArguments().getLxr();
			case argument_lxrversion:
				return this.csConfig.getArguments().getLxrversion();
			case argument_outputformat:
				return this.csConfig.getArguments().getOutputformat();
			case argument_timestampedoutput:
				return this.csConfig.getArguments().getTimestampedoutput();
			case argument_unknown:
			default:
				return null;
		}
	}

	/**
	 * Set values of the "input" arguments
	 * @param inputPaths - new values
	 */
	public void setInputArguments(List<String> inputPaths) {
		EList<String> inputArgumentList = this.csConfig.getArguments().getInput();
		inputArgumentList.clear();
		if (inputPaths != null) {
			for (String inputPath : inputPaths) {
				inputArgumentList.add(inputPath);
			}
		}
	}

	/**
	 * Set value of the "lxr" argument
	 * @param value - new value
	 */
	public void setLxrArgument(String value) {
		this.csConfig.getArguments().setLxr(value);
	}

	/**
	 * Set value of the "lxrversion" argument
	 * @param value - new value
	 */
	public void setLxrVersionArgument(String value) {
		this.csConfig.getArguments().setLxrversion(value);
	}

	/**
	 * Set value of the "outputformat" argument
	 * @param value - new value
	 */
	public void setOutputFormatArgument(String value) {
		this.csConfig.getArguments().setOutputformat(value);
	}

	/**
	 * Set value of the "timestampedoutput" argument
	 * @param value - new value
	 */
	public void setTimeStampedOutputArgument(String value) {
		this.csConfig.getArguments().setTimestampedoutput(value);
	}

	/**
	 * Retrieve the custom rules
	 * @return custom rules
	 */
	public CustomrulesType getCustomRules() {
		return this.csConfig.getCustomrules();
	}

	/**
	 * Set the custom rules
	 * @param customRules - new set of custom rules
	 */
	public void SetCustomRules(CustomrulesType customRules) {
		this.csConfig.setCustomrules(customRules);
	}

	/**
	 * Retrieve CodeScanner script category settings
	 * @return CodeScanner script category settings
	 */
	public CategoriesType getCategories() {
		return this.csConfig.getCategories();
	}

	/**
	 * Set CodeScanner script category settings
	 * @param categories - new script category settings
	 */
	public void setCategories(CategoriesType categories) {
		this.csConfig.setCategories(categories);
	}

	/**
	 * Retrieve CodeScanner script settings
	 * @return CodeScanner script settings
	 */
	public ScriptsType getScripts() {
		return this.csConfig.getScripts();
	}

	/**
	 * Set CodeScanner script settings
	 * @param scripts - new script settings
	 */
	public void setScripts(ScriptsType scripts) {
		this.csConfig.setScripts(scripts);
	}

	/**
	 * Retrieve CodeScanner script severity settings
	 * @return CodeScanner script severity settings
	 */
	public SeveritiesType getSeverities() {
		return this.csConfig.getSeverities();
	}

	/**
	 * Set CodeScanner script severity settings
	 * @param severities - new script severity settings
	 */
	public void setSeverities(SeveritiesType severities) {
		this.csConfig.setSeverities(severities);
	}

	/**
	 * Retrieve CodeScanner source filter settings
	 * @return CodeScanner source filter settings
	 */
	public SourcesType getSourceFilters() {
		return this.csConfig.getSources();
	}

	/**
	 * Set CodeScanner source filter settings
	 * @param sourcefilters - new source filter settings
	 */
	public void setSourceFilters(SourcesType sourcefilters) {
		this.csConfig.setSources(sourcefilters);
	}

	/**
	 * Retrieve a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @return script element
	 */
	public Object getScript(CSScript script) {
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck();
			case script_accessArrayElementWithoutCheck2:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck2();
			case script_activestart:
				return this.csConfig.getScripts().getActivestart();
			case script_activestop:
				return this.csConfig.getScripts().getActivestop();
			case script_arraypassing:
				return this.csConfig.getScripts().getArraypassing();
			case script_arrayptrcleanup:
				return this.csConfig.getScripts().getArrayptrcleanup();
			case script_assertdebuginvariant:
				return this.csConfig.getScripts().getAssertdebuginvariant();
			case script_baddefines:
				return this.csConfig.getScripts().getBaddefines();
			case script_baseconstruct:
				return this.csConfig.getScripts().getBaseconstruct();
			case script_callActiveObjectWithoutCheckingOrStopping:
				return this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping();
			case script_changenotification:
				return this.csConfig.getScripts().getChangenotification();
			case script_cleanup:
				return this.csConfig.getScripts().getCleanup();
			case script_commentcode:
				return this.csConfig.getScripts().getCommentcode();
			case script_connect:
				return this.csConfig.getScripts().getConnect();
			case script_ConnectAndDontCloseMemberVariable:
				return this.csConfig.getScripts().getConnectAndDontCloseMemberVariable();
			case script_constnames:
				return this.csConfig.getScripts().getConstnames();
			case script_consttdescptr:
				return this.csConfig.getScripts().getConsttdescptr();
			case script_controlornull:
				return this.csConfig.getScripts().getControlornull();
			case script_ctltargettype:
				return this.csConfig.getScripts().getCtltargettype();
			case script_debugrom:
				return this.csConfig.getScripts().getDebugrom();
			case script_declarename:
				return this.csConfig.getScripts().getDeclarename();
			case script_deleteMemberVariable:
				return this.csConfig.getScripts().getDeleteMemberVariable();
			case script_destructor:
				return this.csConfig.getScripts().getDestructor();
			case script_doubleSemiColon:
				return this.csConfig.getScripts().getDoubleSemiColon();
			case script_driveletters:
				return this.csConfig.getScripts().getDriveletters();
			case script_eikbuttons:
				return this.csConfig.getScripts().getEikbuttons();
			case script_eikonenvstatic:
				return this.csConfig.getScripts().getEikonenvstatic();
			case script_enummembers:
				return this.csConfig.getScripts().getEnummembers();
			case script_enumnames:
				return this.csConfig.getScripts().getEnumnames();
			case script_exportinline:
				return this.csConfig.getScripts().getExportinline();
			case script_exportpurevirtual:
				return this.csConfig.getScripts().getExportpurevirtual();
//			case script_externaldriveletters:
//				return this.csConfig.getScripts().getExternaldriveletters();
			case script_foff:
				return this.csConfig.getScripts().getFoff();
			case script_forbiddenwords:
				return this.csConfig.getScripts().getForbiddenwords();
			case script_forgottoputptroncleanupstack:
				return this.csConfig.getScripts().getForgottoputptroncleanupstack();
			case script_friend:
				return this.csConfig.getScripts().getFriend();
			case script_goto:
				return this.csConfig.getScripts().getGoto();
			case script_ifassignments:
				return this.csConfig.getScripts().getIfassignments();
			case script_ifpreprocessor:
				return this.csConfig.getScripts().getIfpreprocessor();
			case script_inheritanceorder:
				return this.csConfig.getScripts().getInheritanceorder();
			case script_intleaves:
				return this.csConfig.getScripts().getIntleaves();
			case script_jmp:
				return this.csConfig.getScripts().getJmp();
			case script_leave:
				return this.csConfig.getScripts().getLeave();
			case script_LeaveNoError:
				return this.csConfig.getScripts().getLeaveNoError();
			case script_leavingoperators:
				return this.csConfig.getScripts().getLeavingoperators();
			case script_LFunctionCantLeave:
				return this.csConfig.getScripts().getLFunctionCantLeave();
			case script_longlines: 
				return this.csConfig.getScripts().getLonglines();
			case script_magicnumbers:
				return this.csConfig.getScripts().getMagicnumbers();
			case script_mclassdestructor:
				return this.csConfig.getScripts().getMclassdestructor();
			case script_memberlc:
				return this.csConfig.getScripts().getMemberlc();
			case script_membervariablecallld:
				return this.csConfig.getScripts().getMembervariablecallld();
			case script_missingcancel:
				return this.csConfig.getScripts().getMissingcancel();
			case script_missingcclass:
				return this.csConfig.getScripts().getMissingcclass();
			case script_mmpsourcepath:
				return this.csConfig.getScripts().getMmpsourcepath();
			case script_multilangrsc:
				return this.csConfig.getScripts().getMultilangrsc();
			case script_multipledeclarations:
				return this.csConfig.getScripts().getMultipledeclarations();
			case script_multipleinheritance:
				return this.csConfig.getScripts().getMultipleinheritance();
			case script_mydocs:
				return this.csConfig.getScripts().getMydocs();
			case script_namespace:
				return this.csConfig.getScripts().getNamespace();
			case script_newlreferences:
				return this.csConfig.getScripts().getNewlreferences();
			case script_noleavetrap:
				return this.csConfig.getScripts().getNoleavetrap();
			case script_nonconsthbufc:
				return this.csConfig.getScripts().getNonconsthbufc();
			case script_nonconsttdesc:
				return this.csConfig.getScripts().getNonconsttdesc();
			case script_nonleavenew:
				return this.csConfig.getScripts().getNonleavenew();
			case script_nonunicodeskins:
				return this.csConfig.getScripts().getNonunicodeskins();
			case script_null:
				return this.csConfig.getScripts().getNull();
			case script_open:
				return this.csConfig.getScripts().getOpen();
			case script_pointertoarrays:
				return this.csConfig.getScripts().getPointertoarrays();
			case script_pragmadisable:
				return this.csConfig.getScripts().getPragmadisable();
			case script_pragmamessage:
				return this.csConfig.getScripts().getPragmamessage();
			case script_pragmaother:
				return this.csConfig.getScripts().getPragmaother();
			case script_privateinheritance:
				return this.csConfig.getScripts().getPrivateinheritance();
			case script_pushaddrvar:
				return this.csConfig.getScripts().getPushaddrvar();
			case script_pushmember:
				return this.csConfig.getScripts().getPushmember();
			case script_readresource:
				return this.csConfig.getScripts().getReadresource();
			case script_resourcenotoncleanupstack:
				return this.csConfig.getScripts().getResourcenotoncleanupstack();
			case script_resourcesonheap:
				return this.csConfig.getScripts().getResourcesonheap();
			case script_returndescriptoroutofscope:
				return this.csConfig.getScripts().getReturndescriptoroutofscope();
			case script_rfs:
				return this.csConfig.getScripts().getRfs();
			case script_rssnames:
				return this.csConfig.getScripts().getRssnames();
			case script_stringliterals:
				return this.csConfig.getScripts().getStringliterals();
			case script_stringsinresourcefiles:
				return this.csConfig.getScripts().getStringsinresourcefiles();
			case script_struct:
				return this.csConfig.getScripts().getStruct();
			case script_tcclasses:
				return this.csConfig.getScripts().getTcclasses();
			case script_tclassdestructor:
				return this.csConfig.getScripts().getTclassdestructor();
			case script_todocomments:
				return this.csConfig.getScripts().getTodocomments();
			case script_trapcleanup:
				return this.csConfig.getScripts().getTrapcleanup();
			case script_trapeleave:
				return this.csConfig.getScripts().getTrapeleave();
			case script_traprunl:
				return this.csConfig.getScripts().getTraprunl();
			case script_trspassing:
				return this.csConfig.getScripts().getTrspassing();
			case script_uids:
				return this.csConfig.getScripts().getUids();
			case script_uncompressedaif:
				return this.csConfig.getScripts().getUncompressedaif();
			case script_uncompressedbmp:
				return this.csConfig.getScripts().getUncompressedaif();
			case script_unicodesource:
				return this.csConfig.getScripts(). getUnicodesource();
			case script_userafter:
				return this.csConfig.getScripts().getUserafter();
			case script_userfree:
				return this.csConfig.getScripts().getUserfree();
			case script_userWaitForRequest:
				return this.csConfig.getScripts().getUserWaitForRequest();
			case script_variablenames:
				return this.csConfig.getScripts().getVariablenames();
			case script_voidparameter:
				return this.csConfig.getScripts().getVoidparameter();
			case script_worryingcomments:
				return this.csConfig.getScripts().getWorryingcomments();
			case script_unknown:
			default:
				return null;
		}
	}

	/**
	 * Retrieve the "enabled" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @return attribute value
	 */
	public boolean getScriptEnabled(CSScript script) {
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck().isEnable();
			case script_accessArrayElementWithoutCheck2:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().isEnable();
			case script_activestart:
				return this.csConfig.getScripts().getActivestart().isEnable();
			case script_activestop:
				return this.csConfig.getScripts().getActivestop().isEnable();
			case script_arraypassing:
				return this.csConfig.getScripts().getArraypassing().isEnable();
			case script_arrayptrcleanup:
				return this.csConfig.getScripts().getArrayptrcleanup().isEnable();
			case script_assertdebuginvariant:
				return this.csConfig.getScripts().getAssertdebuginvariant().isEnable();
			case script_baddefines:
				return this.csConfig.getScripts().getBaddefines().isEnable();
			case script_baseconstruct:
				return this.csConfig.getScripts().getBaseconstruct().isEnable();
			case script_callActiveObjectWithoutCheckingOrStopping:
				return this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().isEnable();
			case script_changenotification:
				return this.csConfig.getScripts().getChangenotification().isEnable();
			case script_cleanup:
				return this.csConfig.getScripts().getCleanup().isEnable();
			case script_commentcode:
				return this.csConfig.getScripts().getCommentcode().isEnable();
			case script_connect:
				return this.csConfig.getScripts().getConnect().isEnable();
			case script_ConnectAndDontCloseMemberVariable:
				return this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().isEnable();
			case script_constnames:
				return this.csConfig.getScripts().getConstnames().isEnable();
			case script_consttdescptr:
				return this.csConfig.getScripts().getConsttdescptr().isEnable();
			case script_controlornull:
				return this.csConfig.getScripts().getControlornull().isEnable();
			case script_ctltargettype:
				return this.csConfig.getScripts().getCtltargettype().isEnable();
			case script_debugrom:
				return this.csConfig.getScripts().getDebugrom().isEnable();
			case script_declarename:
				return this.csConfig.getScripts().getDeclarename().isEnable();
			case script_deleteMemberVariable:
				return this.csConfig.getScripts().getDeleteMemberVariable().isEnable();
			case script_destructor:
				return this.csConfig.getScripts().getDestructor().isEnable();
			case script_doubleSemiColon:
				return this.csConfig.getScripts().getDoubleSemiColon().isEnable();
			case script_driveletters:
				return this.csConfig.getScripts().getDriveletters().isEnable();
			case script_eikbuttons:
				return this.csConfig.getScripts().getEikbuttons().isEnable();
			case script_eikonenvstatic:
				return this.csConfig.getScripts().getEikonenvstatic().isEnable();
			case script_enummembers:
				return this.csConfig.getScripts().getEnummembers().isEnable();
			case script_enumnames:
				return this.csConfig.getScripts().getEnumnames().isEnable();
			case script_exportinline:
				return this.csConfig.getScripts().getExportinline().isEnable();
			case script_exportpurevirtual:
				return this.csConfig.getScripts().getExportpurevirtual().isEnable();
//			case script_externaldriveletters:
//				return this.csConfig.getScripts().getExternaldriveletters().isEnable();
			case script_foff:
				return this.csConfig.getScripts().getFoff().isEnable();
			case script_forbiddenwords:
				return this.csConfig.getScripts().getForbiddenwords().isEnable();
			case script_forgottoputptroncleanupstack:
				return this.csConfig.getScripts().getForgottoputptroncleanupstack().isEnable();
			case script_friend:
				return this.csConfig.getScripts().getFriend().isEnable();
			case script_goto:
				return this.csConfig.getScripts().getGoto().isEnable();
			case script_ifassignments:
				return this.csConfig.getScripts().getIfassignments().isEnable();
			case script_ifpreprocessor:
				return this.csConfig.getScripts().getIfpreprocessor().isEnable();
			case script_inheritanceorder:
				return this.csConfig.getScripts().getInheritanceorder().isEnable();
			case script_intleaves:
				return this.csConfig.getScripts().getIntleaves().isEnable();
			case script_jmp:
				return this.csConfig.getScripts().getJmp().isEnable();
			case script_leave:
				return this.csConfig.getScripts().getLeave().isEnable();
			case script_LeaveNoError:
				return this.csConfig.getScripts().getLeaveNoError().isEnable();
			case script_leavingoperators:
				return this.csConfig.getScripts().getLeavingoperators().isEnable();
			case script_LFunctionCantLeave:
				return this.csConfig.getScripts().getLFunctionCantLeave().isEnable();
			case script_longlines: 
				return this.csConfig.getScripts().getLonglines().isEnable();
			case script_magicnumbers:
				return this.csConfig.getScripts().getMagicnumbers().isEnable();
			case script_mclassdestructor:
				return this.csConfig.getScripts().getMclassdestructor().isEnable();
			case script_memberlc:
				return this.csConfig.getScripts().getMemberlc().isEnable();
			case script_membervariablecallld:
				return this.csConfig.getScripts().getMembervariablecallld().isEnable();
			case script_missingcancel:
				return this.csConfig.getScripts().getMissingcancel().isEnable();
			case script_missingcclass:
				return this.csConfig.getScripts().getMissingcclass().isEnable();
			case script_mmpsourcepath:
				return this.csConfig.getScripts().getMmpsourcepath().isEnable();
			case script_multilangrsc:
				return this.csConfig.getScripts().getMultilangrsc().isEnable();
			case script_multipledeclarations:
				return this.csConfig.getScripts().getMultipledeclarations().isEnable();
			case script_multipleinheritance:
				return this.csConfig.getScripts().getMultipleinheritance().isEnable();
			case script_mydocs:
				return this.csConfig.getScripts().getMydocs().isEnable();
			case script_namespace:
				return this.csConfig.getScripts().getNamespace().isEnable();
			case script_newlreferences:
				return this.csConfig.getScripts().getNewlreferences().isEnable();
			case script_noleavetrap:
				return this.csConfig.getScripts().getNoleavetrap().isEnable();
			case script_nonconsthbufc:
				return this.csConfig.getScripts().getNonconsthbufc().isEnable();
			case script_nonconsttdesc:
				return this.csConfig.getScripts().getNonconsttdesc().isEnable();
			case script_nonleavenew:
				return this.csConfig.getScripts().getNonleavenew().isEnable();
			case script_nonunicodeskins:
				return this.csConfig.getScripts().getNonunicodeskins().isEnable();
			case script_null:
				return this.csConfig.getScripts().getNull().isEnable();
			case script_open:
				return this.csConfig.getScripts().getOpen().isEnable();
			case script_pointertoarrays:
				return this.csConfig.getScripts().getPointertoarrays().isEnable();
			case script_pragmadisable:
				return this.csConfig.getScripts().getPragmadisable().isEnable();
			case script_pragmamessage:
				return this.csConfig.getScripts().getPragmamessage().isEnable();
			case script_pragmaother:
				return this.csConfig.getScripts().getPragmaother().isEnable();
			case script_privateinheritance:
				return this.csConfig.getScripts().getPrivateinheritance().isEnable();
			case script_pushaddrvar:
				return this.csConfig.getScripts().getPushaddrvar().isEnable();
			case script_pushmember:
				return this.csConfig.getScripts().getPushmember().isEnable();
			case script_readresource:
				return this.csConfig.getScripts().getReadresource().isEnable();
			case script_resourcenotoncleanupstack:
				return this.csConfig.getScripts().getResourcenotoncleanupstack().isEnable();
			case script_resourcesonheap:
				return this.csConfig.getScripts().getResourcesonheap().isEnable();
			case script_returndescriptoroutofscope:
				return this.csConfig.getScripts().getReturndescriptoroutofscope().isEnable();
			case script_rfs:
				return this.csConfig.getScripts().getRfs().isEnable();
			case script_rssnames:
				return this.csConfig.getScripts().getRssnames().isEnable();
			case script_stringliterals:
				return this.csConfig.getScripts().getStringliterals().isEnable();
			case script_stringsinresourcefiles:
				return this.csConfig.getScripts().getStringsinresourcefiles().isEnable();
			case script_struct:
				return this.csConfig.getScripts().getStruct().isEnable();
			case script_tcclasses:
				return this.csConfig.getScripts().getTcclasses().isEnable();
			case script_tclassdestructor:
				return this.csConfig.getScripts().getTclassdestructor().isEnable();
			case script_todocomments:
				return this.csConfig.getScripts().getTodocomments().isEnable();
			case script_trapcleanup:
				return this.csConfig.getScripts().getTrapcleanup().isEnable();
			case script_trapeleave:
				return this.csConfig.getScripts().getTrapeleave().isEnable();
			case script_traprunl:
				return this.csConfig.getScripts().getTraprunl().isEnable();
			case script_trspassing:
				return this.csConfig.getScripts().getTrspassing().isEnable();
			case script_uids:
				return this.csConfig.getScripts().getUids().isEnable();
			case script_uncompressedaif:
				return this.csConfig.getScripts().getUncompressedaif().isEnable();
			case script_uncompressedbmp:
				return this.csConfig.getScripts().getUncompressedaif().isEnable();
			case script_unicodesource:
				return this.csConfig.getScripts(). getUnicodesource().isEnable();
			case script_userafter:
				return this.csConfig.getScripts().getUserafter().isEnable();
			case script_userfree:
				return this.csConfig.getScripts().getUserfree().isEnable();
			case script_userWaitForRequest:
				return this.csConfig.getScripts().getUserWaitForRequest().isEnable();
			case script_variablenames:
				return this.csConfig.getScripts().getVariablenames().isEnable();
			case script_voidparameter:
				return this.csConfig.getScripts().getVoidparameter().isEnable();
			case script_worryingcomments:
				return this.csConfig.getScripts().getWorryingcomments().isEnable();
			case script_unknown:
			default:
				return true;
		}
	}

	/**
	 * Set the "enabled" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @param value - new attribute value
	 */
	public void setScriptEnabled(CSScript script, boolean value) {
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck().setEnable(value);
				break;
			case script_accessArrayElementWithoutCheck2:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().setEnable(value);
				break;
			case script_activestart:
				this.csConfig.getScripts().getActivestart().setEnable(value);
				break;
			case script_activestop:
				this.csConfig.getScripts().getActivestop().setEnable(value);
				break;
			case script_arraypassing:
				this.csConfig.getScripts().getArraypassing().setEnable(value);
				break;
			case script_arrayptrcleanup:
				this.csConfig.getScripts().getArrayptrcleanup().setEnable(value);
				break;
			case script_assertdebuginvariant:
				this.csConfig.getScripts().getAssertdebuginvariant().setEnable(value);
				break;
			case script_baddefines:
				this.csConfig.getScripts().getBaddefines().setEnable(value);
				break;
			case script_baseconstruct:
				this.csConfig.getScripts().getBaseconstruct().setEnable(value);
				break;
			case script_callActiveObjectWithoutCheckingOrStopping:
				this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().setEnable(value);
				break;
			case script_changenotification:
				this.csConfig.getScripts().getChangenotification().setEnable(value);
				break;
			case script_cleanup:
				this.csConfig.getScripts().getCleanup().setEnable(value);
				break;
			case script_commentcode:
				this.csConfig.getScripts().getCommentcode().setEnable(value);
				break;
			case script_connect:
				this.csConfig.getScripts().getConnect().setEnable(value);
				break;
			case script_ConnectAndDontCloseMemberVariable:
				this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().setEnable(value);
				break;
			case script_constnames:
				this.csConfig.getScripts().getConstnames().setEnable(value);
				break;
			case script_consttdescptr:
				this.csConfig.getScripts().getConsttdescptr().setEnable(value);
				break;
			case script_controlornull:
				this.csConfig.getScripts().getControlornull().setEnable(value);
				break;
			case script_ctltargettype:
				this.csConfig.getScripts().getCtltargettype().setEnable(value);
				break;
			case script_debugrom:
				this.csConfig.getScripts().getDebugrom().setEnable(value);
				break;
			case script_declarename:
				this.csConfig.getScripts().getDeclarename().setEnable(value);
				break;
			case script_deleteMemberVariable:
				this.csConfig.getScripts().getDeleteMemberVariable().setEnable(value);
				break;
			case script_destructor:
				this.csConfig.getScripts().getDestructor().setEnable(value);
				break;
			case script_doubleSemiColon:
				this.csConfig.getScripts().getDoubleSemiColon().setEnable(value);
				break;
			case script_driveletters:
				this.csConfig.getScripts().getDriveletters().setEnable(value);
				break;
			case script_eikbuttons:
				this.csConfig.getScripts().getEikbuttons().setEnable(value);
				break;
			case script_eikonenvstatic:
				this.csConfig.getScripts().getEikonenvstatic().setEnable(value);
				break;
			case script_enummembers:
				this.csConfig.getScripts().getEnummembers().setEnable(value);
				break;
			case script_enumnames:
				this.csConfig.getScripts().getEnumnames().setEnable(value);
				break;
			case script_exportinline:
				this.csConfig.getScripts().getExportinline().setEnable(value);
				break;
			case script_exportpurevirtual:
				this.csConfig.getScripts().getExportpurevirtual().setEnable(value);
				break;
//			case script_externaldriveletters:
//				this.csConfig.getScripts().getExternaldriveletters().setEnable(value);
//				break;
			case script_foff:
				this.csConfig.getScripts().getFoff().setEnable(value);
				break;
			case script_forbiddenwords:
				this.csConfig.getScripts().getForbiddenwords().setEnable(value);
				break;
			case script_forgottoputptroncleanupstack:
				this.csConfig.getScripts().getForgottoputptroncleanupstack().setEnable(value);
				break;
			case script_friend:
				this.csConfig.getScripts().getFriend().setEnable(value);
				break;
			case script_goto:
				this.csConfig.getScripts().getGoto().setEnable(value);
				break;
			case script_ifassignments:
				this.csConfig.getScripts().getIfassignments().setEnable(value);
				break;
			case script_ifpreprocessor:
				this.csConfig.getScripts().getIfpreprocessor().setEnable(value);
				break;
			case script_inheritanceorder:
				this.csConfig.getScripts().getInheritanceorder().setEnable(value);
				break;
			case script_intleaves:
				this.csConfig.getScripts().getIntleaves().setEnable(value);
				break;
			case script_jmp:
				this.csConfig.getScripts().getJmp().setEnable(value);
				break;
			case script_leave:
				this.csConfig.getScripts().getLeave().setEnable(value);
				break;
			case script_LeaveNoError:
				this.csConfig.getScripts().getLeaveNoError().setEnable(value);
				break;
			case script_leavingoperators:
				this.csConfig.getScripts().getLeavingoperators().setEnable(value);
				break;
			case script_LFunctionCantLeave:
				this.csConfig.getScripts().getLFunctionCantLeave().setEnable(value);
				break;
			case script_longlines: 
				this.csConfig.getScripts().getLonglines().setEnable(value);
				break;
			case script_magicnumbers:
				this.csConfig.getScripts().getMagicnumbers().setEnable(value);
				break;
			case script_mclassdestructor:
				this.csConfig.getScripts().getMclassdestructor().setEnable(value);
				break;
			case script_memberlc:
				this.csConfig.getScripts().getMemberlc().setEnable(value);
				break;
			case script_membervariablecallld:
				this.csConfig.getScripts().getMembervariablecallld().setEnable(value);
				break;
			case script_missingcancel:
				this.csConfig.getScripts().getMissingcancel().setEnable(value);
				break;
			case script_missingcclass:
				this.csConfig.getScripts().getMissingcclass().setEnable(value);
				break;
			case script_mmpsourcepath:
				this.csConfig.getScripts().getMmpsourcepath().setEnable(value);
				break;
			case script_multilangrsc:
				this.csConfig.getScripts().getMultilangrsc().setEnable(value);
				break;
			case script_multipledeclarations:
				this.csConfig.getScripts().getMultipledeclarations().setEnable(value);
				break;
			case script_multipleinheritance:
				this.csConfig.getScripts().getMultipleinheritance().setEnable(value);
				break;
			case script_mydocs:
				this.csConfig.getScripts().getMydocs().setEnable(value);
				break;
			case script_namespace:
				this.csConfig.getScripts().getNamespace().setEnable(value);
				break;
			case script_newlreferences:
				this.csConfig.getScripts().getNewlreferences().setEnable(value);
				break;
			case script_noleavetrap:
				this.csConfig.getScripts().getNoleavetrap().setEnable(value);
				break;
			case script_nonconsthbufc:
				this.csConfig.getScripts().getNonconsthbufc().setEnable(value);
				break;
			case script_nonconsttdesc:
				this.csConfig.getScripts().getNonconsttdesc().setEnable(value);
				break;
			case script_nonleavenew:
				this.csConfig.getScripts().getNonleavenew().setEnable(value);
				break;
			case script_nonunicodeskins:
				this.csConfig.getScripts().getNonunicodeskins().setEnable(value);
				break;
			case script_null:
				this.csConfig.getScripts().getNull().setEnable(value);
				break;
			case script_open:
				this.csConfig.getScripts().getOpen().setEnable(value);
				break;
			case script_pointertoarrays:
				this.csConfig.getScripts().getPointertoarrays().setEnable(value);
				break;
			case script_pragmadisable:
				this.csConfig.getScripts().getPragmadisable().setEnable(value);
				break;
			case script_pragmamessage:
				this.csConfig.getScripts().getPragmamessage().setEnable(value);
				break;
			case script_pragmaother:
				this.csConfig.getScripts().getPragmaother().setEnable(value);
				break;
			case script_privateinheritance:
				this.csConfig.getScripts().getPrivateinheritance().setEnable(value);
				break;
			case script_pushaddrvar:
				this.csConfig.getScripts().getPushaddrvar().setEnable(value);
				break;
			case script_pushmember:
				this.csConfig.getScripts().getPushmember().setEnable(value);
				break;
			case script_readresource:
				this.csConfig.getScripts().getReadresource().setEnable(value);
				break;
			case script_resourcenotoncleanupstack:
				this.csConfig.getScripts().getResourcenotoncleanupstack().setEnable(value);
				break;
			case script_resourcesonheap:
				this.csConfig.getScripts().getResourcesonheap().setEnable(value);
				break;
			case script_returndescriptoroutofscope:
				this.csConfig.getScripts().getReturndescriptoroutofscope().setEnable(value);
				break;
			case script_rfs:
				this.csConfig.getScripts().getRfs().setEnable(value);
				break;
			case script_rssnames:
				this.csConfig.getScripts().getRssnames().setEnable(value);
				break;
			case script_stringliterals:
				this.csConfig.getScripts().getStringliterals().setEnable(value);
				break;
			case script_stringsinresourcefiles:
				this.csConfig.getScripts().getStringsinresourcefiles().setEnable(value);
				break;
			case script_struct:
				this.csConfig.getScripts().getStruct().setEnable(value);
				break;
			case script_tcclasses:
				this.csConfig.getScripts().getTcclasses().setEnable(value);
				break;
			case script_tclassdestructor:
				this.csConfig.getScripts().getTclassdestructor().setEnable(value);
				break;
			case script_todocomments:
				this.csConfig.getScripts().getTodocomments().setEnable(value);
				break;
			case script_trapcleanup:
				this.csConfig.getScripts().getTrapcleanup().setEnable(value);
				break;
			case script_trapeleave:
				this.csConfig.getScripts().getTrapeleave().setEnable(value);
				break;
			case script_traprunl:
				this.csConfig.getScripts().getTraprunl().setEnable(value);
				break;
			case script_trspassing:
				this.csConfig.getScripts().getTrspassing().setEnable(value);
				break;
			case script_uids:
				this.csConfig.getScripts().getUids().setEnable(value);
				break;
			case script_uncompressedaif:
				this.csConfig.getScripts().getUncompressedaif().setEnable(value);
				break;
			case script_uncompressedbmp:
				this.csConfig.getScripts().getUncompressedbmp().setEnable(value);
				break;
			case script_unicodesource:
				this.csConfig.getScripts(). getUnicodesource().setEnable(value);
				break;
			case script_userafter:
				this.csConfig.getScripts().getUserafter().setEnable(value);
				break;
			case script_userfree:
				this.csConfig.getScripts().getUserfree().setEnable(value);
				break;
			case script_userWaitForRequest:
				this.csConfig.getScripts().getUserWaitForRequest().setEnable(value);
				break;
			case script_variablenames:
				this.csConfig.getScripts().getVariablenames().setEnable(value);
				break;
			case script_voidparameter:
				this.csConfig.getScripts().getVoidparameter().setEnable(value);
				break;
			case script_worryingcomments:
				this.csConfig.getScripts().getWorryingcomments().setEnable(value);
				break;
			case script_unknown:
			default:
				break;
		}
	}

	/**
	 * Retrieve the "category" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @return attribute value
	 */
	public String getScriptCategory(CSScript script) {
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck().getCategory().toString();
			case script_accessArrayElementWithoutCheck2:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().getCategory().toString();
			case script_activestart:
				return this.csConfig.getScripts().getActivestart().getCategory().toString();
			case script_activestop:
				return this.csConfig.getScripts().getActivestop().getCategory().toString();
			case script_arraypassing:
				return this.csConfig.getScripts().getArraypassing().getCategory().toString();
			case script_arrayptrcleanup:
				return this.csConfig.getScripts().getArrayptrcleanup().getCategory().toString();
			case script_assertdebuginvariant:
				return this.csConfig.getScripts().getAssertdebuginvariant().getCategory().toString();
			case script_baddefines:
				return this.csConfig.getScripts().getBaddefines().getCategory().toString();
			case script_baseconstruct:
				return this.csConfig.getScripts().getBaseconstruct().getCategory().toString();
			case script_callActiveObjectWithoutCheckingOrStopping:
				return this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().getCategory().toString();
			case script_changenotification:
				return this.csConfig.getScripts().getChangenotification().getCategory().toString();
			case script_cleanup:
				return this.csConfig.getScripts().getCleanup().getCategory().toString();
			case script_commentcode:
				return this.csConfig.getScripts().getCommentcode().getCategory().toString();
			case script_connect:
				return this.csConfig.getScripts().getConnect().getCategory().toString();
			case script_ConnectAndDontCloseMemberVariable:
				return this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().getCategory().toString();
			case script_constnames:
				return this.csConfig.getScripts().getConstnames().getCategory().toString();
			case script_consttdescptr:
				return this.csConfig.getScripts().getConsttdescptr().getCategory().toString();
			case script_controlornull:
				return this.csConfig.getScripts().getControlornull().getCategory().toString();
			case script_ctltargettype:
				return this.csConfig.getScripts().getCtltargettype().getCategory().toString();
			case script_debugrom:
				return this.csConfig.getScripts().getDebugrom().getCategory().toString();
			case script_declarename:
				return this.csConfig.getScripts().getDeclarename().getCategory().toString();
			case script_deleteMemberVariable:
				return this.csConfig.getScripts().getDeleteMemberVariable().getCategory().toString();
			case script_destructor:
				return this.csConfig.getScripts().getDestructor().getCategory().toString();
			case script_doubleSemiColon:
				return this.csConfig.getScripts().getDoubleSemiColon().getCategory().toString();
			case script_driveletters:
				return this.csConfig.getScripts().getDriveletters().getCategory().toString();
			case script_eikbuttons:
				return this.csConfig.getScripts().getEikbuttons().getCategory().toString();
			case script_eikonenvstatic:
				return this.csConfig.getScripts().getEikonenvstatic().getCategory().toString();
			case script_enummembers:
				return this.csConfig.getScripts().getEnummembers().getCategory().toString();
			case script_enumnames:
				return this.csConfig.getScripts().getEnumnames().getCategory().toString();
			case script_exportinline:
				return this.csConfig.getScripts().getExportinline().getCategory().toString();
			case script_exportpurevirtual:
				return this.csConfig.getScripts().getExportpurevirtual().getCategory().toString();
//			case script_externaldriveletters:
//				return this.csConfig.getScripts().getExternaldriveletters().getCategory().toString();
			case script_foff:
				return this.csConfig.getScripts().getFoff().getCategory().toString();
			case script_forbiddenwords:
				return this.csConfig.getScripts().getForbiddenwords().getCategory().toString();
			case script_forgottoputptroncleanupstack:
				return this.csConfig.getScripts().getForgottoputptroncleanupstack().getCategory().toString();
			case script_friend:
				return this.csConfig.getScripts().getFriend().getCategory().toString();
			case script_goto:
				return this.csConfig.getScripts().getGoto().getCategory().toString();
			case script_ifassignments:
				return this.csConfig.getScripts().getIfassignments().getCategory().toString();
			case script_ifpreprocessor:
				return this.csConfig.getScripts().getIfpreprocessor().getCategory().toString();
			case script_inheritanceorder:
				return this.csConfig.getScripts().getInheritanceorder().getCategory().toString();
			case script_intleaves:
				return this.csConfig.getScripts().getIntleaves().getCategory().toString();
			case script_jmp:
				return this.csConfig.getScripts().getJmp().getCategory().toString();
			case script_leave:
				return this.csConfig.getScripts().getLeave().getCategory().toString();
			case script_LeaveNoError:
				return this.csConfig.getScripts().getLeaveNoError().getCategory().toString();
			case script_leavingoperators:
				return this.csConfig.getScripts().getLeavingoperators().getCategory().toString();
			case script_LFunctionCantLeave:
				return this.csConfig.getScripts().getLFunctionCantLeave().getCategory().toString();
			case script_longlines: 
				return this.csConfig.getScripts().getLonglines().getCategory().toString();
			case script_magicnumbers:
				return this.csConfig.getScripts().getMagicnumbers().getCategory().toString();
			case script_mclassdestructor:
				return this.csConfig.getScripts().getMclassdestructor().getCategory().toString();
			case script_memberlc:
				return this.csConfig.getScripts().getMemberlc().getCategory().toString();
			case script_membervariablecallld:
				return this.csConfig.getScripts().getMembervariablecallld().getCategory().toString();
			case script_missingcancel:
				return this.csConfig.getScripts().getMissingcancel().getCategory().toString();
			case script_missingcclass:
				return this.csConfig.getScripts().getMissingcclass().getCategory().toString();
			case script_mmpsourcepath:
				return this.csConfig.getScripts().getMmpsourcepath().getCategory().toString();
			case script_multilangrsc:
				return this.csConfig.getScripts().getMultilangrsc().getCategory().toString();
			case script_multipledeclarations:
				return this.csConfig.getScripts().getMultipledeclarations().getCategory().toString();
			case script_multipleinheritance:
				return this.csConfig.getScripts().getMultipleinheritance().getCategory().toString();
			case script_mydocs:
				return this.csConfig.getScripts().getMydocs().getCategory().toString();
			case script_namespace:
				return this.csConfig.getScripts().getNamespace().getCategory().toString();
			case script_newlreferences:
				return this.csConfig.getScripts().getNewlreferences().getCategory().toString();
			case script_noleavetrap:
				return this.csConfig.getScripts().getNoleavetrap().getCategory().toString();
			case script_nonconsthbufc:
				return this.csConfig.getScripts().getNonconsthbufc().getCategory().toString();
			case script_nonconsttdesc:
				return this.csConfig.getScripts().getNonconsttdesc().getCategory().toString();
			case script_nonleavenew:
				return this.csConfig.getScripts().getNonleavenew().getCategory().toString();
			case script_nonunicodeskins:
				return this.csConfig.getScripts().getNonunicodeskins().getCategory().toString();
			case script_null:
				return this.csConfig.getScripts().getNull().getCategory().toString();
			case script_open:
				return this.csConfig.getScripts().getOpen().getCategory().toString();
			case script_pointertoarrays:
				return this.csConfig.getScripts().getPointertoarrays().getCategory().toString();
			case script_pragmadisable:
				return this.csConfig.getScripts().getPragmadisable().getCategory().toString();
			case script_pragmamessage:
				return this.csConfig.getScripts().getPragmamessage().getCategory().toString();
			case script_pragmaother:
				return this.csConfig.getScripts().getPragmaother().getCategory().toString();
			case script_privateinheritance:
				return this.csConfig.getScripts().getPrivateinheritance().getCategory().toString();
			case script_pushaddrvar:
				return this.csConfig.getScripts().getPushaddrvar().getCategory().toString();
			case script_pushmember:
				return this.csConfig.getScripts().getPushmember().getCategory().toString();
			case script_readresource:
				return this.csConfig.getScripts().getReadresource().getCategory().toString();
			case script_resourcenotoncleanupstack:
				return this.csConfig.getScripts().getResourcenotoncleanupstack().getCategory().toString();
			case script_resourcesonheap:
				return this.csConfig.getScripts().getResourcesonheap().getCategory().toString();
			case script_returndescriptoroutofscope:
				return this.csConfig.getScripts().getReturndescriptoroutofscope().getCategory().toString();
			case script_rfs:
				return this.csConfig.getScripts().getRfs().getCategory().toString();
			case script_rssnames:
				return this.csConfig.getScripts().getRssnames().getCategory().toString();
			case script_stringliterals:
				return this.csConfig.getScripts().getStringliterals().getCategory().toString();
			case script_stringsinresourcefiles:
				return this.csConfig.getScripts().getStringsinresourcefiles().getCategory().toString();
			case script_struct:
				return this.csConfig.getScripts().getStruct().getCategory().toString();
			case script_tcclasses:
				return this.csConfig.getScripts().getTcclasses().getCategory().toString();
			case script_tclassdestructor:
				return this.csConfig.getScripts().getTclassdestructor().getCategory().toString();
			case script_todocomments:
				return this.csConfig.getScripts().getTodocomments().getCategory().toString();
			case script_trapcleanup:
				return this.csConfig.getScripts().getTrapcleanup().getCategory().toString();
			case script_trapeleave:
				return this.csConfig.getScripts().getTrapeleave().getCategory().toString();
			case script_traprunl:
				return this.csConfig.getScripts().getTraprunl().getCategory().toString();
			case script_trspassing:
				return this.csConfig.getScripts().getTrspassing().getCategory().toString();
			case script_uids:
				return this.csConfig.getScripts().getUids().getCategory().toString();
			case script_uncompressedaif:
				return this.csConfig.getScripts().getUncompressedaif().getCategory().toString();
			case script_uncompressedbmp:
				return this.csConfig.getScripts().getUncompressedaif().getCategory().toString();
			case script_unicodesource:
				return this.csConfig.getScripts(). getUnicodesource().getCategory().toString();
			case script_userafter:
				return this.csConfig.getScripts().getUserafter().getCategory().toString();
			case script_userfree:
				return this.csConfig.getScripts().getUserfree().getCategory().toString();
			case script_userWaitForRequest:
				return this.csConfig.getScripts().getUserWaitForRequest().getCategory().toString();
			case script_variablenames:
				return this.csConfig.getScripts().getVariablenames().getCategory().toString();
			case script_voidparameter:
				return this.csConfig.getScripts().getVoidparameter().getCategory().toString();
			case script_worryingcomments:
				return this.csConfig.getScripts().getWorryingcomments().getCategory().toString();
			case script_unknown:
			default:
				return "other";
		}
	}

	/**
	 * Set the "category" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @param value - new attribute value
	 */
	public void setScriptCategory(CSScript script, String value) {
		CategoryType category = CategoryType.get(value);
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck().setCategory(category);
				break;
			case script_accessArrayElementWithoutCheck2:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().setCategory(category);
				break;
			case script_activestart:
				this.csConfig.getScripts().getActivestart().setCategory(category);
				break;
			case script_activestop:
				this.csConfig.getScripts().getActivestop().setCategory(category);
				break;
			case script_arraypassing:
				this.csConfig.getScripts().getArraypassing().setCategory(category);
				break;
			case script_arrayptrcleanup:
				this.csConfig.getScripts().getArrayptrcleanup().setCategory(category);
				break;
			case script_assertdebuginvariant:
				this.csConfig.getScripts().getAssertdebuginvariant().setCategory(category);
				break;
			case script_baddefines:
				this.csConfig.getScripts().getBaddefines().setCategory(category);
				break;
			case script_baseconstruct:
				this.csConfig.getScripts().getBaseconstruct().setCategory(category);
				break;
			case script_callActiveObjectWithoutCheckingOrStopping:
				this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().setCategory(category);
				break;
			case script_changenotification:
				this.csConfig.getScripts().getChangenotification().setCategory(category);
				break;
			case script_cleanup:
				this.csConfig.getScripts().getCleanup().setCategory(category);
				break;
			case script_commentcode:
				this.csConfig.getScripts().getCommentcode().setCategory(category);
				break;
			case script_connect:
				this.csConfig.getScripts().getConnect().setCategory(category);
				break;
			case script_ConnectAndDontCloseMemberVariable:
				this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().setCategory(category);
				break;
			case script_constnames:
				this.csConfig.getScripts().getConstnames().setCategory(category);
				break;
			case script_consttdescptr:
				this.csConfig.getScripts().getConsttdescptr().setCategory(category);
				break;
			case script_controlornull:
				this.csConfig.getScripts().getControlornull().setCategory(category);
				break;
			case script_ctltargettype:
				this.csConfig.getScripts().getCtltargettype().setCategory(category);
				break;
			case script_debugrom:
				this.csConfig.getScripts().getDebugrom().setCategory(category);
				break;
			case script_declarename:
				this.csConfig.getScripts().getDeclarename().setCategory(category);
				break;
			case script_deleteMemberVariable:
				this.csConfig.getScripts().getDeleteMemberVariable().setCategory(category);
				break;
			case script_destructor:
				this.csConfig.getScripts().getDestructor().setCategory(category);
				break;
			case script_doubleSemiColon:
				this.csConfig.getScripts().getDoubleSemiColon().setCategory(category);
				break;
			case script_driveletters:
				this.csConfig.getScripts().getDriveletters().setCategory(category);
				break;
			case script_eikbuttons:
				this.csConfig.getScripts().getEikbuttons().setCategory(category);
				break;
			case script_eikonenvstatic:
				this.csConfig.getScripts().getEikonenvstatic().setCategory(category);
				break;
			case script_enummembers:
				this.csConfig.getScripts().getEnummembers().setCategory(category);
				break;
			case script_enumnames:
				this.csConfig.getScripts().getEnumnames().setCategory(category);
				break;
			case script_exportinline:
				this.csConfig.getScripts().getExportinline().setCategory(category);
				break;
			case script_exportpurevirtual:
				this.csConfig.getScripts().getExportpurevirtual().setCategory(category);
				break;
//			case script_externaldriveletters:
//				this.csConfig.getScripts().getExternaldriveletters().setCategory(category);
//				break;
			case script_foff:
				this.csConfig.getScripts().getFoff().setCategory(category);
				break;
			case script_forbiddenwords:
				this.csConfig.getScripts().getForbiddenwords().setCategory(category);
				break;
			case script_forgottoputptroncleanupstack:
				this.csConfig.getScripts().getForgottoputptroncleanupstack().setCategory(category);
				break;
			case script_friend:
				this.csConfig.getScripts().getFriend().setCategory(category);
				break;
			case script_goto:
				this.csConfig.getScripts().getGoto().setCategory(category);
				break;
			case script_ifassignments:
				this.csConfig.getScripts().getIfassignments().setCategory(category);
				break;
			case script_ifpreprocessor:
				this.csConfig.getScripts().getIfpreprocessor().setCategory(category);
				break;
			case script_inheritanceorder:
				this.csConfig.getScripts().getInheritanceorder().setCategory(category);
				break;
			case script_intleaves:
				this.csConfig.getScripts().getIntleaves().setCategory(category);
				break;
			case script_jmp:
				this.csConfig.getScripts().getJmp().setCategory(category);
				break;
			case script_leave:
				this.csConfig.getScripts().getLeave().setCategory(category);
				break;
			case script_LeaveNoError:
				this.csConfig.getScripts().getLeaveNoError().setCategory(category);
				break;
			case script_leavingoperators:
				this.csConfig.getScripts().getLeavingoperators().setCategory(category);
				break;
			case script_LFunctionCantLeave:
				this.csConfig.getScripts().getLFunctionCantLeave().setCategory(category);
				break;
			case script_longlines: 
				this.csConfig.getScripts().getLonglines().setCategory(category);
				break;
			case script_magicnumbers:
				this.csConfig.getScripts().getMagicnumbers().setCategory(category);
				break;
			case script_mclassdestructor:
				this.csConfig.getScripts().getMclassdestructor().setCategory(category);
				break;
			case script_memberlc:
				this.csConfig.getScripts().getMemberlc().setCategory(category);
				break;
			case script_membervariablecallld:
				this.csConfig.getScripts().getMembervariablecallld().setCategory(category);
				break;
			case script_missingcancel:
				this.csConfig.getScripts().getMissingcancel().setCategory(category);
				break;
			case script_missingcclass:
				this.csConfig.getScripts().getMissingcclass().setCategory(category);
				break;
			case script_mmpsourcepath:
				this.csConfig.getScripts().getMmpsourcepath().setCategory(category);
				break;
			case script_multilangrsc:
				this.csConfig.getScripts().getMultilangrsc().setCategory(category);
				break;
			case script_multipledeclarations:
				this.csConfig.getScripts().getMultipledeclarations().setCategory(category);
				break;
			case script_multipleinheritance:
				this.csConfig.getScripts().getMultipleinheritance().setCategory(category);
				break;
			case script_mydocs:
				this.csConfig.getScripts().getMydocs().setCategory(category);
				break;
			case script_namespace:
				this.csConfig.getScripts().getNamespace().setCategory(category);
				break;
			case script_newlreferences:
				this.csConfig.getScripts().getNewlreferences().setCategory(category);
				break;
			case script_noleavetrap:
				this.csConfig.getScripts().getNoleavetrap().setCategory(category);
				break;
			case script_nonconsthbufc:
				this.csConfig.getScripts().getNonconsthbufc().setCategory(category);
				break;
			case script_nonconsttdesc:
				this.csConfig.getScripts().getNonconsttdesc().setCategory(category);
				break;
			case script_nonleavenew:
				this.csConfig.getScripts().getNonleavenew().setCategory(category);
				break;
			case script_nonunicodeskins:
				this.csConfig.getScripts().getNonunicodeskins().setCategory(category);
				break;
			case script_null:
				this.csConfig.getScripts().getNull().setCategory(category);
				break;
			case script_open:
				this.csConfig.getScripts().getOpen().setCategory(category);
				break;
			case script_pointertoarrays:
				this.csConfig.getScripts().getPointertoarrays().setCategory(category);
				break;
			case script_pragmadisable:
				this.csConfig.getScripts().getPragmadisable().setCategory(category);
				break;
			case script_pragmamessage:
				this.csConfig.getScripts().getPragmamessage().setCategory(category);
				break;
			case script_pragmaother:
				this.csConfig.getScripts().getPragmaother().setCategory(category);
				break;
			case script_privateinheritance:
				this.csConfig.getScripts().getPrivateinheritance().setCategory(category);
				break;
			case script_pushaddrvar:
				this.csConfig.getScripts().getPushaddrvar().setCategory(category);
				break;
			case script_pushmember:
				this.csConfig.getScripts().getPushmember().setCategory(category);
				break;
			case script_readresource:
				this.csConfig.getScripts().getReadresource().setCategory(category);
				break;
			case script_resourcenotoncleanupstack:
				this.csConfig.getScripts().getResourcenotoncleanupstack().setCategory(category);
				break;
			case script_resourcesonheap:
				this.csConfig.getScripts().getResourcesonheap().setCategory(category);
				break;
			case script_returndescriptoroutofscope:
				this.csConfig.getScripts().getReturndescriptoroutofscope().setCategory(category);
				break;
			case script_rfs:
				this.csConfig.getScripts().getRfs().setCategory(category);
				break;
			case script_rssnames:
				this.csConfig.getScripts().getRssnames().setCategory(category);
				break;
			case script_stringliterals:
				this.csConfig.getScripts().getStringliterals().setCategory(category);
				break;
			case script_stringsinresourcefiles:
				this.csConfig.getScripts().getStringsinresourcefiles().setCategory(category);
				break;
			case script_struct:
				this.csConfig.getScripts().getStruct().setCategory(category);
				break;
			case script_tcclasses:
				this.csConfig.getScripts().getTcclasses().setCategory(category);
				break;
			case script_tclassdestructor:
				this.csConfig.getScripts().getTclassdestructor().setCategory(category);
				break;
			case script_todocomments:
				this.csConfig.getScripts().getTodocomments().setCategory(category);
				break;
			case script_trapcleanup:
				this.csConfig.getScripts().getTrapcleanup().setCategory(category);
				break;
			case script_trapeleave:
				this.csConfig.getScripts().getTrapeleave().setCategory(category);
				break;
			case script_traprunl:
				this.csConfig.getScripts().getTraprunl().setCategory(category);
				break;
			case script_trspassing:
				this.csConfig.getScripts().getTrspassing().setCategory(category);
				break;
			case script_uids:
				this.csConfig.getScripts().getUids().setCategory(category);
				break;
			case script_uncompressedaif:
				this.csConfig.getScripts().getUncompressedaif().setCategory(category);
				break;
			case script_uncompressedbmp:
				this.csConfig.getScripts().getUncompressedaif().setCategory(category);
				break;
			case script_unicodesource:
				this.csConfig.getScripts(). getUnicodesource().setCategory(category);
				break;
			case script_userafter:
				this.csConfig.getScripts().getUserafter().setCategory(category);
				break;
			case script_userfree:
				this.csConfig.getScripts().getUserfree().setCategory(category);
				break;
			case script_userWaitForRequest:
				this.csConfig.getScripts().getUserWaitForRequest().setCategory(category);
				break;
			case script_variablenames:
				this.csConfig.getScripts().getVariablenames().setCategory(category);
				break;
			case script_voidparameter:
				this.csConfig.getScripts().getVoidparameter().setCategory(category);
				break;
			case script_worryingcomments:
				this.csConfig.getScripts().getWorryingcomments().setCategory(category);
				break;
			case script_unknown:
			default:
				break;
		}
	}

	/**
	 * Retrieve the "severity" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @return attribute value
	 */
	public String getScriptSeverity(CSScript script) {
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck().getSeverity().toString();
			case script_accessArrayElementWithoutCheck2:
				return this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().getSeverity().toString();
			case script_activestart:
				return this.csConfig.getScripts().getActivestart().getSeverity().toString();
			case script_activestop:
				return this.csConfig.getScripts().getActivestop().getSeverity().toString();
			case script_arraypassing:
				return this.csConfig.getScripts().getArraypassing().getSeverity().toString();
			case script_arrayptrcleanup:
				return this.csConfig.getScripts().getArrayptrcleanup().getSeverity().toString();
			case script_assertdebuginvariant:
				return this.csConfig.getScripts().getAssertdebuginvariant().getSeverity().toString();
			case script_baddefines:
				return this.csConfig.getScripts().getBaddefines().getSeverity().toString();
			case script_baseconstruct:
				return this.csConfig.getScripts().getBaseconstruct().getSeverity().toString();
			case script_callActiveObjectWithoutCheckingOrStopping:
				return this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().getSeverity().toString();
			case script_changenotification:
				return this.csConfig.getScripts().getChangenotification().getSeverity().toString();
			case script_cleanup:
				return this.csConfig.getScripts().getCleanup().getSeverity().toString();
			case script_commentcode:
				return this.csConfig.getScripts().getCommentcode().getSeverity().toString();
			case script_connect:
				return this.csConfig.getScripts().getConnect().getSeverity().toString();
			case script_ConnectAndDontCloseMemberVariable:
				return this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().getSeverity().toString();
			case script_constnames:
				return this.csConfig.getScripts().getConstnames().getSeverity().toString();
			case script_consttdescptr:
				return this.csConfig.getScripts().getConsttdescptr().getSeverity().toString();
			case script_controlornull:
				return this.csConfig.getScripts().getControlornull().getSeverity().toString();
			case script_ctltargettype:
				return this.csConfig.getScripts().getCtltargettype().getSeverity().toString();
			case script_debugrom:
				return this.csConfig.getScripts().getDebugrom().getSeverity().toString();
			case script_declarename:
				return this.csConfig.getScripts().getDeclarename().getSeverity().toString();
			case script_deleteMemberVariable:
				return this.csConfig.getScripts().getDeleteMemberVariable().getSeverity().toString();
			case script_destructor:
				return this.csConfig.getScripts().getDestructor().getSeverity().toString();
			case script_doubleSemiColon:
				return this.csConfig.getScripts().getDoubleSemiColon().getSeverity().toString();
			case script_driveletters:
				return this.csConfig.getScripts().getDriveletters().getSeverity().toString();
			case script_eikbuttons:
				return this.csConfig.getScripts().getEikbuttons().getSeverity().toString();
			case script_eikonenvstatic:
				return this.csConfig.getScripts().getEikonenvstatic().getSeverity().toString();
			case script_enummembers:
				return this.csConfig.getScripts().getEnummembers().getSeverity().toString();
			case script_enumnames:
				return this.csConfig.getScripts().getEnumnames().getSeverity().toString();
			case script_exportinline:
				return this.csConfig.getScripts().getExportinline().getSeverity().toString();
			case script_exportpurevirtual:
				return this.csConfig.getScripts().getExportpurevirtual().getSeverity().toString();
//			case script_externaldriveletters:
//				return this.csConfig.getScripts().getExternaldriveletters().getSeverity().toString();
			case script_foff:
				return this.csConfig.getScripts().getFoff().getSeverity().toString();
			case script_forbiddenwords:
				return this.csConfig.getScripts().getForbiddenwords().getSeverity().toString();
			case script_forgottoputptroncleanupstack:
				return this.csConfig.getScripts().getForgottoputptroncleanupstack().getSeverity().toString();
			case script_friend:
				return this.csConfig.getScripts().getFriend().getSeverity().toString();
			case script_goto:
				return this.csConfig.getScripts().getGoto().getSeverity().toString();
			case script_ifassignments:
				return this.csConfig.getScripts().getIfassignments().getSeverity().toString();
			case script_ifpreprocessor:
				return this.csConfig.getScripts().getIfpreprocessor().getSeverity().toString();
			case script_inheritanceorder:
				return this.csConfig.getScripts().getInheritanceorder().getSeverity().toString();
			case script_intleaves:
				return this.csConfig.getScripts().getIntleaves().getSeverity().toString();
			case script_jmp:
				return this.csConfig.getScripts().getJmp().getSeverity().toString();
			case script_leave:
				return this.csConfig.getScripts().getLeave().getSeverity().toString();
			case script_LeaveNoError:
				return this.csConfig.getScripts().getLeaveNoError().getSeverity().toString();
			case script_leavingoperators:
				return this.csConfig.getScripts().getLeavingoperators().getSeverity().toString();
			case script_LFunctionCantLeave:
				return this.csConfig.getScripts().getLFunctionCantLeave().getSeverity().toString();
			case script_longlines: 
				return this.csConfig.getScripts().getLonglines().getSeverity().toString();
			case script_magicnumbers:
				return this.csConfig.getScripts().getMagicnumbers().getSeverity().toString();
			case script_mclassdestructor:
				return this.csConfig.getScripts().getMclassdestructor().getSeverity().toString();
			case script_memberlc:
				return this.csConfig.getScripts().getMemberlc().getSeverity().toString();
			case script_membervariablecallld:
				return this.csConfig.getScripts().getMembervariablecallld().getSeverity().toString();
			case script_missingcancel:
				return this.csConfig.getScripts().getMissingcancel().getSeverity().toString();
			case script_missingcclass:
				return this.csConfig.getScripts().getMissingcclass().getSeverity().toString();
			case script_mmpsourcepath:
				return this.csConfig.getScripts().getMmpsourcepath().getSeverity().toString();
			case script_multilangrsc:
				return this.csConfig.getScripts().getMultilangrsc().getSeverity().toString();
			case script_multipledeclarations:
				return this.csConfig.getScripts().getMultipledeclarations().getSeverity().toString();
			case script_multipleinheritance:
				return this.csConfig.getScripts().getMultipleinheritance().getSeverity().toString();
			case script_mydocs:
				return this.csConfig.getScripts().getMydocs().getSeverity().toString();
			case script_namespace:
				return this.csConfig.getScripts().getNamespace().getSeverity().toString();
			case script_newlreferences:
				return this.csConfig.getScripts().getNewlreferences().getSeverity().toString();
			case script_noleavetrap:
				return this.csConfig.getScripts().getNoleavetrap().getSeverity().toString();
			case script_nonconsthbufc:
				return this.csConfig.getScripts().getNonconsthbufc().getSeverity().toString();
			case script_nonconsttdesc:
				return this.csConfig.getScripts().getNonconsttdesc().getSeverity().toString();
			case script_nonleavenew:
				return this.csConfig.getScripts().getNonleavenew().getSeverity().toString();
			case script_nonunicodeskins:
				return this.csConfig.getScripts().getNonunicodeskins().getSeverity().toString();
			case script_null:
				return this.csConfig.getScripts().getNull().getSeverity().toString();
			case script_open:
				return this.csConfig.getScripts().getOpen().getSeverity().toString();
			case script_pointertoarrays:
				return this.csConfig.getScripts().getPointertoarrays().getSeverity().toString();
			case script_pragmadisable:
				return this.csConfig.getScripts().getPragmadisable().getSeverity().toString();
			case script_pragmamessage:
				return this.csConfig.getScripts().getPragmamessage().getSeverity().toString();
			case script_pragmaother:
				return this.csConfig.getScripts().getPragmaother().getSeverity().toString();
			case script_privateinheritance:
				return this.csConfig.getScripts().getPrivateinheritance().getSeverity().toString();
			case script_pushaddrvar:
				return this.csConfig.getScripts().getPushaddrvar().getSeverity().toString();
			case script_pushmember:
				return this.csConfig.getScripts().getPushmember().getSeverity().toString();
			case script_readresource:
				return this.csConfig.getScripts().getReadresource().getSeverity().toString();
			case script_resourcenotoncleanupstack:
				return this.csConfig.getScripts().getResourcenotoncleanupstack().getSeverity().toString();
			case script_resourcesonheap:
				return this.csConfig.getScripts().getResourcesonheap().getSeverity().toString();
			case script_returndescriptoroutofscope:
				return this.csConfig.getScripts().getReturndescriptoroutofscope().getSeverity().toString();
			case script_rfs:
				return this.csConfig.getScripts().getRfs().getSeverity().toString();
			case script_rssnames:
				return this.csConfig.getScripts().getRssnames().getSeverity().toString();
			case script_stringliterals:
				return this.csConfig.getScripts().getStringliterals().getSeverity().toString();
			case script_stringsinresourcefiles:
				return this.csConfig.getScripts().getStringsinresourcefiles().getSeverity().toString();
			case script_struct:
				return this.csConfig.getScripts().getStruct().getSeverity().toString();
			case script_tcclasses:
				return this.csConfig.getScripts().getTcclasses().getSeverity().toString();
			case script_tclassdestructor:
				return this.csConfig.getScripts().getTclassdestructor().getSeverity().toString();
			case script_todocomments:
				return this.csConfig.getScripts().getTodocomments().getSeverity().toString();
			case script_trapcleanup:
				return this.csConfig.getScripts().getTrapcleanup().getSeverity().toString();
			case script_trapeleave:
				return this.csConfig.getScripts().getTrapeleave().getSeverity().toString();
			case script_traprunl:
				return this.csConfig.getScripts().getTraprunl().getSeverity().toString();
			case script_trspassing:
				return this.csConfig.getScripts().getTrspassing().getSeverity().toString();
			case script_uids:
				return this.csConfig.getScripts().getUids().getSeverity().toString();
			case script_uncompressedaif:
				return this.csConfig.getScripts().getUncompressedaif().getSeverity().toString();
			case script_uncompressedbmp:
				return this.csConfig.getScripts().getUncompressedaif().getSeverity().toString();
			case script_unicodesource:
				return this.csConfig.getScripts(). getUnicodesource().getSeverity().toString();
			case script_userafter:
				return this.csConfig.getScripts().getUserafter().getSeverity().toString();
			case script_userfree:
				return this.csConfig.getScripts().getUserfree().getSeverity().toString();
			case script_userWaitForRequest:
				return this.csConfig.getScripts().getUserWaitForRequest().getSeverity().toString();
			case script_variablenames:
				return this.csConfig.getScripts().getVariablenames().getSeverity().toString();
			case script_voidparameter:
				return this.csConfig.getScripts().getVoidparameter().getSeverity().toString();
			case script_worryingcomments:
				return this.csConfig.getScripts().getWorryingcomments().getSeverity().toString();
			case script_unknown:
			default:
				return "high";
		}
	}

	/**
	 * Set the "severity" attribute of a CodeScanner script element
	 * @param script - script element containing the attribute
	 * @param value - new attribute value
	 */
	public void setScriptSeverity(CSScript script, String value) {
		SeverityType severity = SeverityType.get(value);
		switch (script) {
			case script_accessArrayElementWithoutCheck:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck().setSeverity(severity);
				break;
			case script_accessArrayElementWithoutCheck2:
				this.csConfig.getScripts().getAccessArrayElementWithoutCheck2().setSeverity(severity);
				break;
			case script_activestart:
				this.csConfig.getScripts().getActivestart().setSeverity(severity);
				break;
			case script_activestop:
				this.csConfig.getScripts().getActivestop().setSeverity(severity);
				break;
			case script_arraypassing:
				this.csConfig.getScripts().getArraypassing().setSeverity(severity);
				break;
			case script_arrayptrcleanup:
				this.csConfig.getScripts().getArrayptrcleanup().setSeverity(severity);
				break;
			case script_assertdebuginvariant:
				this.csConfig.getScripts().getAssertdebuginvariant().setSeverity(severity);
				break;
			case script_baddefines:
				this.csConfig.getScripts().getBaddefines().setSeverity(severity);
				break;
			case script_baseconstruct:
				this.csConfig.getScripts().getBaseconstruct().setSeverity(severity);
				break;
			case script_callActiveObjectWithoutCheckingOrStopping:
				this.csConfig.getScripts().getCallActiveObjectWithoutCheckingOrStopping().setSeverity(severity);
				break;
			case script_changenotification:
				this.csConfig.getScripts().getChangenotification().setSeverity(severity);
				break;
			case script_cleanup:
				this.csConfig.getScripts().getCleanup().setSeverity(severity);
				break;
			case script_commentcode:
				this.csConfig.getScripts().getCommentcode().setSeverity(severity);
				break;
			case script_connect:
				this.csConfig.getScripts().getConnect().setSeverity(severity);
				break;
			case script_ConnectAndDontCloseMemberVariable:
				this.csConfig.getScripts().getConnectAndDontCloseMemberVariable().setSeverity(severity);
				break;
			case script_constnames:
				this.csConfig.getScripts().getConstnames().setSeverity(severity);
				break;
			case script_consttdescptr:
				this.csConfig.getScripts().getConsttdescptr().setSeverity(severity);
				break;
			case script_controlornull:
				this.csConfig.getScripts().getControlornull().setSeverity(severity);
				break;
			case script_ctltargettype:
				this.csConfig.getScripts().getCtltargettype().setSeverity(severity);
				break;
			case script_debugrom:
				this.csConfig.getScripts().getDebugrom().setSeverity(severity);
				break;
			case script_declarename:
				this.csConfig.getScripts().getDeclarename().setSeverity(severity);
				break;
			case script_deleteMemberVariable:
				this.csConfig.getScripts().getDeleteMemberVariable().setSeverity(severity);
				break;
			case script_destructor:
				this.csConfig.getScripts().getDestructor().setSeverity(severity);
				break;
			case script_doubleSemiColon:
				this.csConfig.getScripts().getDoubleSemiColon().setSeverity(severity);
				break;
			case script_driveletters:
				this.csConfig.getScripts().getDriveletters().setSeverity(severity);
				break;
			case script_eikbuttons:
				this.csConfig.getScripts().getEikbuttons().setSeverity(severity);
				break;
			case script_eikonenvstatic:
				this.csConfig.getScripts().getEikonenvstatic().setSeverity(severity);
				break;
			case script_enummembers:
				this.csConfig.getScripts().getEnummembers().setSeverity(severity);
				break;
			case script_enumnames:
				this.csConfig.getScripts().getEnumnames().setSeverity(severity);
				break;
			case script_exportinline:
				this.csConfig.getScripts().getExportinline().setSeverity(severity);
				break;
			case script_exportpurevirtual:
				this.csConfig.getScripts().getExportpurevirtual().setSeverity(severity);
				break;
//			case script_externaldriveletters:
//				this.csConfig.getScripts().getExternaldriveletters().setSeverity(severity);
//				break;
			case script_foff:
				this.csConfig.getScripts().getFoff().setSeverity(severity);
				break;
			case script_forbiddenwords:
				this.csConfig.getScripts().getForbiddenwords().setSeverity(severity);
				break;
			case script_forgottoputptroncleanupstack:
				this.csConfig.getScripts().getForgottoputptroncleanupstack().setSeverity(severity);
				break;
			case script_friend:
				this.csConfig.getScripts().getFriend().setSeverity(severity);
				break;
			case script_goto:
				this.csConfig.getScripts().getGoto().setSeverity(severity);
				break;
			case script_ifassignments:
				this.csConfig.getScripts().getIfassignments().setSeverity(severity);
				break;
			case script_ifpreprocessor:
				this.csConfig.getScripts().getIfpreprocessor().setSeverity(severity);
				break;
			case script_inheritanceorder:
				this.csConfig.getScripts().getInheritanceorder().setSeverity(severity);
				break;
			case script_intleaves:
				this.csConfig.getScripts().getIntleaves().setSeverity(severity);
				break;
			case script_jmp:
				this.csConfig.getScripts().getJmp().setSeverity(severity);
				break;
			case script_leave:
				this.csConfig.getScripts().getLeave().setSeverity(severity);
				break;
			case script_LeaveNoError:
				this.csConfig.getScripts().getLeaveNoError().setSeverity(severity);
				break;
			case script_leavingoperators:
				this.csConfig.getScripts().getLeavingoperators().setSeverity(severity);
				break;
			case script_LFunctionCantLeave:
				this.csConfig.getScripts().getLFunctionCantLeave().setSeverity(severity);
				break;
			case script_longlines: 
				this.csConfig.getScripts().getLonglines().setSeverity(severity);
				break;
			case script_magicnumbers:
				this.csConfig.getScripts().getMagicnumbers().setSeverity(severity);
				break;
			case script_mclassdestructor:
				this.csConfig.getScripts().getMclassdestructor().setSeverity(severity);
				break;
			case script_memberlc:
				this.csConfig.getScripts().getMemberlc().setSeverity(severity);
				break;
			case script_membervariablecallld:
				this.csConfig.getScripts().getMembervariablecallld().setSeverity(severity);
				break;
			case script_missingcancel:
				this.csConfig.getScripts().getMissingcancel().setSeverity(severity);
				break;
			case script_missingcclass:
				this.csConfig.getScripts().getMissingcclass().setSeverity(severity);
				break;
			case script_mmpsourcepath:
				this.csConfig.getScripts().getMmpsourcepath().setSeverity(severity);
				break;
			case script_multilangrsc:
				this.csConfig.getScripts().getMultilangrsc().setSeverity(severity);
				break;
			case script_multipledeclarations:
				this.csConfig.getScripts().getMultipledeclarations().setSeverity(severity);
				break;
			case script_multipleinheritance:
				this.csConfig.getScripts().getMultipleinheritance().setSeverity(severity);
				break;
			case script_mydocs:
				this.csConfig.getScripts().getMydocs().setSeverity(severity);
				break;
			case script_namespace:
				this.csConfig.getScripts().getNamespace().setSeverity(severity);
				break;
			case script_newlreferences:
				this.csConfig.getScripts().getNewlreferences().setSeverity(severity);
				break;
			case script_noleavetrap:
				this.csConfig.getScripts().getNoleavetrap().setSeverity(severity);
				break;
			case script_nonconsthbufc:
				this.csConfig.getScripts().getNonconsthbufc().setSeverity(severity);
				break;
			case script_nonconsttdesc:
				this.csConfig.getScripts().getNonconsttdesc().setSeverity(severity);
				break;
			case script_nonleavenew:
				this.csConfig.getScripts().getNonleavenew().setSeverity(severity);
				break;
			case script_nonunicodeskins:
				this.csConfig.getScripts().getNonunicodeskins().setSeverity(severity);
				break;
			case script_null:
				this.csConfig.getScripts().getNull().setSeverity(severity);
				break;
			case script_open:
				this.csConfig.getScripts().getOpen().setSeverity(severity);
				break;
			case script_pointertoarrays:
				this.csConfig.getScripts().getPointertoarrays().setSeverity(severity);
				break;
			case script_pragmadisable:
				this.csConfig.getScripts().getPragmadisable().setSeverity(severity);
				break;
			case script_pragmamessage:
				this.csConfig.getScripts().getPragmamessage().setSeverity(severity);
				break;
			case script_pragmaother:
				this.csConfig.getScripts().getPragmaother().setSeverity(severity);
				break;
			case script_privateinheritance:
				this.csConfig.getScripts().getPrivateinheritance().setSeverity(severity);
				break;
			case script_pushaddrvar:
				this.csConfig.getScripts().getPushaddrvar().setSeverity(severity);
				break;
			case script_pushmember:
				this.csConfig.getScripts().getPushmember().setSeverity(severity);
				break;
			case script_readresource:
				this.csConfig.getScripts().getReadresource().setSeverity(severity);
				break;
			case script_resourcenotoncleanupstack:
				this.csConfig.getScripts().getResourcenotoncleanupstack().setSeverity(severity);
				break;
			case script_resourcesonheap:
				this.csConfig.getScripts().getResourcesonheap().setSeverity(severity);
				break;
			case script_returndescriptoroutofscope:
				this.csConfig.getScripts().getReturndescriptoroutofscope().setSeverity(severity);
				break;
			case script_rfs:
				this.csConfig.getScripts().getRfs().setSeverity(severity);
				break;
			case script_rssnames:
				this.csConfig.getScripts().getRssnames().setSeverity(severity);
				break;
			case script_stringliterals:
				this.csConfig.getScripts().getStringliterals().setSeverity(severity);
				break;
			case script_stringsinresourcefiles:
				this.csConfig.getScripts().getStringsinresourcefiles().setSeverity(severity);
				break;
			case script_struct:
				this.csConfig.getScripts().getStruct().setSeverity(severity);
				break;
			case script_tcclasses:
				this.csConfig.getScripts().getTcclasses().setSeverity(severity);
				break;
			case script_tclassdestructor:
				this.csConfig.getScripts().getTclassdestructor().setSeverity(severity);
				break;
			case script_todocomments:
				this.csConfig.getScripts().getTodocomments().setSeverity(severity);
				break;
			case script_trapcleanup:
				this.csConfig.getScripts().getTrapcleanup().setSeverity(severity);
				break;
			case script_trapeleave:
				this.csConfig.getScripts().getTrapeleave().setSeverity(severity);
				break;
			case script_traprunl:
				this.csConfig.getScripts().getTraprunl().setSeverity(severity);
				break;
			case script_trspassing:
				this.csConfig.getScripts().getTrspassing().setSeverity(severity);
				break;
			case script_uids:
				this.csConfig.getScripts().getUids().setSeverity(severity);
				break;
			case script_uncompressedaif:
				this.csConfig.getScripts().getUncompressedaif().setSeverity(severity);
				break;
			case script_uncompressedbmp:
				this.csConfig.getScripts().getUncompressedaif().setSeverity(severity);
				break;
			case script_unicodesource:
				this.csConfig.getScripts(). getUnicodesource().setSeverity(severity);
				break;
			case script_userafter:
				this.csConfig.getScripts().getUserafter().setSeverity(severity);
				break;
			case script_userfree:
				this.csConfig.getScripts().getUserfree().setSeverity(severity);
				break;
			case script_userWaitForRequest:
				this.csConfig.getScripts().getUserWaitForRequest().setSeverity(severity);
				break;
			case script_variablenames:
				this.csConfig.getScripts().getVariablenames().setSeverity(severity);
				break;
			case script_voidparameter:
				this.csConfig.getScripts().getVoidparameter().setSeverity(severity);
				break;
			case script_worryingcomments:
				this.csConfig.getScripts().getWorryingcomments().setSeverity(severity);
				break;
			case script_unknown:
			default:
				break;
		}
	}

	/**
	 * Retrieve the cclassIgnoreRE value of the missingcclass script
	 * @return cclassIgnoreRE
	 */
	public String getScriptCClassIgnore() {
		return this.csConfig.getScripts().getMissingcclass().getCclassIgnoreRE();
	}

	/**
	 * Set the cclassIgnoreRE value of the missingcclass script
	 * @param value - new cclassIgnoreRE value
	 */
	public void setScriptCClassIgnore(String value) {
		this.csConfig.getScripts().getMissingcclass().setCclassIgnoreRE(value);
	}

	/**
	 * Retrieve the wordsRE value of the forbiddenwords script
	 * @return wordsRE
	 */
	public String getScriptForbiddenWords() {
		return this.csConfig.getScripts().getForbiddenwords().getWordsRE();
	}

	/**
	 * Set the wordsRE value of the forbiddenwords script
	 * @param value - new wordsRE value
	 */
	public void setScriptForbiddenWords(String value) {
		this.csConfig.getScripts().getForbiddenwords().setWordsRE(value);
	}

	/**
	 * Retrieve the LFunctionIgnoreRE value of the LFunctionCantLeave script
	 * @return LFunctionIgnoreRE
	 */
	public String getScriptLFunctionIgnore() {
		return this.csConfig.getScripts().getLFunctionCantLeave().getLFunctionIgnoreRE();
	}

	/**
	 * Set the LFunctionIgnoreRE value of the LFunctionCantLeave script
	 * @param value - new LFunctionIgnoreRE value
	 */
	public void setScriptLFunctionIgnore(String value) {
		this.csConfig.getScripts().getLFunctionCantLeave().setLFunctionIgnoreRE(value);
	}

	/**
	 * Retrieve the "length" attribute of the longlines script
	 * @return attribute value
	 */
	public int getScriptLongLinesLength() {
		return this.csConfig.getScripts().getLonglines().getLength();
	}

	/**
	 * Set the "length" attribute of the longlines script
	 * @param value - new attribute value
	 */
	public void setScriptLongLinesLength(int value) {
		this.csConfig.getScripts().getLonglines().setLength(value);
	}
	
	/**
	 * Retrieve the openIgnoreRE value of the open script
	 * @return openIgnoreRE
	 */
	public String getScriptOpenIgnore() {
		return this.csConfig.getScripts().getOpen().getOpenIgnoreRE();
	}

	/**
	 * Set the openIgnoreRE value of the open script
	 * @param value - new openIgnoreRE value
	 */
	public void setScriptOpenIgnore(String value) {
		this.csConfig.getScripts().getOpen().setOpenIgnoreRE(value);
	}

	/**
	 * Retrieve the worryRE value of the worryingcomments script
	 * @return worryRE
	 */
	public String getScriptWorryingComments() {
		return this.csConfig.getScripts().getWorryingcomments().getWorryRE();
	}

	/**
	 * Set the worryRE value of the worryingcomments script
	 * @param value - new worryRE value
	 */
	public void setScriptWorryingComments(String value) {
		this.csConfig.getScripts().getWorryingcomments().setWorryRE(value);
	}

	/**
	 * Retrieve the "enabled" attribute of a CodeScanner script category element
	 * @param category - script category element containing the attribute
	 * @return attribute value
	 */
	public boolean getCategoryEnabled(CSCategory category) {
		switch (category) {
			 case category_legal:
				 return this.csConfig.getCategories().getLegal().isEnable();
			 case category_panic:
				 return this.csConfig.getCategories().getPanic().isEnable();
			 case category_canpanic:
				 return this.csConfig.getCategories().getCanpanic().isEnable();
			 case category_functionality:
				 return this.csConfig.getCategories().getFunctionality().isEnable();
			 case category_localisation:
				 return this.csConfig.getCategories().getLocalisation().isEnable();
			 case category_performance:
				 return this.csConfig.getCategories().getPerformance().isEnable();
			 case category_codingstandards:
				 return this.csConfig.getCategories().getCodingstandards().isEnable();
			 case category_documentation:
				 return this.csConfig.getCategories().getDocumentation().isEnable();
			 case category_codereview:
				 return this.csConfig.getCategories().getCodereview().isEnable();
			 case category_other:
				 return this.csConfig.getCategories().getOther().isEnable();
			 default:
				 return true;
		}
	}

	/**
	 * Set the "enabled" attribute of a CodeScanner script category element
	 * @param category - script category element containing the attribute
	 * @param value - new attribute value
	 */
	public void setCategoryEnabled(CSCategory category, boolean value) {
		switch (category) {
			 case category_legal:
				this.csConfig.getCategories().getLegal().setEnable(value);
				break;
			 case category_panic:
				this.csConfig.getCategories().getPanic().setEnable(value);
				break;
			 case category_canpanic:
				this.csConfig.getCategories().getCanpanic().setEnable(value);
				break;
			 case category_functionality:
				this.csConfig.getCategories().getFunctionality().setEnable(value);
				break;
			 case category_localisation:
				this.csConfig.getCategories().getLocalisation().setEnable(value);
				break;
			 case category_performance:
				this.csConfig.getCategories().getPerformance().setEnable(value);
				break;
			 case category_codingstandards:
				this.csConfig.getCategories().getCodingstandards().setEnable(value);
				break;
			 case category_documentation:
				this.csConfig.getCategories().getDocumentation().setEnable(value);
				break;
			 case category_codereview:
				this.csConfig.getCategories().getCodereview().setEnable(value);
				break;
			 case category_other:
				this.csConfig.getCategories().getOther().setEnable(value);
				break;
		}
	}

	/**
	 * Retrieve the "enabled" attribute of a CodeScanner script severity element
	 * @param severity - script severity element containing the attribute
	 * @return attribute value
	 */
	public boolean getSeverityEnabled(CSSeverity severity) {
		switch (severity) {
			 case severity_high:
				 return this.csConfig.getSeverities().getHigh().isEnable();
			 case severity_medium:
				 return this.csConfig.getSeverities().getMedium().isEnable();
			 case severity_low:
				 return this.csConfig.getSeverities().getLow().isEnable();
			 default:
				 return true;
		}
	}

	/**
	 * Set the "enabled" attribute of a CodeScanner script severity element
	 * @param severity - script severity element containing the attribute
	 * @param value - new attribute value
	 */
	public void setSeverityEnabled(CSSeverity severity, boolean value) {
		switch (severity) {
			 case severity_high:
				 this.csConfig.getSeverities().getHigh().setEnable(value);
				 break;
			 case severity_medium:
				 this.csConfig.getSeverities().getMedium().setEnable(value);
				 break;
			 case severity_low:
				 this.csConfig.getSeverities().getLow().setEnable(value);
				 break;
		}
	}

	/**
	 * Create the default arguments element.
	 */
	private ArgumentsType createDefaultArguments() {
		ArgumentsType arguments = CSConfigFactory.eINSTANCE.createArgumentsType();
		EList<String> inputArgumentList = arguments.getInput();
		inputArgumentList.clear();
		arguments.setLxr(null);
		arguments.setLxrversion(null);
		arguments.setOutputformat(null);
		arguments.setTimestampedoutput(null);
		return arguments;
	}
	
	/**
	 * Create the default categories element.
	 */
	private CategoriesType createDefaultCategories() {
		CategoriesType categories = CSConfigFactory.eINSTANCE.createCategoriesType();

		CanpanicType category_Canpanic = CSConfigFactory.eINSTANCE.createCanpanicType();
		category_Canpanic.setEnable(true);
		categories.setCanpanic(category_Canpanic);

		CodereviewType category_Codereview = CSConfigFactory.eINSTANCE.createCodereviewType();
		category_Codereview.setEnable(true);
		categories.setCodereview(category_Codereview);

		CodingstandardsType category_Codingstandards = CSConfigFactory.eINSTANCE.createCodingstandardsType();
		category_Codingstandards.setEnable(true);
		categories.setCodingstandards(category_Codingstandards);

		DocumentationType category_Documentation = CSConfigFactory.eINSTANCE.createDocumentationType();
		category_Documentation.setEnable(true);
		categories.setDocumentation(category_Documentation);

		FunctionalityType category_Functionality = CSConfigFactory.eINSTANCE.createFunctionalityType();
		category_Functionality.setEnable(true);
		categories.setFunctionality(category_Functionality);

		LegalType category_Legal = CSConfigFactory.eINSTANCE.createLegalType();
		category_Legal.setEnable(true);
		categories.setLegal(category_Legal);

		LocalisationType category_Localisation = CSConfigFactory.eINSTANCE.createLocalisationType();
		category_Localisation.setEnable(true);
		categories.setLocalisation(category_Localisation);

		OtherType category_Other = CSConfigFactory.eINSTANCE.createOtherType();
		category_Other.setEnable(true);
		categories.setOther(category_Other);

		PanicType category_Panic = CSConfigFactory.eINSTANCE.createPanicType();
		category_Panic.setEnable(true);
		categories.setPanic(category_Panic);

		PerformanceType category_Performance = CSConfigFactory.eINSTANCE.createPerformanceType();
		category_Performance.setEnable(true);
		categories.setPerformance(category_Performance);

		return categories;
	}

	/**
	 * Create the default customrules element.
	 * @return
	 */
	private CustomrulesType createDefaultCustomRules() {
		CustomrulesType customRules = CSConfigFactory.eINSTANCE.createCustomrulesType();
		EList<CustomruleType> customRuleList = customRules.getCustomrule();
		customRuleList.clear();
		return customRules;
	}

	/**
	 * Create the default scripts element.
	 */
	private ScriptsType createDefaultScripts() {
		ScriptsType scripts = CSConfigFactory.eINSTANCE.createScriptsType();

		AccessArrayElementWithoutCheckType script_AccessArrayElementWithoutCheck = CSConfigFactory.eINSTANCE.createAccessArrayElementWithoutCheckType();
		script_AccessArrayElementWithoutCheck.setCategory(CategoryType.CODEREVIEW);
		script_AccessArrayElementWithoutCheck.setEnable(true);
		script_AccessArrayElementWithoutCheck.setSeverity(SeverityType.LOW);
		scripts.setAccessArrayElementWithoutCheck(script_AccessArrayElementWithoutCheck);

		AccessArrayElementWithoutCheck2Type script_AccessArrayElementWithoutCheck2 = CSConfigFactory.eINSTANCE.createAccessArrayElementWithoutCheck2Type();
		script_AccessArrayElementWithoutCheck2.setCategory(CategoryType.CODEREVIEW);
		script_AccessArrayElementWithoutCheck2.setEnable(true);
		script_AccessArrayElementWithoutCheck2.setSeverity(SeverityType.LOW);
		scripts.setAccessArrayElementWithoutCheck2(script_AccessArrayElementWithoutCheck2);

		ActivestartType script_Activestart = CSConfigFactory.eINSTANCE.createActivestartType();
		script_Activestart.setCategory(CategoryType.CODEREVIEW);
		script_Activestart.setEnable(true);
		script_Activestart.setSeverity(SeverityType.LOW);
		scripts.setActivestart(script_Activestart);

		ActivestopType script_Activestop = CSConfigFactory.eINSTANCE.createActivestopType();
		script_Activestop.setCategory(CategoryType.CODEREVIEW);
		script_Activestop.setEnable(true);
		script_Activestop.setSeverity(SeverityType.LOW);
		scripts.setActivestop(script_Activestop);

		ArraypassingType script_Arraypassing = CSConfigFactory.eINSTANCE.createArraypassingType();
		script_Arraypassing.setCategory(CategoryType.PERFORMANCE);
		script_Arraypassing.setEnable(true);
		script_Arraypassing.setSeverity(SeverityType.MEDIUM);
		scripts.setArraypassing(script_Arraypassing);

		ArrayptrcleanupType script_Arrayptrcleanup = CSConfigFactory.eINSTANCE.createArrayptrcleanupType();
		script_Arrayptrcleanup.setCategory(CategoryType.CODEREVIEW);
		script_Arrayptrcleanup.setEnable(true);
		script_Arrayptrcleanup.setSeverity(SeverityType.LOW);
		scripts.setArrayptrcleanup(script_Arrayptrcleanup);

		AssertdebuginvariantType script_Assertdebuginvariant = CSConfigFactory.eINSTANCE.createAssertdebuginvariantType();
		script_Assertdebuginvariant.setCategory(CategoryType.CODINGSTANDARDS);
		script_Assertdebuginvariant.setEnable(true);
		script_Assertdebuginvariant.setSeverity(SeverityType.LOW);
		scripts.setAssertdebuginvariant(script_Assertdebuginvariant);

		BaddefinesType script_Baddefines = CSConfigFactory.eINSTANCE.createBaddefinesType();
		script_Baddefines.setCategory(CategoryType.CODINGSTANDARDS);
		script_Baddefines.setEnable(true);
		script_Baddefines.setSeverity(SeverityType.LOW);
		scripts.setBaddefines(script_Baddefines);

		BaseconstructType script_Baseconstruct = CSConfigFactory.eINSTANCE.createBaseconstructType();
		script_Baseconstruct.setCategory(CategoryType.CODEREVIEW);
		script_Baseconstruct.setEnable(true);
		script_Baseconstruct.setSeverity(SeverityType.LOW);
		scripts.setBaseconstruct(script_Baseconstruct);

		CallActiveObjectWithoutCheckingOrStoppingType script_CallActiveObjectWithoutCheckingOrStopping = CSConfigFactory.eINSTANCE.createCallActiveObjectWithoutCheckingOrStoppingType();
		script_CallActiveObjectWithoutCheckingOrStopping.setCategory(CategoryType.CODEREVIEW);
		script_CallActiveObjectWithoutCheckingOrStopping.setEnable(true);
		script_CallActiveObjectWithoutCheckingOrStopping.setSeverity(SeverityType.LOW);
		scripts.setCallActiveObjectWithoutCheckingOrStopping(script_CallActiveObjectWithoutCheckingOrStopping);

		ChangenotificationType script_Changenotification = CSConfigFactory.eINSTANCE.createChangenotificationType();
		script_Changenotification.setCategory(CategoryType.CODEREVIEW);
		script_Changenotification.setEnable(true);
		script_Changenotification.setSeverity(SeverityType.LOW);
		scripts.setChangenotification(script_Changenotification);

		CleanupType script_Cleanup = CSConfigFactory.eINSTANCE.createCleanupType();
		script_Cleanup.setCategory(CategoryType.CODINGSTANDARDS);
		script_Cleanup.setEnable(true);
		script_Cleanup.setSeverity(SeverityType.LOW);
		scripts.setCleanup(script_Cleanup);

		CommentcodeType script_Commentcode = CSConfigFactory.eINSTANCE.createCommentcodeType();
		script_Commentcode.setCategory(CategoryType.CODEREVIEW);
		script_Commentcode.setEnable(true);
		script_Commentcode.setSeverity(SeverityType.LOW);
		scripts.setCommentcode(script_Commentcode);

		ConnectType script_Connect = CSConfigFactory.eINSTANCE.createConnectType();
		script_Connect.setCategory(CategoryType.CANPANIC);
		script_Connect.setEnable(true);
		script_Connect.setSeverity(SeverityType.HIGH);
		scripts.setConnect(script_Connect);

		ConnectAndDontCloseMemberVariableType script_ConnectAndDontCloseMemberVariable = CSConfigFactory.eINSTANCE.createConnectAndDontCloseMemberVariableType();
		script_ConnectAndDontCloseMemberVariable.setCategory(CategoryType.FUNCTIONALITY);
		script_ConnectAndDontCloseMemberVariable.setEnable(true);
		script_ConnectAndDontCloseMemberVariable.setSeverity(SeverityType.MEDIUM);
		scripts.setConnectAndDontCloseMemberVariable(script_ConnectAndDontCloseMemberVariable);

		ConstnamesType script_Constnames = CSConfigFactory.eINSTANCE.createConstnamesType();
		script_Constnames.setCategory(CategoryType.CODINGSTANDARDS);
		script_Constnames.setEnable(true);
		script_Constnames.setSeverity(SeverityType.LOW);
		scripts.setConstnames(script_Constnames);

		ConsttdescptrType script_Consttdescptr = CSConfigFactory.eINSTANCE.createConsttdescptrType();
		script_Consttdescptr.setCategory(CategoryType.CODINGSTANDARDS);
		script_Consttdescptr.setEnable(true);
		script_Consttdescptr.setSeverity(SeverityType.LOW);
		scripts.setConsttdescptr(script_Consttdescptr);

		ControlornullType script_Controlornull = CSConfigFactory.eINSTANCE.createControlornullType();
		script_Controlornull.setCategory(CategoryType.CANPANIC);
		script_Controlornull.setEnable(true);
		script_Controlornull.setSeverity(SeverityType.HIGH);
		scripts.setControlornull(script_Controlornull);

		CtltargettypeType script_Ctltargettype = CSConfigFactory.eINSTANCE.createCtltargettypeType();
		script_Ctltargettype.setCategory(CategoryType.FUNCTIONALITY);
		script_Ctltargettype.setEnable(true);
		script_Ctltargettype.setSeverity(SeverityType.MEDIUM);
		scripts.setCtltargettype(script_Ctltargettype);

		DebugromType script_Debugrom = CSConfigFactory.eINSTANCE.createDebugromType();
		script_Debugrom.setCategory(CategoryType.PERFORMANCE);
		script_Debugrom.setEnable(true);
		script_Debugrom.setSeverity(SeverityType.MEDIUM);
		scripts.setDebugrom(script_Debugrom);

		DeclarenameType script_Declarename = CSConfigFactory.eINSTANCE.createDeclarenameType();
		script_Declarename.setCategory(CategoryType.CODINGSTANDARDS);
		script_Declarename.setEnable(true);
		script_Declarename.setSeverity(SeverityType.LOW);
		scripts.setDeclarename(script_Declarename);

		DeleteMemberVariableType script_DeleteMemberVariable = CSConfigFactory.eINSTANCE.createDeleteMemberVariableType();
		script_DeleteMemberVariable.setCategory(CategoryType.CANPANIC);
		script_DeleteMemberVariable.setEnable(true);
		script_DeleteMemberVariable.setSeverity(SeverityType.HIGH);
		scripts.setDeleteMemberVariable(script_DeleteMemberVariable);

		DestructorType script_Destructor = CSConfigFactory.eINSTANCE.createDestructorType();
		script_Destructor.setCategory(CategoryType.CANPANIC);
		script_Destructor.setEnable(true);
		script_Destructor.setSeverity(SeverityType.HIGH);
		scripts.setDestructor(script_Destructor);

		DoubleSemiColonType script_DoubleSemiColon = CSConfigFactory.eINSTANCE.createDoubleSemiColonType();
		script_DoubleSemiColon.setCategory(CategoryType.CODEREVIEW);
		script_DoubleSemiColon.setEnable(true);
		script_DoubleSemiColon.setSeverity(SeverityType.LOW);
		scripts.setDoubleSemiColon(script_DoubleSemiColon);

		DrivelettersType script_Driveletters = CSConfigFactory.eINSTANCE.createDrivelettersType();
		script_Driveletters.setCategory(CategoryType.CODINGSTANDARDS);
		script_Driveletters.setEnable(true);
		script_Driveletters.setSeverity(SeverityType.LOW);
		scripts.setDriveletters(script_Driveletters);

		EikbuttonsType script_Eikbuttons = CSConfigFactory.eINSTANCE.createEikbuttonsType();
		script_Eikbuttons.setCategory(CategoryType.LOCALISATION);
		script_Eikbuttons.setEnable(true);
		script_Eikbuttons.setSeverity(SeverityType.MEDIUM);
		scripts.setEikbuttons(script_Eikbuttons);

		EikonenvstaticType script_Eikonenvstatic = CSConfigFactory.eINSTANCE.createEikonenvstaticType();
		script_Eikonenvstatic.setCategory(CategoryType.PERFORMANCE);
		script_Eikonenvstatic.setEnable(true);
		script_Eikonenvstatic.setSeverity(SeverityType.MEDIUM);
		scripts.setEikonenvstatic(script_Eikonenvstatic);

		EnummembersType script_Enummembers = CSConfigFactory.eINSTANCE.createEnummembersType();
		script_Enummembers.setCategory(CategoryType.CODINGSTANDARDS);
		script_Enummembers.setEnable(true);
		script_Enummembers.setSeverity(SeverityType.LOW);
		scripts.setEnummembers(script_Enummembers);

		EnumnamesType script_Enumnames = CSConfigFactory.eINSTANCE.createEnumnamesType();
		script_Enumnames.setCategory(CategoryType.CODINGSTANDARDS);
		script_Enumnames.setEnable(true);
		script_Enumnames.setSeverity(SeverityType.LOW);
		scripts.setEnumnames(script_Enumnames);

		ExportinlineType script_Exportinline = CSConfigFactory.eINSTANCE.createExportinlineType();
		script_Exportinline.setCategory(CategoryType.FUNCTIONALITY);
		script_Exportinline.setEnable(true);
		script_Exportinline.setSeverity(SeverityType.MEDIUM);
		scripts.setExportinline(script_Exportinline);

		ExportpurevirtualType script_Exportpurevirtual = CSConfigFactory.eINSTANCE.createExportpurevirtualType();
		script_Exportpurevirtual.setCategory(CategoryType.FUNCTIONALITY);
		script_Exportpurevirtual.setEnable(true);
		script_Exportpurevirtual.setSeverity(SeverityType.MEDIUM);
		scripts.setExportpurevirtual(script_Exportpurevirtual);

//		ExternaldrivelettersType script_Externaldriveletters = CSConfigFactory.eINSTANCE.createExternaldrivelettersType();
//		script_Externaldriveletters.setCategory(CategoryType.CANPANIC);
//		script_Externaldriveletters.setEnable(true);
//		script_Externaldriveletters.setSeverity(SeverityType.HIGH);
//		scripts.setExternaldriveletters(script_Externaldriveletters);

		FoffType script_Foff = CSConfigFactory.eINSTANCE.createFoffType();
		script_Foff.setCategory(CategoryType.CODEREVIEW);
		script_Foff.setEnable(true);
		script_Foff.setSeverity(SeverityType.LOW);
		scripts.setFoff(script_Foff);

		ForbiddenwordsType script_Forbiddenwords = CSConfigFactory.eINSTANCE.createForbiddenwordsType();
		script_Forbiddenwords.setCategory(CategoryType.CODINGSTANDARDS);
		script_Forbiddenwords.setEnable(true);
		script_Forbiddenwords.setSeverity(SeverityType.LOW);
		script_Forbiddenwords.setWordsRE("Typhoon|Hurricane|Epoc|Nokia Mobile Phones|NMP");
		scripts.setForbiddenwords(script_Forbiddenwords);

		ForgottoputptroncleanupstackType script_Forgottoputptroncleanupstack = CSConfigFactory.eINSTANCE.createForgottoputptroncleanupstackType();
		script_Forgottoputptroncleanupstack.setCategory(CategoryType.CODEREVIEW);
		script_Forgottoputptroncleanupstack.setEnable(true);
		script_Forgottoputptroncleanupstack.setSeverity(SeverityType.LOW);
		scripts.setForgottoputptroncleanupstack(script_Forgottoputptroncleanupstack);

		FriendType script_Friend = CSConfigFactory.eINSTANCE.createFriendType();
		script_Friend.setCategory(CategoryType.CODEREVIEW);
		script_Friend.setEnable(true);
		script_Friend.setSeverity(SeverityType.LOW);
		scripts.setFriend(script_Friend);

		GotoType script_Goto = CSConfigFactory.eINSTANCE.createGotoType();
		script_Goto.setCategory(CategoryType.CODINGSTANDARDS);
		script_Goto.setEnable(true);
		script_Goto.setSeverity(SeverityType.LOW);
		scripts.setGoto(script_Goto);

		IfassignmentsType script_Ifassignments = CSConfigFactory.eINSTANCE.createIfassignmentsType();
		script_Ifassignments.setCategory(CategoryType.CODINGSTANDARDS);
		script_Ifassignments.setEnable(true);
		script_Ifassignments.setSeverity(SeverityType.LOW);
		scripts.setIfassignments(script_Ifassignments);

		IfpreprocessorType script_Ifpreprocessor = CSConfigFactory.eINSTANCE.createIfpreprocessorType();
		script_Ifpreprocessor.setCategory(CategoryType.CODINGSTANDARDS);
		script_Ifpreprocessor.setEnable(true);
		script_Ifpreprocessor.setSeverity(SeverityType.LOW);
		scripts.setIfpreprocessor(script_Ifpreprocessor);

		InheritanceorderType script_Inheritanceorder = CSConfigFactory.eINSTANCE.createInheritanceorderType();
		script_Inheritanceorder.setCategory(CategoryType.CANPANIC);
		script_Inheritanceorder.setEnable(true);
		script_Inheritanceorder.setSeverity(SeverityType.HIGH);
		scripts.setInheritanceorder(script_Inheritanceorder);

		IntleavesType script_Intleaves = CSConfigFactory.eINSTANCE.createIntleavesType();
		script_Intleaves.setCategory(CategoryType.CODEREVIEW);
		script_Intleaves.setEnable(true);
		script_Intleaves.setSeverity(SeverityType.LOW);
		scripts.setIntleaves(script_Intleaves);

		JmpType script_Jmp = CSConfigFactory.eINSTANCE.createJmpType();
		script_Jmp.setCategory(CategoryType.CODINGSTANDARDS);
		script_Jmp.setEnable(true);
		script_Jmp.setSeverity(SeverityType.LOW);
		scripts.setJmp(script_Jmp);

		LeaveType script_Leave = CSConfigFactory.eINSTANCE.createLeaveType();
		script_Leave.setCategory(CategoryType.CANPANIC);
		script_Leave.setEnable(true);
		script_Leave.setSeverity(SeverityType.HIGH);
		scripts.setLeave(script_Leave);

		LeaveNoErrorType script_LeaveNoError = CSConfigFactory.eINSTANCE.createLeaveNoErrorType();
		script_LeaveNoError.setCategory(CategoryType.FUNCTIONALITY);
		script_LeaveNoError.setEnable(true);
		script_LeaveNoError.setSeverity(SeverityType.MEDIUM);
		scripts.setLeaveNoError(script_LeaveNoError);

		LeavingoperatorsType script_Leavingoperators = CSConfigFactory.eINSTANCE.createLeavingoperatorsType();
		script_Leavingoperators.setCategory(CategoryType.CODEREVIEW);
		script_Leavingoperators.setEnable(true);
		script_Leavingoperators.setSeverity(SeverityType.LOW);
		scripts.setLeavingoperators(script_Leavingoperators);

		LFunctionCantLeaveType script_LFunctionCantLeave = CSConfigFactory.eINSTANCE.createLFunctionCantLeaveType();
		script_LFunctionCantLeave.setCategory(CategoryType.CODEREVIEW);
		script_LFunctionCantLeave.setEnable(true);
		script_LFunctionCantLeave.setSeverity(SeverityType.LOW);
		script_LFunctionCantLeave.setLFunctionIgnoreRE("RunL");
		scripts.setLFunctionCantLeave(script_LFunctionCantLeave);

		LonglinesType script_Longlines = CSConfigFactory.eINSTANCE.createLonglinesType();
		script_Longlines.setCategory(CategoryType.CODINGSTANDARDS);
		script_Longlines.setEnable(true);
		script_Longlines.setSeverity(SeverityType.LOW);
		script_Longlines.setLength(160);
		scripts.setLonglines(script_Longlines);

		MagicnumbersType script_Magicnumbers = CSConfigFactory.eINSTANCE.createMagicnumbersType();
		script_Magicnumbers.setCategory(CategoryType.CODINGSTANDARDS);
		script_Magicnumbers.setEnable(true);
		script_Magicnumbers.setSeverity(SeverityType.LOW);
		scripts.setMagicnumbers(script_Magicnumbers);

		MclassdestructorType script_Mclassdestructor = CSConfigFactory.eINSTANCE.createMclassdestructorType();
		script_Mclassdestructor.setCategory(CategoryType.CODINGSTANDARDS);
		script_Mclassdestructor.setEnable(true);
		script_Mclassdestructor.setSeverity(SeverityType.LOW);
		scripts.setMclassdestructor(script_Mclassdestructor);

		MemberlcType script_Memberlc = CSConfigFactory.eINSTANCE.createMemberlcType();
		script_Memberlc.setCategory(CategoryType.CANPANIC);
		script_Memberlc.setEnable(true);
		script_Memberlc.setSeverity(SeverityType.HIGH);
		scripts.setMemberlc(script_Memberlc);

		MembervariablecallldType script_Membervariablecallld = CSConfigFactory.eINSTANCE.createMembervariablecallldType();
		script_Membervariablecallld.setCategory(CategoryType.CODINGSTANDARDS);
		script_Membervariablecallld.setEnable(true);
		script_Membervariablecallld.setSeverity(SeverityType.LOW);
		scripts.setMembervariablecallld(script_Membervariablecallld);

		MissingcancelType script_Missingcancel = CSConfigFactory.eINSTANCE.createMissingcancelType();
		script_Missingcancel.setCategory(CategoryType.CODINGSTANDARDS);
		script_Missingcancel.setEnable(true);
		script_Missingcancel.setSeverity(SeverityType.LOW);
		scripts.setMissingcancel(script_Missingcancel);

		MissingcclassType script_Missingcclass = CSConfigFactory.eINSTANCE.createMissingcclassType();
		script_Missingcclass.setCategory(CategoryType.CANPANIC);
		script_Missingcclass.setEnable(true);
		script_Missingcclass.setSeverity(SeverityType.HIGH);
		script_Missingcclass.setCclassIgnoreRE("CBase");
		scripts.setMissingcclass(script_Missingcclass);

		MmpsourcepathType script_Mmpsourcepath = CSConfigFactory.eINSTANCE.createMmpsourcepathType();
		script_Mmpsourcepath.setCategory(CategoryType.CODINGSTANDARDS);
		script_Mmpsourcepath.setEnable(true);
		script_Mmpsourcepath.setSeverity(SeverityType.LOW);
		scripts.setMmpsourcepath(script_Mmpsourcepath);

		MultilangrscType script_Multilangrsc = CSConfigFactory.eINSTANCE.createMultilangrscType();
		script_Multilangrsc.setCategory(CategoryType.CODEREVIEW);
		script_Multilangrsc.setEnable(true);
		script_Multilangrsc.setSeverity(SeverityType.LOW);
		scripts.setMultilangrsc(script_Multilangrsc);

		MultipledeclarationsType script_Multipledeclarations = CSConfigFactory.eINSTANCE.createMultipledeclarationsType();
		script_Multipledeclarations.setCategory(CategoryType.CODINGSTANDARDS);
		script_Multipledeclarations.setEnable(true);
		script_Multipledeclarations.setSeverity(SeverityType.LOW);
		scripts.setMultipledeclarations(script_Multipledeclarations);

		MultipleinheritanceType script_Multipleinheritance = CSConfigFactory.eINSTANCE.createMultipleinheritanceType();
		script_Multipleinheritance.setCategory(CategoryType.FUNCTIONALITY);
		script_Multipleinheritance.setEnable(true);
		script_Multipleinheritance.setSeverity(SeverityType.MEDIUM);
		scripts.setMultipleinheritance(script_Multipleinheritance);

		MydocsType script_Mydocs = CSConfigFactory.eINSTANCE.createMydocsType();
		script_Mydocs.setCategory(CategoryType.FUNCTIONALITY);
		script_Mydocs.setEnable(true);
		script_Mydocs.setSeverity(SeverityType.MEDIUM);
		scripts.setMydocs(script_Mydocs);

		NamespaceType script_Namespace = CSConfigFactory.eINSTANCE.createNamespaceType();
		script_Namespace.setCategory(CategoryType.CODINGSTANDARDS);
		script_Namespace.setEnable(true);
		script_Namespace.setSeverity(SeverityType.LOW);
		scripts.setNamespace(script_Namespace);

		NewlreferencesType script_Newlreferences = CSConfigFactory.eINSTANCE.createNewlreferencesType();
		script_Newlreferences.setCategory(CategoryType.CODINGSTANDARDS);
		script_Newlreferences.setEnable(true);
		script_Newlreferences.setSeverity(SeverityType.LOW);
		scripts.setNewlreferences(script_Newlreferences);

		NoleavetrapType script_Noleavetrap = CSConfigFactory.eINSTANCE.createNoleavetrapType();
		script_Noleavetrap.setCategory(CategoryType.CODEREVIEW);
		script_Noleavetrap.setEnable(true);
		script_Noleavetrap.setSeverity(SeverityType.LOW);
		scripts.setNoleavetrap(script_Noleavetrap);

		NonconsthbufcType script_Nonconsthbufc = CSConfigFactory.eINSTANCE.createNonconsthbufcType();
		script_Nonconsthbufc.setCategory(CategoryType.CODINGSTANDARDS);
		script_Nonconsthbufc.setEnable(true);
		script_Nonconsthbufc.setSeverity(SeverityType.LOW);
		scripts.setNonconsthbufc(script_Nonconsthbufc);

		NonconsttdescType script_Nonconsttdesc = CSConfigFactory.eINSTANCE.createNonconsttdescType();
		script_Nonconsttdesc.setCategory(CategoryType.CODINGSTANDARDS);
		script_Nonconsttdesc.setEnable(true);
		script_Nonconsttdesc.setSeverity(SeverityType.LOW);
		scripts.setNonconsttdesc(script_Nonconsttdesc);

		NonleavenewType script_Nonleavenew = CSConfigFactory.eINSTANCE.createNonleavenewType();
		script_Nonleavenew.setCategory(CategoryType.CODEREVIEW);
		script_Nonleavenew.setEnable(true);
		script_Nonleavenew.setSeverity(SeverityType.LOW);
		scripts.setNonleavenew(script_Nonleavenew);

		NonunicodeskinsType script_Nonunicodeskins = CSConfigFactory.eINSTANCE.createNonunicodeskinsType();
		script_Nonunicodeskins.setCategory(CategoryType.CODEREVIEW);
		script_Nonunicodeskins.setEnable(true);
		script_Nonunicodeskins.setSeverity(SeverityType.LOW);
		scripts.setNonunicodeskins(script_Nonunicodeskins);

		NullType script_Null = CSConfigFactory.eINSTANCE.createNullType();
		script_Null.setCategory(CategoryType.CODINGSTANDARDS);
		script_Null.setEnable(true);
		script_Null.setSeverity(SeverityType.LOW);
		scripts.setNull(script_Null);

		OpenType script_Open = CSConfigFactory.eINSTANCE.createOpenType();
		script_Open.setCategory(CategoryType.CANPANIC);
		script_Open.setEnable(true);
		script_Open.setSeverity(SeverityType.HIGH);
		script_Open.setOpenIgnoreRE("RDesReadStream|RDesWriteStream");
		scripts.setOpen(script_Open);

		PointertoarraysType script_Pointertoarrays = CSConfigFactory.eINSTANCE.createPointertoarraysType();
		script_Pointertoarrays.setCategory(CategoryType.PERFORMANCE);
		script_Pointertoarrays.setEnable(true);
		script_Pointertoarrays.setSeverity(SeverityType.MEDIUM);
		scripts.setPointertoarrays(script_Pointertoarrays);

		PragmadisableType script_Pragmadisable = CSConfigFactory.eINSTANCE.createPragmadisableType();
		script_Pragmadisable.setCategory(CategoryType.CODINGSTANDARDS);
		script_Pragmadisable.setEnable(true);
		script_Pragmadisable.setSeverity(SeverityType.LOW);
		scripts.setPragmadisable(script_Pragmadisable);

		PragmamessageType script_Pragmamessage = CSConfigFactory.eINSTANCE.createPragmamessageType();
		script_Pragmamessage.setCategory(CategoryType.CODINGSTANDARDS);
		script_Pragmamessage.setEnable(true);
		script_Pragmamessage.setSeverity(SeverityType.LOW);
		scripts.setPragmamessage(script_Pragmamessage);

		PragmaotherType script_Pragmaother = CSConfigFactory.eINSTANCE.createPragmaotherType();
		script_Pragmaother.setCategory(CategoryType.CODEREVIEW);
		script_Pragmaother.setEnable(true);
		script_Pragmaother.setSeverity(SeverityType.LOW);
		scripts.setPragmaother(script_Pragmaother);

		PrivateinheritanceType script_Privateinheritance = CSConfigFactory.eINSTANCE.createPrivateinheritanceType();
		script_Privateinheritance.setCategory(CategoryType.CODINGSTANDARDS);
		script_Privateinheritance.setEnable(true);
		script_Privateinheritance.setSeverity(SeverityType.LOW);
		scripts.setPrivateinheritance(script_Privateinheritance);

		PushaddrvarType script_Pushaddrvar = CSConfigFactory.eINSTANCE.createPushaddrvarType();
		script_Pushaddrvar.setCategory(CategoryType.CANPANIC);
		script_Pushaddrvar.setEnable(true);
		script_Pushaddrvar.setSeverity(SeverityType.HIGH);
		scripts.setPushaddrvar(script_Pushaddrvar);

		PushmemberType script_Pushmember = CSConfigFactory.eINSTANCE.createPushmemberType();
		script_Pushmember.setCategory(CategoryType.CANPANIC);
		script_Pushmember.setEnable(true);
		script_Pushmember.setSeverity(SeverityType.HIGH);
		scripts.setPushmember(script_Pushmember);

		ReadresourceType script_Readresource = CSConfigFactory.eINSTANCE.createReadresourceType();
		script_Readresource.setCategory(CategoryType.CANPANIC);
		script_Readresource.setEnable(true);
		script_Readresource.setSeverity(SeverityType.HIGH);
		scripts.setReadresource(script_Readresource);

		ResourcenotoncleanupstackType script_Resourcenotoncleanupstack = CSConfigFactory.eINSTANCE.createResourcenotoncleanupstackType();
		script_Resourcenotoncleanupstack.setCategory(CategoryType.CODEREVIEW);
		script_Resourcenotoncleanupstack.setEnable(true);
		script_Resourcenotoncleanupstack.setSeverity(SeverityType.LOW);
		scripts.setResourcenotoncleanupstack(script_Resourcenotoncleanupstack);

		ResourcesonheapType script_Resourcesonheap = CSConfigFactory.eINSTANCE.createResourcesonheapType();
		script_Resourcesonheap.setCategory(CategoryType.CODINGSTANDARDS);
		script_Resourcesonheap.setEnable(true);
		script_Resourcesonheap.setSeverity(SeverityType.LOW);
		scripts.setResourcesonheap(script_Resourcesonheap);

		ReturndescriptoroutofscopeType script_Returndescriptoroutofscope = CSConfigFactory.eINSTANCE.createReturndescriptoroutofscopeType();
		script_Returndescriptoroutofscope.setCategory(CategoryType.CANPANIC);
		script_Returndescriptoroutofscope.setEnable(true);
		script_Returndescriptoroutofscope.setSeverity(SeverityType.HIGH);
		scripts.setReturndescriptoroutofscope(script_Returndescriptoroutofscope);

		RfsType script_Rfs = CSConfigFactory.eINSTANCE.createRfsType();
		script_Rfs.setCategory(CategoryType.CODEREVIEW);
		script_Rfs.setEnable(true);
		script_Rfs.setSeverity(SeverityType.LOW);
		scripts.setRfs(script_Rfs);

		RssnamesType script_Rssnames = CSConfigFactory.eINSTANCE.createRssnamesType();
		script_Rssnames.setCategory(CategoryType.CODEREVIEW);
		script_Rssnames.setEnable(true);
		script_Rssnames.setSeverity(SeverityType.LOW);
		scripts.setRssnames(script_Rssnames);

		StringliteralsType script_Stringliterals = CSConfigFactory.eINSTANCE.createStringliteralsType();
		script_Stringliterals.setCategory(CategoryType.CODINGSTANDARDS);
		script_Stringliterals.setEnable(true);
		script_Stringliterals.setSeverity(SeverityType.LOW);
		scripts.setStringliterals(script_Stringliterals);

		StringsinresourcefilesType script_Stringsinresourcefiles = CSConfigFactory.eINSTANCE.createStringsinresourcefilesType();
		script_Stringsinresourcefiles.setCategory(CategoryType.CODEREVIEW);
		script_Stringsinresourcefiles.setEnable(true);
		script_Stringsinresourcefiles.setSeverity(SeverityType.LOW);
		scripts.setStringsinresourcefiles(script_Stringsinresourcefiles);

		StructType script_Struct = CSConfigFactory.eINSTANCE.createStructType();
		script_Struct.setCategory(CategoryType.CODINGSTANDARDS);
		script_Struct.setEnable(true);
		script_Struct.setSeverity(SeverityType.LOW);
		scripts.setStruct(script_Struct);

		TcclassesType script_Tcclasses = CSConfigFactory.eINSTANCE.createTcclassesType();
		script_Tcclasses.setCategory(CategoryType.FUNCTIONALITY);
		script_Tcclasses.setEnable(true);
		script_Tcclasses.setSeverity(SeverityType.MEDIUM);
		scripts.setTcclasses(script_Tcclasses);

		TclassdestructorType script_Tclassdestructor = CSConfigFactory.eINSTANCE.createTclassdestructorType();
		script_Tclassdestructor.setCategory(CategoryType.CODINGSTANDARDS);
		script_Tclassdestructor.setEnable(true);
		script_Tclassdestructor.setSeverity(SeverityType.LOW);
		scripts.setTclassdestructor(script_Tclassdestructor);

		TodocommentsType script_Todocomments = CSConfigFactory.eINSTANCE.createTodocommentsType();
		script_Todocomments.setCategory(CategoryType.CODEREVIEW);
		script_Todocomments.setEnable(true);
		script_Todocomments.setSeverity(SeverityType.LOW);
		scripts.setTodocomments(script_Todocomments);

		TrapcleanupType script_Trapcleanup = CSConfigFactory.eINSTANCE.createTrapcleanupType();
		script_Trapcleanup.setCategory(CategoryType.PANIC);
		script_Trapcleanup.setEnable(true);
		script_Trapcleanup.setSeverity(SeverityType.HIGH);
		scripts.setTrapcleanup(script_Trapcleanup);

		TrapeleaveType script_Trapeleave = CSConfigFactory.eINSTANCE.createTrapeleaveType();
		script_Trapeleave.setCategory(CategoryType.PERFORMANCE);
		script_Trapeleave.setEnable(true);
		script_Trapeleave.setSeverity(SeverityType.MEDIUM);
		scripts.setTrapeleave(script_Trapeleave);

		TraprunlType script_Traprunl = CSConfigFactory.eINSTANCE.createTraprunlType();
		script_Traprunl.setCategory(CategoryType.CODINGSTANDARDS);
		script_Traprunl.setEnable(true);
		script_Traprunl.setSeverity(SeverityType.LOW);
		scripts.setTraprunl(script_Traprunl);

		TrspassingType script_Trspassing = CSConfigFactory.eINSTANCE.createTrspassingType();
		script_Trspassing.setCategory(CategoryType.FUNCTIONALITY);
		script_Trspassing.setEnable(true);
		script_Trspassing.setSeverity(SeverityType.MEDIUM);
		scripts.setTrspassing(script_Trspassing);

		UidsType script_Uids = CSConfigFactory.eINSTANCE.createUidsType();
		script_Uids.setCategory(CategoryType.CODEREVIEW);
		script_Uids.setEnable(true);
		script_Uids.setSeverity(SeverityType.LOW);
		scripts.setUids(script_Uids);

		UncompressedaifType script_Uncompressedaif = CSConfigFactory.eINSTANCE.createUncompressedaifType();
		script_Uncompressedaif.setCategory(CategoryType.PERFORMANCE);
		script_Uncompressedaif.setEnable(true);
		script_Uncompressedaif.setSeverity(SeverityType.MEDIUM);
		scripts.setUncompressedaif(script_Uncompressedaif);

		UncompressedbmpType script_Uncompressedbmp = CSConfigFactory.eINSTANCE.createUncompressedbmpType();
		script_Uncompressedbmp.setCategory(CategoryType.PERFORMANCE);
		script_Uncompressedbmp.setEnable(true);
		script_Uncompressedbmp.setSeverity(SeverityType.MEDIUM);
		scripts.setUncompressedbmp(script_Uncompressedbmp);

		UnicodesourceType script_Unicodesource = CSConfigFactory.eINSTANCE.createUnicodesourceType();
		script_Unicodesource.setCategory(CategoryType.CODEREVIEW);
		script_Unicodesource.setEnable(true);
		script_Unicodesource.setSeverity(SeverityType.LOW);
		scripts.setUnicodesource(script_Unicodesource);

		UserafterType script_Userafter = CSConfigFactory.eINSTANCE.createUserafterType();
		script_Userafter.setCategory(CategoryType.PERFORMANCE);
		script_Userafter.setEnable(true);
		script_Userafter.setSeverity(SeverityType.MEDIUM);
		scripts.setUserafter(script_Userafter);

		UserfreeType script_Userfree = CSConfigFactory.eINSTANCE.createUserfreeType();
		script_Userfree.setCategory(CategoryType.CODEREVIEW);
		script_Userfree.setEnable(true);
		script_Userfree.setSeverity(SeverityType.LOW);
		scripts.setUserfree(script_Userfree);

		UserWaitForRequestType script_UserWaitForRequest = CSConfigFactory.eINSTANCE.createUserWaitForRequestType();
		script_UserWaitForRequest.setCategory(CategoryType.CODEREVIEW);
		script_UserWaitForRequest.setEnable(true);
		script_UserWaitForRequest.setSeverity(SeverityType.LOW);
		scripts.setUserWaitForRequest(script_UserWaitForRequest);

		VariablenamesType script_Variablenames = CSConfigFactory.eINSTANCE.createVariablenamesType();
		script_Variablenames.setCategory(CategoryType.CODINGSTANDARDS);
		script_Variablenames.setEnable(true);
		script_Variablenames.setSeverity(SeverityType.LOW);
		scripts.setVariablenames(script_Variablenames);

		VoidparameterType script_Voidparameter = CSConfigFactory.eINSTANCE.createVoidparameterType();
		script_Voidparameter.setCategory(CategoryType.CODINGSTANDARDS);
		script_Voidparameter.setEnable(true);
		script_Voidparameter.setSeverity(SeverityType.LOW);
		scripts.setVoidparameter(script_Voidparameter);

		WorryingcommentsType script_Worryingcomments = CSConfigFactory.eINSTANCE.createWorryingcommentsType();
		script_Worryingcomments.setCategory(CategoryType.CODEREVIEW);
		script_Worryingcomments.setEnable(true);
		script_Worryingcomments.setSeverity(SeverityType.LOW);
		script_Worryingcomments.setWorryRE("kludge|workaround|\\scrap|hack");
		scripts.setWorryingcomments(script_Worryingcomments);

		return scripts;
	}
	
	/**
	 * Create the default severities element.
	 */
	private SeveritiesType createDefaultSeverities() {
		SeveritiesType severities = CSConfigFactory.eINSTANCE.createSeveritiesType();
		
		HighType severity_High = CSConfigFactory.eINSTANCE.createHighType();
		severity_High.setEnable(true);
		severities.setHigh(severity_High);
		
		MediumType severity_Medium = CSConfigFactory.eINSTANCE.createMediumType();
		severity_Medium.setEnable(true);
		severities.setMedium(severity_Medium);
		
		LowType severity_Low = CSConfigFactory.eINSTANCE.createLowType();
		severity_Low.setEnable(true);
		severities.setLow(severity_Low);
		
		return severities;
	}

	/**
	 * Create the default sources element.
	 */
	private SourcesType createDefaultSources() {
		SourcesType sources = CSConfigFactory.eINSTANCE.createSourcesType();
		EList<String> excludeList = sources.getExclude();
		String[] defaultFileFilters = new String[] {
				".*\\.au",
				".*\\.avi",
				".*\\.bat",
				".*\\.bin",
				".*\\.bmp",
				".*\\.cmd",
				".*\\.dll",
				".*\\.doc",
				".*\\.exe",
				".*\\.gif",
				".*\\.jpg",
				".*\\.lib",
				".*\\.log",
				".*\\.mbm",
				".*\\.mp3",
				".*\\.mpg",
				".*\\.png",
				".*\\.raw",
				".*\\.rtf",
				".*\\.tif",
				".*\\.wav",
				".*\\.wbmp",
				".*\\.wmf",
				".*\\.xls",
				".*\\.zip"
			};
		for (int i = 0; i < defaultFileFilters.length; i++) {
			excludeList.add(defaultFileFilters[i]);
		}
		return sources;
	}

	/**
	 * Create an error dialog when failed to load from CodeScanner configuration file.
	 */
	private void loadConfigError(String fileName, String errorMessage) {
		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
		if (workbenchWindow != null) {
			MessageDialog.openError(workbenchWindow.getShell(), 
				Messages.getString("CSConfigSettings.LoadConfigErrorTitle"), 
				Messages.getString("CSConfigSettings.LoadConfigErrorMessage") + fileName + ": " + errorMessage);
		}
	}

	/**
	 * Create an error dialog when failed to save CodeScanner configuration to file.
	 */
	private void saveConfigError(String fileName, String errorMessage) {
		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
		if (workbenchWindow != null) {
			MessageDialog.openError(workbenchWindow.getShell(), 
				Messages.getString("CSConfigSettings.SaveConfigErrorTitle"), 
				Messages.getString("CSConfigSettings.SaveConfigErrorMessage") + fileName + ": " + errorMessage);
		}
	}

}
