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

public class JavaClass
extends `JavaMember`

JavaClass is a DefaultSourceElement derivation that represents a top-level or inner java class.

JavaClass objects may have children of many types, including any derivation of `JavaMember```, such as `JavaClass```, `JavaMember```, and `JavaMethod```. A javadoc comment preceding a java class declaration will appear as a child of the class of type `JavaComment```.

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`
  `JavaClass`

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

Direct Known Subclasses
  `ControlClass`

## Nested Class Summary

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

## Field Summary

`public static final `String`` | `PROP_INTERTYPES` Property key for the super-interfaces property of JavaClass objects.
`public static final `String`` | `PROP_ISINTERFACE` Property key for the is-interface property of JavaClass objects.
`public static final `String`` | `PROP_SUPERTYPE` Property key for the super-type property of JavaClass objects.

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

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

## Method Summary

`public `JavaClass`` | `getClass`(`String` name) Shortcut method for finding an inner class with a particular name.
`public `DefaultSourceElement.CompilerPropertyDescriptor`[]` | `getDefaultPropertyDescriptors`() Objects of this type define the following properties: `JavaClass.PROP_INTERTYPES```: the interfaces implemented by this class.
`public boolean` | `getIsInterface`() Returns whether this class is an interface.
`public `JavaMethod`` | `getMethod`(`String` name, `JavaArgument`[] args) Shortcut method for finding a method with a particular signature within this java class.
`public `JavaMethod`` | `getMethod`(`String` name, `String`[] args) Shortcut method for finding a method with a particular signature within this java class.
`public `Object`` | `getProperty`(`String` sProp) isAuthorProperty is overridden to ensure that we return a non-null name for anonymous inner classes.
`protected `Set`` | `getRangePrefetchProperties`() Anonymous JavaClass objects remove their 'name' property from the prefetch set.
`public `String`[]` | `getSuperInterfaces`() Returns all interfaces implemented by this class.
`public `String`` | `getSuperType`() Gets the SuperClass of this JavaClass
`public `IStructureFeature.StructureCode`` | `getTypeCode`() This method returns a code used by the compiler to identify the type of this element.
`public `JavaVariable`` | `getVariable`(`String` name) Shortcut method for finding a member variable with a particular name.
`protected boolean` | `isAuthorProperty`(`DefaultSourceElement.CompilerPropertyDescriptor` pd) isAuthorProperty is overridden to ensure that we do not submit names for anonymous inner classes during two-way edits.
`public void` | `setIsInterface`(boolean newboolean) Sets whether this class is an interface.
`public void` | `setSuperInterfaces`(`String`[] superInterfaces) Sets the interface set implemented by this class.
`public void` | `setSuperType`(`String` newString) Sets the SuperClass of this JavaClass
`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`, `getPropertyCode`, `getPropertyDescriptors`, `getPropertySourceRange`, `getPropertySourceRanges`, `getPropertySourceText`, `getPropertySourceText`, `getRange`, `getRange`, `getStatus`, `initializeRange`, `initializeRange`, `insertChild`, `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``

## Field Detail

### PROP_INTERTYPES

    public static final String PROP_INTERTYPES

  Property key for the super-interfaces property of JavaClass objects.

### PROP_ISINTERFACE

    public static final String PROP_ISINTERFACE

  Property key for the is-interface property of JavaClass objects.

### PROP_SUPERTYPE

    public static final String PROP_SUPERTYPE

  Property key for the super-type property of JavaClass objects.

## Constructor Detail

### JavaClass

    public JavaClass()

  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.

### JavaClass

    public JavaClass(Object compilerCookie)

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

## Method Detail

### getClass(String) Method

    public JavaClass getClass(String name)

Shortcut method for finding an inner class with a particular name.

#### Parameters

name
  the name of the desired class

#### Returns

an inner class with matching name, if found. May return null if no such class exists.

### getDefaultPropertyDescriptors() Method

    public DefaultSourceElement.CompilerPropertyDescriptor[] getDefaultPropertyDescriptors()

Objects of this type define the following properties:
`JavaClass.PROP_INTERTYPES```: the interfaces implemented by this class.
`JavaClass.PROP_SUPERTYPE```: the super type of this class.
`JavaClass.PROP_ISINTERFACE```: whether or not this class is itself an interface.

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

Overrides
  `JavaMember.getDefaultPropertyDescriptors()`

### getIsInterface() Method

    public boolean getIsInterface()

Returns whether this class is an interface.

### getMethod(String, JavaArgument[]) Method

    public JavaMethod getMethod(String name,
                                JavaArgument[] args)

Shortcut method for finding a method with a particular signature within this java class.

#### Parameters

name
  the name of the desired method

args
  the JavaArgument objects of the desired method

#### Returns

a java method with matching signature, if found. May return null if no such method exists.

### getMethod(String, String[]) Method

    public JavaMethod getMethod(String name,
                                String[] args)

Shortcut method for finding a method with a particular signature within this java class.

#### Parameters

name
  the name of the desired method

args
  the types of the arguments of the desired method

#### Returns

a java method with matching signature, if found. May return null if no such method exists.

### getProperty(String) Method

    public Object getProperty(String sProp)

isAuthorProperty is overridden to ensure that we return a non-null name for anonymous inner classes.

Overrides
  `DefaultSourceElement.getProperty(String)`

#### Parameters

sProp
  The desired property's name. This property must be part of this element's property descriptors.

#### Returns

The property's value.

### getRangePrefetchProperties() Method

    protected Set getRangePrefetchProperties()

Anonymous JavaClass objects remove their 'name' property from the prefetch set.

Overrides
  `DefaultSourceElement.getRangePrefetchProperties()`

### getSuperInterfaces() Method

    public String[] getSuperInterfaces()

Returns all interfaces implemented by this class.

### getSuperType() Method

    public String getSuperType()

Gets the SuperClass of this JavaClass

#### Returns

SuperClass

### 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.

### getVariable(String) Method

    public JavaVariable getVariable(String name)

Shortcut method for finding a member variable with a particular name.

#### Parameters

name
  the name of the desired member variable.

#### Returns

a member variable with matching name, if found. May return null if no such member variable exists.

### isAuthorProperty(DefaultSourceElement.CompilerPropertyDescriptor) Method

    protected boolean isAuthorProperty(DefaultSourceElement.CompilerPropertyDescriptor pd)

isAuthorProperty is overridden to ensure that we do not submit names for anonymous inner classes during two-way edits.

Overrides
  `DefaultSourceElement.isAuthorProperty(DefaultSourceElement.CompilerPropertyDescriptor)`

#### Parameters

pd
  The property descriptor that could be passed to the compiler

#### Returns

boolean indicating whether the specified property should be passed.

### setIsInterface(boolean) Method

    public void setIsInterface(boolean newboolean)

Sets whether this class is an interface.

### setSuperInterfaces(String[]) Method

    public void setSuperInterfaces(String[] superInterfaces)

Sets the interface set implemented by this class.

### setSuperType(String) Method

    public void setSuperType(String newString)

Sets the SuperClass of this JavaClass

### 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.