# Interface: com.pnfsoftware.jeb.core.units.code.java.IJavaClass

Java AST interface to represent a Java class or interface. Class elements contain other classes \(inner classes\), fields, and methods.

## Method: addImport
- parameter: `simplename`, type: `java.lang.String`
- parameter: `signature`, type: `java.lang.String`
- return type: `boolean`

Description: Register a class to be imported in the namespace.
parameter: simplename: simple class name
parameter: signature: FQSS class signature
return: true if the import was registered

## Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaClass`


## Method: generate
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.java.JavaOutputSink`
- parameter: `newArgs`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- parameter: `anonStart`, type: `int`
- parameter: `bodyOnly`, type: `boolean`

Description: Generate this class.
parameter: out: output sink
parameter: newArgs: constructor arguments for anonymous class rendering, or null
parameter: anonStart: first anonymous\-constructor argument to render
parameter: bodyOnly: true to generate only the class body

## Method: getAccessFlags
- return type: `int`

Description: Retrieve the class access flags.
return: access flags

## Method: getAnnotations
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaAnnotation>`

Description: Get the annotations for this type.
return: type annotations

## Method: getAnonymousClassSignatures
- return type: `java.util.List<java.lang.String>`

Description: Retrieve the signatures of anonymous classes.
return: anonymous class signatures

## Method: getAnonymousClasses
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaClass>`

Description: Retrieve anonymous classes declared by this class.
return: anonymous classes

## Method: getFieldSignatures
- return type: `java.util.List<java.lang.String>`

Description: Retrieve field signatures declared by this class.
return: field signatures

## Method: getFields
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaField>`

Description: This convenience method is used to retrieve the list of fields.
return: the list of fields

## Method: getImplementedInterfaces
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaType>`

Description: Get the implemented or extended interface types.
return: implemented or extended interface types

## Method: getImport
- parameter: `simplename`, type: `java.lang.String`
- return type: `java.lang.String`

Description: Get an imported class signature from its simple name.
parameter: simplename: simple class name
return: FQSS class signature

## Method: getInnerClassSignatures
- return type: `java.util.List<java.lang.String>`

Description: Retrieve the signatures of inner classes.
return: inner class signatures

## Method: getInnerClasses
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaClass>`

Description: This convenience method is used to retrieve the list of inner classes.
return: the list of inner classes

## Method: getMethods
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaMethod>`

Description: This convenience method is used to retrieve the list of methods.
return: the list of methods

## Method: getMethodsSignatures
- return type: `java.util.List<java.lang.String>`

Description: Retrieve method signatures declared by this class.
return: method signatures

## Method: getName
- return type: `java.lang.String`

Description: Get the type name. The name is a fully\-qualified Java name, such as: `Lcom/foo/Bar;`
return: the class name

## Method: getSignature
- return type: `java.lang.String`

Description: 
return: original internal signature

## Method: getSupertype
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Get the super type.
return: the superclass type, or null if there is none

## Method: getType
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Get the class or interface type.
return: the type

## Method: isAnnotation
- return type: `boolean`

Description: Determine whether this type is an annotation type.
return: true if this type is an annotation type

## Method: isAnonymous
- return type: `boolean`

Description: Determine whether this type is anonymous.
return: true if this type is anonymous

## Method: isEnumeration
- return type: `boolean`

Description: Determine whether this type is an enumeration.
return: true if this type is an enumeration

## Method: isInner
- return type: `boolean`

Description: Determine whether this type is an inner class.
return: true if this type is an inner class

## Method: isInterface
- return type: `boolean`

Description: Determine whether this type is an interface.
return: true if this type is an interface

## Method: isStatic
- return type: `boolean`

Description: Determine whether this type is static.
return: true if this type is static

## Method: isSynthetic
- return type: `boolean`

Description: Determine whether this type is synthetic.
return: true if this type is synthetic

