blob: d6673327472b433fb5be7ea1362fb52f520067ec [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Cameron Bateman/Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.validation.internal;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jst.jsf.core.internal.IJSFPreferenceModel;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
/**
* Model object for EL validation preferences
*
* @author cbateman
*/
public class ELValidationPreferences implements IJSFPreferenceModel
{
private final static String KEY_ENABLE_BUILD_VALIDATION =
"org.eclipse.jst.jsf.ui.ValidateJSFELBuild"; //$NON-NLS-1$
private final static boolean DEFAULT_ENABLE_BUILD_VALIDATION = true;
private final static String KEY_ENABLE_INCREMENTAL_VALIDATION =
"org.eclipse.jst.jsf.ui.ValidateJSFELIncremental"; //$NON-NLS-1$
private final static boolean DEFAULT_ENABLE_INCREMENTAL_VALIDATION = false;
private boolean _enableBuildValidation;
private boolean _enableIncrementalValidation;
private int[] _severities;
/**
* Loads the object from the preference store provided
*
* @param prefStore
*/
public void load(IPreferenceStore prefStore)
{
if (!prefStore.contains(KEY_ENABLE_BUILD_VALIDATION))
{
prefStore.setDefault(KEY_ENABLE_BUILD_VALIDATION, DEFAULT_ENABLE_BUILD_VALIDATION);
}
_enableBuildValidation =
prefStore.getBoolean(KEY_ENABLE_BUILD_VALIDATION);
if (!prefStore.contains(KEY_ENABLE_INCREMENTAL_VALIDATION))
{
prefStore.setDefault(KEY_ENABLE_INCREMENTAL_VALIDATION, DEFAULT_ENABLE_INCREMENTAL_VALIDATION);
}
_enableIncrementalValidation =
prefStore.getBoolean(KEY_ENABLE_INCREMENTAL_VALIDATION);
loadSeverities(prefStore);
}
private void loadSeverities(final IPreferenceStore prefStore)
{
final int severities[] = getSeverities();
for (int i = 0; i < DiagnosticFactory.NUM_IDS; i++)
{
final String key = getKeyById(i);
if (!prefStore.contains(key))
{
final int diagSeverity = getDefaultSeverity(i);
final Severity severity = mapDiagToSeverity(diagSeverity);
prefStore.setDefault(key, severity.toString());
}
final String storedSeverity = prefStore.getString(key);
severities[i] = mapSeverityToDiag(storedSeverity);
}
}
/**
* Copies the object into the preference store but DOES NOT SAVE IT
*
* @param prefStore
*/
public void commit(IPreferenceStore prefStore)
{
prefStore.setValue(KEY_ENABLE_BUILD_VALIDATION, _enableBuildValidation);
prefStore.setValue(KEY_ENABLE_INCREMENTAL_VALIDATION,
_enableIncrementalValidation);
commitSeverities(prefStore);
}
private void commitSeverities(final IPreferenceStore prefStore)
{
final int severities[] = getSeverities();
for (int i = 0; i < severities.length; i++)
{
final String key = getKeyById(i);
prefStore.setValue(key
, mapDiagToSeverity(severities[i]).toString());
}
}
/**
* Reverts the model to it's defaults. Does not commit to pref store.
*/
public void setDefaults()
{
setEnableBuildValidation(DEFAULT_ENABLE_BUILD_VALIDATION);
setEnableIncrementalValidation(DEFAULT_ENABLE_INCREMENTAL_VALIDATION);
setProblemSeverityDefaults();
}
private void setProblemSeverityDefaults()
{
final int[] severities = getSeverities();
for (int i = 0; i < DiagnosticFactory.NUM_IDS; i++)
{
severities[i] = getDefaultSeverity(i);
}
}
public Object getValueByKey(IScopeContext context, String key) {
// ignore context for now; will be used when we have project overrides
if (KEY_ENABLE_BUILD_VALIDATION.equals(key))
{
return Boolean.valueOf(isEnableBuildValidation());
}
else if (KEY_ENABLE_INCREMENTAL_VALIDATION.equals(key))
{
return Boolean.valueOf(isEnableIncrementalValidation());
}
else
{
try
{
final Severity severity = getSeverity(key);
return severity.toString();
}
catch (IllegalArgumentException e)
{
// getIdByKey will throw this exception if key is not a valid
// severity key. Ignore the exception here and fall-through
}
}
return null; // not found
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.core.internal.IJSFPreferenceModel#getStoredValueByKey(org.eclipse.core.runtime.preferences.IScopeContext, java.lang.String)
*/
public Object getStoredValueByKey(IScopeContext context, String key) {
// ignore context for now; will be used when we have project overrides
if (KEY_ENABLE_BUILD_VALIDATION.equals(key))
{
return Boolean.valueOf(context.getNode("org.eclipse.jst.jsf.ui").getBoolean(key, true)); //$NON-NLS-1$
}
else if (KEY_ENABLE_INCREMENTAL_VALIDATION.equals(key))
{
return Boolean.valueOf(context.getNode("org.eclipse.jst.jsf.ui").getBoolean(key, false)); //$NON-NLS-1$
}
else
{
try
{
return context.getNode("org.eclipse.jst.jsf.core").get(key, mapDiagToSeverity(getDefaultSeverity(getIdByKey(key))).toString()); //$NON-NLS-1$
}
catch (IllegalArgumentException e)
{
// getIdByKey will throw this exception if key is not a valid
// severity key. Ignore the exception here and fall-through
}
}
return null; // not found
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.core.internal.IJSFPreferenceModel#setValueByKey(org.eclipse.core.runtime.preferences.IScopeContext, java.lang.String, java.lang.Object)
*/
public Object setValueByKey(IScopeContext context, String key, Object value)
{
// ignore context for now; will be used when we have project overrides
if (KEY_ENABLE_BUILD_VALIDATION.equals(key))
{
boolean oldValue = isEnableBuildValidation();
boolean newValue = ((Boolean)value).booleanValue();
setEnableBuildValidation(newValue);
return Boolean.valueOf(oldValue);
}
else if (KEY_ENABLE_INCREMENTAL_VALIDATION.equals(key))
{
boolean oldValue = isEnableIncrementalValidation();
boolean newValue = ((Boolean)value).booleanValue();
setEnableIncrementalValidation(newValue);
return Boolean.valueOf(oldValue);
}
else
{
final Severity oldValue = getSeverity(key);
setSeverity(key, (Severity)value);
return oldValue;
}
}
/**
* @return the build validation enablement
*/
public boolean isEnableBuildValidation()
{
return _enableBuildValidation;
}
/**
* @return the incremental validation enablement
*/
public boolean isEnableIncrementalValidation()
{
return _enableIncrementalValidation;
}
/**
* @param enableBuildValidation
*/
public void setEnableBuildValidation(boolean enableBuildValidation) {
_enableBuildValidation = enableBuildValidation;
}
/**
* @param enableIncrementalValidation
*/
public void setEnableIncrementalValidation(boolean enableIncrementalValidation) {
_enableIncrementalValidation = enableIncrementalValidation;
}
/**
* @param key
* @return the severity
*/
public Severity getSeverity(final String key)
{
final int severityDiag = _severities[getIdByKey(key)];
final Severity severity = mapDiagToSeverity(severityDiag);
return severity;
}
/**
* @param key
* @param severity
*/
public void setSeverity(final String key, final Severity severity)
{
final int newSeverityDiag = mapSeverityToDiag(severity.toString());
final int diagId = getIdByKey(key);
_severities[diagId] = newSeverityDiag;
}
/**
* @param diagnosticId
* @return the severity as configured for diagnosticId. The value
* is relative to the Diagnostic class severity scheme
*/
public final int getDiagnosticSeverity(final int diagnosticId)
{
return getSeverities()[diagnosticId];
}
private int[] getSeverities()
{
if (_severities == null)
{
_severities = new int[DiagnosticFactory.NUM_IDS];
}
return _severities;
}
/**
* @param diagSeverity
* @return a Severity preference value for a diagnostic severity
*/
public static Severity mapDiagToSeverity(int diagSeverity)
{
switch(diagSeverity)
{
case Diagnostic.ERROR:
return Severity.ERROR;
case Diagnostic.WARNING:
return Severity.WARNING;
default:
return Severity.IGNORE;
}
}
/**
* @param severity
* @return a Diagnostic severity level for a severity pref string
*/
public static int mapSeverityToDiag(String severity)
{
if ("error".equals(severity)) //$NON-NLS-1$
{
return Diagnostic.ERROR;
}
else if ("warning".equals(severity)) //$NON-NLS-1$
{
return Diagnostic.WARNING;
}
else if ("ignore".equals(severity)) //$NON-NLS-1$
{
return Diagnostic.OK;
}
else
{
throw new IllegalArgumentException("Invalid enum name: "+severity); //$NON-NLS-1$
}
}
/**
* @param diagnosticId
* @return the default severity of a diagnostic
*/
public static int getDefaultSeverity(final int diagnosticId)
{
switch(diagnosticId)
{
case DiagnosticFactory.BINARY_OP_BOTH_OPERANDS_NULL_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_POSSIBLE_DIVISION_BY_ZERO_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_NO_AVAILABLE_TYPE_COERCION_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.TERNARY_OP_CHOICE_IS_ALWAYS_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.MEMBER_NOT_FOUND_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.VARIABLE_NOT_FOUND_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.MISSING_CLOSING_EXPR_BRACKET_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.EMPTY_EL_EXPRESSION_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_DOT_WITH_VALUEB_NULL_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME_ID:
return Diagnostic.WARNING;
case DiagnosticFactory.BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE_ID:
return Diagnostic.ERROR;
case DiagnosticFactory.MEMBER_IS_INTERMEDIATE_ID:
return Diagnostic.WARNING;
default:
throw new IllegalArgumentException("Diagnostic Id: "+ diagnosticId +" is out of range"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* @param diagnosticId
* @return the preference key for the corresponding diagnosticId in the el DiagnosticFactory
*/
public static String getKeyById(final int diagnosticId)
{
switch(diagnosticId)
{
case DiagnosticFactory.BINARY_OP_BOTH_OPERANDS_NULL_ID:
return BINARY_OP_BOTH_OPERANDS_NULL;
case DiagnosticFactory.BINARY_OP_POSSIBLE_DIVISION_BY_ZERO_ID:
return BINARY_OP_POSSIBLE_DIVISION_BY_ZERO;
case DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID:
return BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION;
case DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID:
return BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME;
case DiagnosticFactory.BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME_ID:
return BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME;
case DiagnosticFactory.BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID:
return BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN;
case DiagnosticFactory.BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS_ID:
return BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS;
case DiagnosticFactory.BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME_ID:
return BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME;
case DiagnosticFactory.BINARY_OP_NO_AVAILABLE_TYPE_COERCION_ID:
return BINARY_OP_NO_AVAILABLE_TYPE_COERCION;
case DiagnosticFactory.BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS_ID:
return BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS;
case DiagnosticFactory.UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME_ID:
return UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME;
case DiagnosticFactory.UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE_ID:
return UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE;
case DiagnosticFactory.UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO_ID:
return UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO;
case DiagnosticFactory.UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID:
return UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION;
case DiagnosticFactory.UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID:
return UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN;
case DiagnosticFactory.TERNARY_OP_CHOICE_IS_ALWAYS_SAME_ID:
return TERNARY_OP_CHOICE_IS_ALWAYS_SAME;
case DiagnosticFactory.TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN_ID:
return TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN;
case DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID:
return UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED;
case DiagnosticFactory.CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING_ID:
return CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING;
case DiagnosticFactory.MEMBER_NOT_FOUND_ID:
return MEMBER_NOT_FOUND;
case DiagnosticFactory.VARIABLE_NOT_FOUND_ID:
return VARIABLE_NOT_FOUND;
case DiagnosticFactory.MISSING_CLOSING_EXPR_BRACKET_ID:
return MISSING_CLOSING_EXPR_BRACKET;
case DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID:
return GENERAL_SYNTAX_ERROR;
case DiagnosticFactory.EMPTY_EL_EXPRESSION_ID:
return EMPTY_EL_EXPRESSION;
case DiagnosticFactory.BINARY_OP_DOT_WITH_VALUEB_NULL_ID:
return BINARY_OP_DOT_WITH_VALUEB_NULL;
case DiagnosticFactory.BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY_ID:
return BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY;
case DiagnosticFactory.POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS_ID:
return POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS;
case DiagnosticFactory.BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME_ID:
return BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME;
case DiagnosticFactory.BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE_ID:
return BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE;
case DiagnosticFactory.MEMBER_IS_INTERMEDIATE_ID:
return MEMBER_IS_INTERMEDIATE;
default:
throw new IllegalArgumentException("Diagnostic Id: "+ diagnosticId +" is out of range"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* @param key
* @return the preference key for the corresponding diagnosticId in the el DiagnosticFactory
*/
public static int getIdByKey(final String key)
{
if (BINARY_OP_BOTH_OPERANDS_NULL.equals(key))
{
return DiagnosticFactory.BINARY_OP_BOTH_OPERANDS_NULL_ID;
}
else if (BINARY_OP_POSSIBLE_DIVISION_BY_ZERO.equals(key))
{
return DiagnosticFactory.BINARY_OP_POSSIBLE_DIVISION_BY_ZERO_ID;
}
else if (BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION.equals(key))
{
return DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID;
}
else if (BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME.equals(key))
{
return DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID;
}
else if (BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME.equals(key))
{
return DiagnosticFactory.BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME_ID;
}
else if (BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN.equals(key))
{
return DiagnosticFactory.BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID;
}
else if (BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS.equals(key))
{
return DiagnosticFactory.BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS_ID;
}
else if (BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME.equals(key))
{
return DiagnosticFactory.BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME_ID;
}
else if (BINARY_OP_NO_AVAILABLE_TYPE_COERCION.equals(key))
{
return DiagnosticFactory.BINARY_OP_NO_AVAILABLE_TYPE_COERCION_ID;
}
else if (BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS.equals(key))
{
return DiagnosticFactory.BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS_ID;
}
else if (UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME.equals(key))
{
return DiagnosticFactory.UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME_ID;
}
else if (UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE.equals(key))
{
return DiagnosticFactory.UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE_ID;
}
else if (UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO.equals(key))
{
return DiagnosticFactory.UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO_ID;
}
else if (UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION.equals(key))
{
return DiagnosticFactory.UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID;
}
else if (UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN.equals(key))
{
return DiagnosticFactory.UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID;
}
else if (TERNARY_OP_CHOICE_IS_ALWAYS_SAME.equals(key))
{
return DiagnosticFactory.TERNARY_OP_CHOICE_IS_ALWAYS_SAME_ID;
}
else if (TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN.equals(key))
{
return DiagnosticFactory.TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN_ID;
}
else if (UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED.equals(key))
{
return DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID;
}
else if (CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING.equals(key))
{
return DiagnosticFactory.CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING_ID;
}
else if (MEMBER_NOT_FOUND.equals(key))
{
return DiagnosticFactory.MEMBER_NOT_FOUND_ID;
}
else if (VARIABLE_NOT_FOUND.equals(key))
{
return DiagnosticFactory.VARIABLE_NOT_FOUND_ID;
}
else if (MISSING_CLOSING_EXPR_BRACKET.equals(key))
{
return DiagnosticFactory.MISSING_CLOSING_EXPR_BRACKET_ID;
}
else if (GENERAL_SYNTAX_ERROR.equals(key))
{
return DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID;
}
else if (EMPTY_EL_EXPRESSION.equals(key))
{
return DiagnosticFactory.EMPTY_EL_EXPRESSION_ID;
}
else if (BINARY_OP_DOT_WITH_VALUEB_NULL.equals(key))
{
return DiagnosticFactory.BINARY_OP_DOT_WITH_VALUEB_NULL_ID;
}
else if (BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY.equals(key))
{
return DiagnosticFactory.BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY_ID;
}
else if (POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS.equals(key))
{
return DiagnosticFactory.POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS_ID;
}
else if (BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME.equals(key))
{
return DiagnosticFactory.BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME_ID;
}
else if (BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE.equals(key))
{
return DiagnosticFactory.BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE_ID;
}
else if (MEMBER_IS_INTERMEDIATE.equals(key))
{
return DiagnosticFactory.MEMBER_IS_INTERMEDIATE_ID;
}
else
{
throw new IllegalArgumentException("Severity Key: "+ key); //$NON-NLS-1$
}
}
/**
* e.g. createQualifiedKeyName("foo") -> org.eclipse.jst.jsf.core.foo
* @param baseName
* @return a plugin qualified key given the baseName
*
*/
private static String createQualifiedKeyName(final String baseName)
{
return JSFCorePlugin.PLUGIN_ID + "." + baseName; //$NON-NLS-1$
}
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_BOTH_OPERANDS_NULL =
createQualifiedKeyName("BINARY_OP_BOTH_OPERANDS_NULL"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_POSSIBLE_DIVISION_BY_ZERO =
createQualifiedKeyName("BINARY_OP_POSSIBLE_DIVISION_BY_ZERO"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION =
createQualifiedKeyName("BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME =
createQualifiedKeyName("BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME =
createQualifiedKeyName("BINARY_OP_EQUALITY_COMP_WITH_NULL_ALWAYS_EVAL_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN =
createQualifiedKeyName("BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS =
createQualifiedKeyName("BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME =
createQualifiedKeyName("BINARY_OP_SECOND_ARGUMENT_ALWAYS_EVAL_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_NO_AVAILABLE_TYPE_COERCION =
createQualifiedKeyName("BINARY_OP_NO_AVAILABLE_TYPE_COERCION"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS =
createQualifiedKeyName("BINARY_OP_COULD_NOT_COERCE_LITERALS_TO_NUMBERS"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME =
createQualifiedKeyName("UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE =
createQualifiedKeyName("UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO =
createQualifiedKeyName("UNARY_OP_MINUS_ON_NULL_ALWAYS_ZERO"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION =
createQualifiedKeyName("UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN =
createQualifiedKeyName("UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String TERNARY_OP_CHOICE_IS_ALWAYS_SAME =
createQualifiedKeyName("TERNARY_OP_CHOICE_IS_ALWAYS_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN =
createQualifiedKeyName("TERNARY_OP_CANNOT_COERCE_CHOICE_TO_BOOLEAN"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED =
createQualifiedKeyName("UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING =
createQualifiedKeyName("CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String MEMBER_NOT_FOUND =
createQualifiedKeyName("MEMBER_NOT_FOUND"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String VARIABLE_NOT_FOUND =
createQualifiedKeyName("VARIABLE_NOT_FOUND"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String MISSING_CLOSING_EXPR_BRACKET =
createQualifiedKeyName("MISSING_CLOSING_EXPR_BRACKET"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String GENERAL_SYNTAX_ERROR =
createQualifiedKeyName("GENERAL_SYNTAX_ERROR"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String EMPTY_EL_EXPRESSION =
createQualifiedKeyName("EMPTY_EL_EXPRESSION"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_DOT_WITH_VALUEB_NULL =
createQualifiedKeyName("BINARY_OP_DOT_WITH_VALUEB_NULL"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY =
createQualifiedKeyName("BINARY_OP_DOT_WITH_DOTTED_KEY_SHOULD_USE_ARRAY"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS =
createQualifiedKeyName("POSSIBLE_ARRAY_INDEX_OUT_OF_BOUNDS"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME =
createQualifiedKeyName("BINARY_COMPARISON_WITH_ENUM_ALWAYS_SAME"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE =
createQualifiedKeyName("BINARY_OP_COMPARISON_OF_ENUMS_INCOMPATIBLE"); //$NON-NLS-1$
/**
* preference key. Match to DiagnosticFactory constants
*/
public final static String MEMBER_IS_INTERMEDIATE =
createQualifiedKeyName("MEMBER_IS_INTERMEDIATE"); //$NON-NLS-1$
}