X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/dom/BooleanLiteral.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/dom/BooleanLiteral.java new file mode 100644 index 0000000..9685b89 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/dom/BooleanLiteral.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * Copyright (c) 2000, 2008 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package net.sourceforge.phpdt.core.dom; + +import java.util.ArrayList; +import java.util.List; + +/** + * Boolean literal node. + * + *
+ * BooleanLiteral:
+ * 		true
+ * 		false
+ * 
+ * + * @since 2.0 + * @noinstantiate This class is not intended to be instantiated by clients. + */ +public class BooleanLiteral extends Expression { + + /** + * The "booleanValue" structural property of this node type. + * @since 3.0 + */ + public static final SimplePropertyDescriptor BOOLEAN_VALUE_PROPERTY = + new SimplePropertyDescriptor(BooleanLiteral.class, "booleanValue", boolean.class, MANDATORY); //$NON-NLS-1$ + + /** + * A list of property descriptors (element type: + * {@link StructuralPropertyDescriptor}), + * or null if uninitialized. + */ + private static final List PROPERTY_DESCRIPTORS; + + static { + List properyList = new ArrayList(2); + createPropertyList(BooleanLiteral.class, properyList); + addProperty(BOOLEAN_VALUE_PROPERTY, properyList); + PROPERTY_DESCRIPTORS = reapPropertyList(properyList); + } + + /** + * Returns a list of structural property descriptors for this node type. + * Clients must not modify the result. + * + * @param apiLevel the API level; one of the + * AST.JLS* constants + + * @return a list of property descriptors (element type: + * {@link StructuralPropertyDescriptor}) + * @since 3.0 + */ + public static List propertyDescriptors(int apiLevel) { + return PROPERTY_DESCRIPTORS; + } + + /** + * The boolean; defaults to the literal for false. + */ + private boolean value = false; + + /** + * Creates a new unparented boolean literal node owned by the given AST. + *

+ * N.B. This constructor is package-private. + *

+ * + * @param ast the AST that is to own this node + */ + BooleanLiteral(AST ast) { + super(ast); + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + final List internalStructuralPropertiesForType(int apiLevel) { + return propertyDescriptors(apiLevel); + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + final boolean internalGetSetBooleanProperty(SimplePropertyDescriptor property, boolean get, boolean newValue) { + if (property == BOOLEAN_VALUE_PROPERTY) { + if (get) { + return booleanValue(); + } else { + setBooleanValue(newValue); + return false; + } + } + // allow default implementation to flag the error + return super.internalGetSetBooleanProperty(property, get, newValue); + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + final int getNodeType0() { + return BOOLEAN_LITERAL; + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + ASTNode clone0(AST target) { + BooleanLiteral result = new BooleanLiteral(target); + result.setSourceRange(this.getStartPosition(), this.getLength()); + result.setBooleanValue(booleanValue()); + return result; + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + final boolean subtreeMatch0(ASTMatcher matcher, Object other) { + // dispatch to correct overloaded match method + return matcher.match(this, other); + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + void accept0(ASTVisitor visitor) { + visitor.visit(this); + visitor.endVisit(this); + } + + /** + * Returns the boolean value of this boolean literal node. + * + * @return true for the boolean literal spelled + * "true", and false for the boolean literal + * spelled "false". + */ + public boolean booleanValue() { + return this.value; + } + + /** + * Sets the boolean value of this boolean literal node. + * + * @param value true for the boolean literal spelled + * "true", and false for the boolean literal + * spelled "false". + */ + public void setBooleanValue(boolean value) { + preValueChange(BOOLEAN_VALUE_PROPERTY); + this.value = value; + postValueChange(BOOLEAN_VALUE_PROPERTY); + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + int memSize() { + return BASE_NODE_SIZE + 1 * 4; + } + + /* (omit javadoc for this method) + * Method declared on ASTNode. + */ + int treeSize() { + return memSize(); + } +} +