| /******************************************************************************* |
| * 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.common.internal.types; |
| |
| import org.eclipse.jdt.core.Signature; |
| |
| /** |
| * Represents a BooleanLiteral as defined by JSP.2.9 |
| * |
| * @author cbateman |
| * |
| */ |
| public class BooleanLiteralType extends LiteralType |
| { |
| /** |
| * The literal FALSE singleton |
| */ |
| public final static BooleanLiteralType FALSE = new BooleanLiteralType(false); |
| /** |
| * The literal TRUE singleton |
| */ |
| public final static BooleanLiteralType TRUE = new BooleanLiteralType(true); |
| |
| private final boolean _literalValue; |
| |
| |
| /** |
| * @param value |
| * @return a constant boolean literal type corresponding to value |
| */ |
| public static BooleanLiteralType valueOf(boolean value) |
| { |
| return value ? TRUE : FALSE; |
| } |
| |
| /** |
| * @param literalValue |
| */ |
| /*package*/BooleanLiteralType(boolean literalValue) |
| { |
| super(Signature.SIG_BOOLEAN); |
| _literalValue = literalValue; |
| } |
| |
| public Number coerceToNumber(Class T) throws TypeCoercionException |
| { |
| // illegal to coerce boolean to number per JSP.2.8.3 step 3 |
| throw new TypeCoercionException("Cannot coerce boolean to number"); //$NON-NLS-1$ |
| } |
| |
| public String getLiteralValue() |
| { |
| return Boolean.toString(_literalValue); |
| } |
| |
| public Object getLiteralValueRaw() |
| { |
| return Boolean.valueOf(_literalValue); |
| } |
| |
| public Boolean coerceToBoolean() throws TypeCoercionException |
| { |
| return Boolean.valueOf(_literalValue); |
| } |
| |
| } |