# com.bea.ide.lang.java.element
JavaVariable Class

public class JavaVariable
extends `JavaMember`

JavaVariable is a DefaultSourceElement derivation that represents a member variable within a JavaClass.

JavaVariable objects generally do not have any children.

The properties available on an object of this type may be found by looking at the `getDefaultPropertyDescriptors``` method.

All java parse tree objects are instantiated as part of parse tree construction by the `JavaBuilder``` class.

Hierarchy
  `Object`
  `DefaultElement`
  `DefaultTreeElement`
  `DefaultDocumentElement`
  `DefaultSourceElement`
  `JavaElement`
  `JavaModifierSupport`
  `JavaMember`
  `JavaVariable`

All Implemented Interfaces
  `IDocumentElement`, `IElement`, `ISourceElement`, `IStructureFeature.IStructureNode`, `ITreeElement`

Direct Known Subclasses
  `ControlVariable`

## Nested Class Summary

Nested classes from com.bea.ide.sourceeditor.element`.`DefaultSourceElement``
``DefaultSourceElement.CompilerPropertyDescriptor`, `DefaultSourceElement.DefaultAuthorElement`, `DefaultSourceElement.StaticCompilerPropertyDescriptor`, `DefaultSourceElement.StickyRange``

## Field Summary

Fields from com.bea.ide.lang.java.element`.`JavaMember``
``PROP_THROWS``

Fields from com.bea.ide.lang.java.element`.`JavaModifierSupport``
``PROP_ABSTRACT`, `PROP_ACCESS`, `PROP_FINAL`, `PROP_NATIVE`, `PROP_STATIC`, `PROP_STRICTFP`, `PROP_SYNCHRONIZED`, `PROP_TRANSIENT`, `PROP_TYPE`, `PROP_VOLATILE``

Fields from com.bea.ide.sourceeditor.element`.`DefaultSourceElement``
``_range`, `PROP_NAME`, `PROP_VALUE``

Fields from com.bea.ide.element`.`DefaultTreeElement``
``_parent`, `_vChildren``

Fields from interface com.bea.ide.sourceeditor.element`.`ISourceElement``
``STATUS_IN_TREE`, `STATUS_NOT_IN_TREE`, `STATUS_REMOVED_FROM_TREE``

## Constructor Summary

JavaVariable() Creates a new object containing a null cookie.
JavaVariable(`Object` compilerCookie) Creates a new object containing the specified cookie.

## Method Summary

`public `DefaultSourceElement.CompilerPropertyDescriptor`[]` | `getDefaultPropertyDescriptors`() Objects of this type define the following properties: `JavaVariable.PROP_TYPE```: the type of this variable.
`public `String`` | `getType`() Gets the type of this JavaVariable
`public `IStructureFeature.StructureCode`` | `getTypeCode`() This method returns a code used by the compiler to identify the type of this element.
`public boolean` | `setInitializer`(`String` initializerSource) Replaces the body of this JavaMethod with the specified text.
`public boolean` | `setInitializer`(`String` initializerSource, boolean blockForResult) Replaces the body of this JavaMethod with the specified text.
`public void` | `setType`(`String` newString) Sets the Type of this JavaVariable
`public `String`` | `toString`() Stringify by returning my name
`public `Object`` | `visit`(`JavaVisitor` v, `Object` arg) Provides `JavaVisitor``` support for this element type.

Methods from `com.bea.ide.lang.java.element.`JavaMember``
``getAccess`, `getName`, `setAccess`, `setName`,`

Methods from `com.bea.ide.lang.java.element.`JavaModifierSupport``
``getAbstract`, `getDefaultPropertyDescriptors`, `getFinal`, `getNative`, `getStatic`, `getStrictFloatingPoint`, `getSynchronized`, `getTransient`, `getVolatile`, `mergePropertyDescriptors`, `setAbstract`, `setFinal`, `setNative`, `setStatic`, `setStrictFloatingPoint`, `setSynchronized`, `setTransient`, `setVolatile``

