diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/el/operators/NotUnaryOperator.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/el/operators/NotUnaryOperator.java | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/el/operators/NotUnaryOperator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/el/operators/NotUnaryOperator.java deleted file mode 100644 index f8f09b22e..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/el/operators/NotUnaryOperator.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * 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.el.operators; - -import org.eclipse.emf.common.util.Diagnostic; -import org.eclipse.jst.jsf.common.internal.types.BooleanLiteralType; -import org.eclipse.jst.jsf.common.internal.types.LiteralType; -import org.eclipse.jst.jsf.common.internal.types.TypeCoercer; -import org.eclipse.jst.jsf.common.internal.types.TypeCoercionException; -import org.eclipse.jst.jsf.common.internal.types.TypeConstants; -import org.eclipse.jst.jsf.common.internal.types.TypeTransformer; -import org.eclipse.jst.jsf.common.internal.types.ValueType; -import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory; - -/** - * Represents te EL unary operators "!" and "not" on a ValueType - * as described by JSP.2.3.6.2 - * - * @author cbateman - * - */ -/*package*/ class NotUnaryOperator extends UnaryOperator -{ - NotUnaryOperator(DiagnosticFactory diagnosticFactory) - { - super(diagnosticFactory); - } - - public Diagnostic validate(ValueType type) - { - if (TypeConstants.TYPE_JAVAOBJECT.equals(type.getSignature())) { - return Diagnostic.OK_INSTANCE; - } - boolean canCoerce = - TypeCoercer.canCoerceToBoolean(TypeTransformer.transformBoxPrimitives(type.getSignature())); - - if (canCoerce) - { - // check for constant evaluation - if (type instanceof LiteralType) - { - try - { - Boolean coercedValue = ((LiteralType)type).coerceToBoolean(); - - // we are logically notting, so coerced is true, then false - // if false then true - return _diagnosticFactory.create_UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME_ID( - "not" //$NON-NLS-1$ - , Boolean.valueOf(!coercedValue.booleanValue()).toString()); - - } - catch (TypeCoercionException tce) - { - throw new AssertionError("coerce should not throw exception"); //$NON-NLS-1$ - } - } - - return Diagnostic.OK_INSTANCE; - } - return _diagnosticFactory.create_UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN(); - } - - public ValueType performOperation(ValueType type) - { - boolean canCoerce = - TypeCoercer.canCoerceToBoolean(TypeTransformer.transformBoxPrimitives(type.getSignature())); - - if (canCoerce) - { - if (type instanceof LiteralType) - { - try - { - Boolean coercedValue = ((LiteralType)type).coerceToBoolean(); - - // we are logically notting, so coerced is true, then false - // if false then true - return - coercedValue.booleanValue() ? - BooleanLiteralType.FALSE : - BooleanLiteralType.TRUE; - } - catch (TypeCoercionException tce) - { - throw new AssertionError("coerce should not throw exception"); //$NON-NLS-1$ - } - } - - return new ValueType(TypeConstants.TYPE_BOOLEAN, type.getAssignability()); - } - return null; - } - -} |