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

A collection of Java AST element factories.

## Method: createAnnotation
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `elts`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaAnnotationElement>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaAnnotation`


## Method: createAnnotationElement
- parameter: `name`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaConstant`
- parameter: `value`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaAnnotationElement`


## Method: createArrayElt
- parameter: `array`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `index`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaArrayElt`


## Method: createAssignment
- parameter: `left`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaLeftExpression`
- parameter: `right`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaAssignment`


## Method: createBlock
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`


## Method: createBlock
- parameter: `firstStatement`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaStatement`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`


## Method: createBreak
- parameter: `label`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaLabel`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBreak`


## Method: createCall
- parameter: `m`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`
- parameter: `calltype`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaCall`


## Method: createCall
- parameter: `msig`, type: `java.lang.String`
- parameter: `calltype`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaCall`


## Method: createCall
- parameter: `m`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`
- parameter: `calltype`, type: `int`
- parameter: `argument`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaCall`


## Method: createCall
- parameter: `msig`, type: `java.lang.String`
- parameter: `calltype`, type: `int`
- parameter: `argument`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaCall`


## Method: createCastOperation
- parameter: `castType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `exp`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaOperation`


## Method: createConditionalExpression
- parameter: `left`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `right0`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `right1`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaConditionalExpression`


## Method: createContinue
- parameter: `label`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaLabel`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaContinue`


## Method: createDoWhile
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- parameter: `p`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaPredicate`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaDoWhile`


## Method: createFieldReference
- parameter: `fsig`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaField`


## Method: createFieldReference
- parameter: `fsig`, type: `java.lang.String`
- parameter: `hintStaticField`, type: `java.lang.Boolean`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaField`


## Method: createFor
- parameter: `pre`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaStatement`
- parameter: `p`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaPredicate`
- parameter: `post`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaStatement`
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaFor`


## Method: createForEach
- parameter: `var`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaDefinition`
- parameter: `iterable`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaForEach`


## Method: createGoto
- parameter: `label`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaLabel`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaGoto`


## Method: createIf
- parameter: `p`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaPredicate`
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaIf`


## Method: createInstanceField
- parameter: `instance`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `fsig`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaInstanceField`


## Method: createInstanceField
- parameter: `instance`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `field`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaField`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaInstanceField`


## Method: createMethodReference
- parameter: `msig`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`


## Method: createMethodReference
- parameter: `msig`, type: `java.lang.String`
- parameter: `hintStaticMethod`, type: `java.lang.Boolean`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`


## Method: createMonitor
- parameter: `enter`, type: `boolean`
- parameter: `lock`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMonitor`


## Method: createNew
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaNew`


## Method: createNew
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaMethod`
- parameter: `arguments`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaNew`


## Method: createNew
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `msig`, type: `java.lang.String`
- parameter: `arguments`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaNew`


## Method: createNewArray
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `size`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaNewArray`


## Method: createNewArray
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `areSizes`, type: `boolean`
- parameter: `sizesOrInits`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.java.IJavaExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaNewArray`


## Method: createOperation
- parameter: `left`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `operator`, type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`
- parameter: `right`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaOperation`


## Method: createOperation
- parameter: `left`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `operator`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaOperator`
- parameter: `right`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaOperation`


## Method: createPredicate
- parameter: `exp`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaPredicate`


## Method: createReturn
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaReturn`


## Method: createReturn
- parameter: `e`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaReturn`


## Method: createStaticField
- parameter: `classType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `fsig`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaStaticField`


## Method: createStaticField
- parameter: `classType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `field`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaField`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaStaticField`


## Method: createSwitch
- parameter: `e`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaSwitch`


## Method: createSwitch
- parameter: `e`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `switchType`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaSwitch`


## Method: createSynchronizedBlock
- parameter: `lock`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaSynchronizedBlock`


## Method: createThrow
- parameter: `throwable`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaExpression`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaThrow`


## Method: createTry
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaTry`


## Method: createTypeReference
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaTypeReference`


## Method: createWhile
- parameter: `p`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaPredicate`
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaWhile`


