# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICIdentifier
- Super interfaces: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICLeftExpression`

C AST interface to represent an identifier, or variable.  

  Example:    

```

 int someVariable = 3;
     ^^^^^^^^^^^^
 
```
    C variable.  

  Refer to [CIdentifierClass](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.CIdentifierClass.md) for the different types of identifiers.

## Static Final Field: FLAG_MEANINGFUL_NAME
Type: `int`

Constant value: `2`

## Abstract Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICIdentifier`


## Abstract Method: generate
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- parameter: `definition`, type: `boolean`


## Abstract Method: getAddress
- return type: `java.lang.Long`

Description: Get the native address associated with this identifier.  

  The address depends of the [CIdentifierClass](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.CIdentifierClass.md) of the identifier:  
  
- for [CIdentifierClass#GLOBAL](CIdentifierClass#GLOBAL), it is an absolute address  
- for [CIdentifierClass#LOCAL](CIdentifierClass#LOCAL), it is a relative address from the stack base pointer  
- for others classes, the value is null \(meaningless\)

## Abstract Method: getFlags
- return type: `int`

Description: 
return: 

## Abstract Method: getId
- return type: `int`

Description: Get a unique identifier associated with the identifier.

## Abstract Method: getIdentifierClass
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.CIdentifierClass`

Description: Get the identifier class.

## Abstract Method: getMethodIndex
- return type: `java.lang.Integer`

Description: 
return: 

## Abstract Method: getName
- return type: `java.lang.String`

Description: Get the current name given to the identifier.

## Abstract Method: getOriginalName
- return type: `java.lang.String`

Description: Get the original name given to the identifier.

## Abstract Method: getParameterIndex
- return type: `java.lang.Integer`

Description: 
return: 

## Abstract Method: getType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICType`

Description: Get the identifier type.

## Default Method: isParameter
- return type: `boolean`


## Abstract Method: setFlags
- parameter: `flags`, type: `int`

Description: 
parameter: flags: 

## Abstract Method: setName
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: 
parameter: name: 
return: 

## Abstract Method: setName
- parameter: `name`, type: `java.lang.String`
- parameter: `dcm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.IDynamicContentManager`
- return type: `boolean`

Description: 
parameter: name: 
parameter: dcm: 
return: 