Methods from `com.bea.ide.sourceeditor.element.`DefaultSourceElement``
``addChild`, `createAuthorNode`, `debugDump`, `equals`, `getChildrenByClass`, `getClassLoader`, `getCookie`, `getDefaultPropertyDescriptors`, `getDiagnostics`, `getGroup`, `getInstanceName`, `getProperty`, `getPropertyCode`, `getPropertyDescriptors`, `getPropertySourceRange`, `getPropertySourceRanges`, `getPropertySourceText`, `getPropertySourceText`, `getRange`, `getRange`, `getRangePrefetchProperties`, `getStatus`, `initializeRange`, `initializeRange`, `insertChild`, `isAuthorProperty`, `markRemovedFromTree`, `mergeElements`, `mergeFrom`, `propertyModified`, `removeChild`, `removeChild`, `replaceChild`, `requestAddChild`, `requestAddChild`, `requestRemoveChild`, `requestSetProperty`, `setProperty`, `setStatus``

Methods from `com.bea.ide.document.`DefaultDocumentElement``
``addChild`, `getDocument`, `setDocument``

Methods from `com.bea.ide.element.`DefaultTreeElement``
``addChild`, `children`, `getChild`, `getChildCount`, `getParent`, `removeChild``

Methods from `com.bea.ide.element.`DefaultElement``
``getProperty`, `getPropertyDescriptors`, `setProperty``

Methods from class `java.lang.`Object``
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods from interface `com.bea.ide.document.`IDocumentElement``
``getDocument``

Methods from interface `com.bea.ide.element.`IElement``
``getProperty`, `getPropertyDescriptors`, `setProperty``

Methods from interface `com.bea.ide.sourceeditor.element.`ISourceElement``
``createAuthorNode`, `getCookie`, `getDiagnostics`, `getPropertyCode`, `getRange`, `getStatus`, `mergeFrom`, `requestAddChild`, `requestAddChild`, `requestRemoveChild`, `requestSetProperty``

Methods from interface `com.bea.compiler.feature.`IStructureFeature.IStructureNode``
`getCookie, getTypeCode`

Methods from interface `com.bea.ide.element.`ITreeElement``
``children`, `getChild`, `getChildCount`, `getParent``

## Constructor Detail

### JavaVariable

    public JavaVariable()

  Creates a new object containing a null cookie. This constructor should be used by callers constructing objects that are not part of an active parse tree, such as those to be added via two-way edit.

### JavaVariable

    public JavaVariable(Object compilerCookie)

  Creates a new object containing the specified cookie. This constructor should only be called by `ILanguageBuilder``` implementations.

## Method Detail

### getDefaultPropertyDescriptors() Method

    public DefaultSourceElement.CompilerPropertyDescriptor[] getDefaultPropertyDescriptors()

Objects of this type define the following properties:
`JavaVariable.PROP_TYPE```: the type of this variable.

Additionally, all DefaultSourceElement derivations also inherit all properties returned by `getDefaultPropertyDescriptors` from all super classes.

Overrides
  `JavaMember.getDefaultPropertyDescriptors()`

### getType() Method

    public String getType()

Gets the type of this JavaVariable

### getTypeCode() Method

    public IStructureFeature.StructureCode getTypeCode()

This method returns a code used by the compiler to identify the type of this element. This method should not be called directly, since the return value isn't useful outside of the compiler.

Overrides
  `DefaultSourceElement.getTypeCode()`

#### Returns

A compiler structure code identifying the type of this element.

### setInitializer(String) Method

    public boolean setInitializer(String initializerSource)

Replaces the body of this JavaMethod with the specified text.

#### Parameters

initializerSource
  the new body text for this method

#### Returns

boolean indicating success or failure.

### setInitializer(String, boolean) Method

    public boolean setInitializer(String initializerSource,
                                  boolean blockForResult)

Replaces the body of this JavaMethod with the specified text.

#### Parameters

initializerSource
  the new body text for this method

#### Returns

boolean indicating success or failure.

### setType(String) Method

    public void setType(String newString)

Sets the Type of this JavaVariable

### toString() Method

    public String toString()

Stringify by returning my name

Overrides
  `JavaMember.toString()`

### visit(JavaVisitor, Object) Method

    public Object visit(JavaVisitor v,
                        Object arg)

Provides `JavaVisitor``` support for this element type.

Overrides
  `JavaElement.visit(JavaVisitor, Object)`

#### Parameters

v
  The visitor

arg
  An argument to the visit, to be interpreted by the visitor.

#### Returns

Object returned by the visitor.