# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICIdentifier

C AST interface to represent an identifier, or variable. 

 Example:  

```

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

 Refer to [CIdentifierClass](CIdentifierClass) for the different types of identifiers.

## Static Field: FLAG_MEANINGFUL_NAME
Type: `int`

Constant value: `2`

## Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICIdentifier`


## Method: generate
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- parameter: `definition`, type: `boolean`


## Method: getAddress
- return type: `java.lang.Long`

Description: Get the native address associated with this identifier. 

 The address depends of the [CIdentifierClass](CIdentifierClass) 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\)

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

Description: 
return: 

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

Description: Get a unique identifier associated with the identifier.

## Method: getIdentifierClass
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.CIdentifierClass`

Description: Get the identifier class.

## Method: getMethodIndex
- return type: `java.lang.Integer`

Description: 
return: 

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

Description: Get the current name given to the identifier.

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

Description: Get the original name given to the identifier.

## Method: getParameterIndex
- return type: `java.lang.Integer`

Description: 
return: 

## Method: getType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICType`

Description: Get the identifier type.

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


## Method: setFlags
- parameter: `flags`, type: `int`

Description: 
parameter: flags: 

## Method: setName
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: 
parameter: name: 
return: 

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

