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

Java AST interface to represent a method invocation. This interface is not used to represent new\-object or new\-array creation. 

 Example: 

```

 foo(0, 1, "bar")
 
```

## Static Field: CALLTYPE_LAMBDA
Type: `int`

Constant value: `2`
Description: Lambda implementation call.

## Static Field: CALLTYPE_REGULAR
Type: `int`

Constant value: `0`
Description: Regular virtual or direct call.

## Static Field: CALLTYPE_STATIC
Type: `int`

Constant value: `3`
Description: Static method call.

## Static Field: CALLTYPE_SUPER
Type: `int`

Constant value: `1`
Description: Super\-class method call.

## Method: addArgument
- parameter: `arg`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`

Description: Append an argument to this method call.
parameter: arg: mandatory argument to append

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


## Method: getArgument
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`

Description: Retrieve an argument by index.
parameter: index: 0\-based argument index
return: the argument expression

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

Description: Get the number of arguments.
return: the number of arguments

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

Description: Retrieve the list of arguments passed to the method. 

 If the method being called is a virtual method, the first argument will be an expression representing the object on which this method is called.
return: the list of arguments, the elements in the list cannot be null

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

Description: Retrieve the call type.
return: one of the `CALLTYPE_xxx` constants

## Method: getMethod
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`

Description: Get the method element.
return: the method element

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

Description: Retrieve the signature of the method owner class.
return: the method owner class signature

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

Description: Get the original method simple name.
return: the method simple name

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

Description: Get the original method jvm name \(fully qualified canonical name\).
return: the method signature

## Method: insertArgument
- parameter: `index`, type: `int`
- parameter: `arg`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`

Description: Insert an argument to the list of arguments.
parameter: index: 0\-based argument index
parameter: arg: mandatory argument to be inserted

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

Description: Determine whether the call represents a lambda implementation call.
return: true if this call is a lambda call

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

Description: Determine whether the call is static.
return: true if this call is static

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

Description: Determine if the call is to a super\-class method.
return: true if the method being called is a super\-class method

## Method: removeArgument
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`

Description: Pull an argument from the list of arguments.
parameter: index: 0\-based argument index
return: the argument object that was pulled out

## Method: setArgument
- parameter: `index`, type: `int`
- parameter: `arg`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`

Description: Replace an argument.
parameter: index: 0\-based argument index
parameter: arg: mandatory replacement argument

## Method: setMethod
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`
- parameter: `calltype`, type: `int`

Description: Set the method to be called.
parameter: method: mandatory method
parameter: calltype: one of `CALLTYPE_xxx` constant

