# Enum: com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType

Java operator types. Operator types are used to build [Java operators](IJavaOperator).

## Constant: ADD
Description: Arithmetic addition

## Constant: AND
Description: Binary and

## Constant: CAST_CONVERSION
Description: Special cast type reserved for integer\-to\-FP and FP\-to\-integer conversion operations during an IR conversion pass. Client code should not use this operator.

## Constant: CAST_TO_BOOLEAN
Description: Cast to primitive

## Constant: CAST_TO_BYTE
Description: Cast to primitive

## Constant: CAST_TO_CHAR
Description: Cast to primitive

## Constant: CAST_TO_DOUBLE
Description: Cast to primitive

## Constant: CAST_TO_FLOAT
Description: Cast to primitive

## Constant: CAST_TO_INT
Description: Cast to primitive

## Constant: CAST_TO_LONG
Description: Cast to primitive

## Constant: CAST_TO_OBJECT
Description: Generic cast\-to\-object operator

## Constant: CAST_TO_SHORT
Description: Cast to primitive

## Constant: CONCAT
Description: Similar to ADD \(\+\), but for strings

## Constant: COND_EXP
Description: conditional expression operator: p ? a: b

## Constant: DIV
Description: Arithmetic division

## Constant: EQ
Description: Logical equality

## Constant: GE
Description: Logical greater\-than\-or\-equal

## Constant: GT
Description: Logical greater\-than

## Constant: INSTANCEOF
Description: Type check

## Constant: LE
Description: Logical less\-than\-or\-equal

## Constant: LOG_AND
Description: Logical and

## Constant: LOG_IDENT
Description: Logical pseudo\-identity operator \(generally, does not generate output\); the opposite of LOG\_NOT

## Constant: LOG_NOT
Description: Logical not

## Constant: LOG_OR
Description: Logical or

## Constant: LT
Description: Logical less\-than

## Constant: MUL
Description: Arithmetic multiplication

## Constant: NE
Description: Logical non\-equality

## Constant: NEG
Description: Arithmetic negation

## Constant: NOT
Description: Binary not

## Constant: OR
Description: Binary or

## Constant: REM
Description: Arithmetic remainder

## Constant: SHL
Description: Shift\-left \(binary shift\)

## Constant: SHR
Description: Signed shift\-right \(a.k.a. "arithmetic" shift\-right: the sign bit is copied over\)

## Constant: SUB
Description: Arithmetic subtraction

## Constant: USHR
Description: Unsigned shift\-right \(binary shift\)

## Constant: XOR
Description: Binary xor

## Method: getAssociativity
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType.Associativity`

Description: Provide associativity \(left, right\) information about the operation type.
return: the associativity, or null if irrelevant

## Method: getMirror
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`

Description: Retrieve the mirror operator, if any. 

```

 ==   ->  ==
 !=   ->  !=
 \>    ->  <
 \>=   ->  <=
 <    ->  \>
 <=   ->  \>=
 
```
 Careful, do not confuse mirror operators and inverse operators. Example: the mirror of GT is LT; the inverse of GT is LE.
return: a mirror operator type, null if N/A

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

Description: Provide precedence information about the operation type.
return: a positive value \(lower means "higher precedence"\), 0 if unknown

## Method: getReverse
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`

Description: Retrieve the reverse operator, if any. 

```

 ==    ->  !=
 !=    ->  ==
 \>     ->  <=
 \>=    ->  <
 <     ->  \>=
 <=    ->  \>
 IDENT ->  !
 !     ->  IDENT
 
```
return: the reverse operator or null

## Method: isAnyOf
- parameter: `operatorTypes`, type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType[]`
- return type: `boolean`

Description: Determine whether this operator type matches one of the provided types.
parameter: operatorTypes: operator types
return: true if this operator type matches one of them

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

Description: Determine whether this operator type is arithmetic or bitwise.
return: true if this operator type is arithmetic or bitwise

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

Description: Determine whether this operator type is binary.
return: true if this operator type is binary

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

Description: Determine whether this operator type is a cast.
return: true if this operator type is a cast

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

Description: Determine whether this operator type is a cast to a primitive type.
return: true if this operator type casts to a primitive type

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

Description: Determine whether this operator type is logical.
return: true if this operator type is logical

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

Description: Determine whether this operator type is unary.
return: true if this operator type is unary

## Method: mirror
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`

Description: Same as [#getMirror()](#getMirror()).
return: a mirror operator type, null if N/A

## Method: reverse
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`

Description: Same as [#getReverse()](#getReverse()).
return: the reverse operator or null

## Static Method: valueOf
- parameter: `name`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType`


## Static Method: values
- return type: `com.pnfsoftware.jeb.core.units.code.java.JavaOperatorType[]`


