# Uses of Class
org.codehaus.janino.Java.Atom

Packages that use Java.Atom
Package
Description
org.codehaus.janino
The core of the Janino Java compiler.
org.codehaus.janino.util
Application-independent helper classes.

## Uses of Java.Atom in org.codehaus.janino

Subclasses of Java.Atom in org.codehaus.janino
Modifier and Type
Class
Description
`static final class`
`Java.AlternateConstructorInvocation`
Representation of a JLS7 8.8.7.1.
`static final class`
`Java.AmbiguousName`
Representation of a JLS7 6.5.2 "ambiguous name".
`static final class`
`Java.ArrayAccessExpression`
Representation of a JLS7 15.13 (JLS8: 15.10.3) "array access expression".
`static final class`
`Java.ArrayCreationReference`
Representation of a "method reference expression", as described in JLS9 15.13, with the form "`<var>arrayType</var>::new`".
`static final class`
`Java.ArrayLength`
Representation of the JLS7 10.7 array type "length" pseudo-member.
`static final class`
`Java.ArrayType`
Representation of a JLS7 10.1 "array type".
`static final class`
`Java.Assignment`
Representation of all JLS7 15.26 assignments.
`static final class`
`Java.BinaryOperation`
Representation of all non-operand-modifying binary operations.
`static final class`
`Java.BooleanLiteral`
Representation of a "boolean literal" (JLS7 3.10.3) (type `boolean`).
`static class`
`Java.BooleanRvalue`
Base class for `Java.Rvalue`s that compile better as conditional branches.
`static final class`
`Java.Cast`
Representation of a JLS7 15.16 "cast expression".
`static final class`
`Java.CharacterLiteral`
Representation of a "character literal" (JLS7 3.10.4) (type `char`).
`static final class`
`Java.ClassInstanceCreationReference`
Representation of a "method reference expression", as described in JLS9 15.13, with the form "`<var>classType</var>::new`".
`static final class`
`Java.ClassLiteral`
Representation of a JLS7 15.8.2 "class literal".
`static final class`
`Java.ConditionalExpression`
Representation of a JLS7 15.25 "conditional operation".
`static class`
`Java.ConstructorInvocation`
Abstract bas class for `Java.SuperConstructorInvocation` and `Java.AlternateConstructorInvocation`.
`static final class`
`Java.Crement`
Representation of a JLS7 15.14.2 "postfix increment operation", a JLS7 15.14.3 "postfix decrement operation", a JLS7 15.15.1 "prefix increment operation" or a JLS7 15.15.2 "prefix decrement operation".
`static final class`
`Java.FieldAccess`
Representation of an access to a field of a class or an interface.
`static final class`
`Java.FieldAccessExpression`
Representation of a JLS7 15.11 "field access expression", including the "array length" pseudo field access.
`static final class`
`Java.FloatingPointLiteral`
Representation of a "floating-point literal" (JLS7 3.10.2) (types `float` and `double`).
`static final class`
`Java.Instanceof`
Representation of a JLS7 15.20.2 "type comparison operation".
`static final class`
`Java.IntegerLiteral`
Representation of an "integer literal" (JLS7 3.10.1) (types `int` and `long`).
`static class`
`Java.Invocation`
Abstract base class for `Java.MethodInvocation` and `Java.SuperclassMethodInvocation`.
`static class`
`Java.LambdaExpression`
Representation of a (Java 8+) "lambda expression", see JLS9 15.27.
`static class`
`Java.Literal`
Abstract base class for the various Java literals; see JLS7 3.10.
`static final class`
`Java.LocalVariableAccess`
Representation of a local variable access -- used during compilation.
`static class`
`Java.Lvalue`
Representation of an "lvalue", i.e.
`static final class`
`Java.MethodInvocation`
Representation of a JLS7 15.12 "method invocation expression".
`static final class`
`Java.MethodReference`
Representation of a "method reference expression", as described in JLS9 15.13, with the form "`<var>referenceType</var>::identifier`.
`static final class`
`Java.NewAnonymousClassInstance`
Representation of a JLS7 15.9 "anonymous class instance creation expression".
`static final class`
`Java.NewArray`
Representation of a JLS7 15.10 "array creation expression".
`static final class`
`Java.NewClassInstance`
Representation of a JLS7 "class instance creation expression".
`static final class`
`Java.NewInitializedArray`
Representation of a JLS7 15.10 "array creation expression".
`static final class`
`Java.NullLiteral`
Representation of a "null literal" (JLS7 3.10.7).
`static final class`
`Java.Package`
Representation of a JLS7 6.5.2.1.5 "package name".
`static final class`
`Java.ParameterAccess`
"Artificial" operation for accessing the parameters of the synthetic constructor of an anonymous class.
`static final class`
`Java.ParenthesizedExpression`
Representation of a JLS7 15.8.5 "parenthesized expression".
`static final class`
`Java.PrimitiveType`
Representation of a JLS7 4.2 "primitive type", i.e a primitive type "usage", which has a location.
`static final class`
`Java.QualifiedThisReference`
Representation of an JLS7 15.8.4 access to the current object or an enclosing instance.
`static final class`
`Java.ReferenceType`
Representation of a JLS7 4.3 reference type.
`static class`
`Java.Rvalue`
Representation of an "rvalue", i.e.
`static final class`
`Java.RvalueMemberType`
Representation of the first part of a JLS7 15.9 "Qualified class instance creation expression": The "`a.new MyClass`" part of "`a.new MyClass(...)`" expression.
`static final class`
`Java.SimpleConstant`
This class is not used when code is parsed; it is intended for "programmatic" literals.
`static final class`
`Java.SimpleType`
This class is not used when code is parsed; it is intended for "programmatic" types.
`static final class`
`Java.StringLiteral`
Representation of a "string literal" (JLS7 3.10.5) (type `String`).
`static final class`
`Java.SuperclassFieldAccessExpression`
Representation of an JLS7 "superclass field access expression", e.g.
`static final class`
`Java.SuperclassMethodInvocation`
Representation of a JLS7 15.12.1.1.3 "superclass method invocation".
`static final class`
`Java.SuperConstructorInvocation`
Representation of a JLS7 8.8.7.1.
`static final class`
`Java.TextBlock`
Representation of a "text block" (JLS17 3.10.6 Text Blocks) (type `String`).
`static final class`
`Java.ThisReference`
Representation of an JLS7 15.8.3 access to the innermost enclosing instance.
`static class`
`Java.Type`
Representation of a Java type.
`static final class`
`Java.UnaryOperation`
Representation of a JLS7 15.15.3 "unary plus operator", a JLS7 15.15.4 "unary minus operator", a JLS7 15.15.5 "bitwise complement operator" or a JLS7 15.15.6 "logical complement operator".
Fields in org.codehaus.janino declared as Java.Atom
Modifier and Type
Field
Description
`final Java.Atom`
Java.FieldAccess.`lhs`
The left-hand-side of the field access - either a type or an rvalue (which includes all lvalues).
`final Java.Atom`
Java.FieldAccessExpression.`lhs`
`Java.Type`, `Java.Rvalue` or `Java.Lvalue` to operate upon.
`final Java.Atom`
Java.MethodReference.`lhs`
The expression name, primary or reference type that poses the left hand side of the expression.
`final Java.Atom`
Java.MethodInvocation.`target`
The optional type or rvalue that qualifies this method invocation.
Methods in org.codehaus.janino that return Java.Atom
Modifier and Type
Method
Description
`Java.Atom`
Parser.`parseAdditiveExpression()`
AdditiveExpression := MultiplicativeExpression { ( '+' | '-' ) MultiplicativeExpression }
`Java.Atom`
Parser.`parseAndExpression()`
AndExpression := EqualityExpression { '&' EqualityExpression }
`Java.Atom`
Parser.`parseAssignmentExpression()`
AssignmentExpression := ConditionalExpression [ AssignmentOperator AssignmentExpression ] AssignmentOperator := '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '>>>=' | '&=' | '^=' | '|='
`Java.Atom`
Parser.`parseConditionalAndExpression()`
ConditionalAndExpression := InclusiveOrExpression { '&&' InclusiveOrExpression }
`Java.Atom`
Parser.`parseConditionalExpression()`
ConditionalExpression := ConditionalOrExpression [ '?' Expression ':' ConditionalExpression ]
`Java.Atom`
Parser.`parseConditionalOrExpression()`
ConditionalOrExpression := ConditionalAndExpression { '||' ConditionalAndExpression ]
`Java.Atom`
Parser.`parseEqualityExpression()`
EqualityExpression := RelationalExpression { ( '==' | '!=' ) RelationalExpression }
`Java.Atom`
Parser.`parseExclusiveOrExpression()`
ExclusiveOrExpression := AndExpression { '^' AndExpression }
`Java.Atom`
Parser.`parseExpressionOrType()`
Same as `Parser.parseExpression()`, but types like `int` or `Map<String, Object>` are also parsed.
`Java.Atom`
Parser.`parseInclusiveOrExpression()`
InclusiveOrExpression := ExclusiveOrExpression { '|' ExclusiveOrExpression }
`Java.Atom`
Parser.`parseMultiplicativeExpression()`
MultiplicativeExpression := UnaryExpression { ( '*' | '/' | '%' ) UnaryExpression }
`Java.Atom`
Parser.`parsePrimary()`
Primary := CastExpression | // CastExpression 15.16 '(' Expression ')' | // ParenthesizedExpression 15.8.5 Literal | // Literal 15.8.1 Name | // AmbiguousName Name Arguments | // MethodInvocation Name '[]' { '[]' } | // ArrayType 10.1 Name '[]' { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'this' | // This 15.8.3 'this' Arguments | // Alternate constructor invocation 8.8.5.1 'super' Arguments | // Unqualified superclass constructor invocation 8.8.5.1 'super' '.' Identifier | // SuperclassFieldAccess 15.11.2 'super' '.' Identifier Arguments | // SuperclassMethodInvocation 15.12.4.9 NewClassInstance | NewAnonymousClassInstance | // ClassInstanceCreationExpression 15.9 NewArray | // ArrayCreationExpression 15.10 NewInitializedArray | // ArrayInitializer 10.6 PrimitiveType { '[]' } | // Type PrimitiveType { '[]' } '.' 'class' | // ClassLiteral 15.8.2 'void' '.' 'class' | // ClassLiteral 15.8.2 MethodReference // MethodReference JLS9 15.13 Name := Identifier { '.' Identifier } CastExpression := '(' PrimitiveType { '[]' } ')' UnaryExpression | '(' Expression ')' UnaryExpression NewClassInstance := 'new' ReferenceType Arguments NewAnonymousClassInstance := 'new' ReferenceType Arguments [ ClassBody ] NewArray := 'new' Type DimExprs { '[]' } NewInitializedArray := 'new' ArrayType ArrayInitializer
`Java.Atom`
Parser.`parseRelationalExpression()`
RelationalExpression := ShiftExpression { 'instanceof' ReferenceType | '<' ShiftExpression [ { ',' TypeArgument } '>' ] | '<' TypeArgument [ { ',' TypeArgument } '>' ] | ( '>' | '<=' | '>=' ) ShiftExpression }
`Java.Atom`
Parser.`parseSelector(Java.Atom atom)`
Selector := '.' Identifier | // FieldAccess 15.11.1 '.' Identifier Arguments | // MethodInvocation '.' '<' TypeList '>' 'super' Arguments // Superconstructor invocation (?) '.' '<' TypeList '>' 'super' '.' .
`Java.Atom`
Parser.`parseShiftExpression()`
ShiftExpression := AdditiveExpression { ( '<<' | '>>' | '>>>' ) AdditiveExpression }
`Java.Atom`
Parser.`parseUnaryExpression()`
UnaryExpression := { PrefixOperator } Primary { Selector } { PostfixOperator } PrefixOperator := '++' | '--' | '+' | '-' | '~' | '!' PostfixOperator := '++' | '--'
Methods in org.codehaus.janino with parameters of type Java.Atom
Modifier and Type
Method
Description
`Java.Atom`
Parser.`parseSelector(Java.Atom atom)`
Selector := '.' Identifier | // FieldAccess 15.11.1 '.' Identifier Arguments | // MethodInvocation '.' '<' TypeList '>' 'super' Arguments // Superconstructor invocation (?) '.' '<' TypeList '>' 'super' '.' .
`void`
Unparser.`unparseAtom(Java.Atom a)`
Constructors in org.codehaus.janino with parameters of type Java.Atom
Modifier
Constructor
Description
``
`FieldAccess(Location location, Java.Atom lhs, IClass.IField field)`
``
`FieldAccessExpression(Location location, Java.Atom lhs, String fieldName)`
``
`MethodInvocation(Location location, Java.Atom target, String methodName, Java.Rvalue[] arguments)`
``
`MethodReference(Location location, Java.Atom lhs, String methodName)`

## Uses of Java.Atom in org.codehaus.janino.util

Methods in org.codehaus.janino.util that return Java.Atom
Modifier and Type
Method
Description
`Java.Atom`
DeepCopier.`copyAtom(Java.Atom subject)`
`Java.Atom`
DeepCopier.`copyOptionalAtom(Java.Atom subject)`
`Java.Atom`
DeepCopier.`copyPackage(Java.Package subject)`
Methods in org.codehaus.janino.util with parameters of type Java.Atom
Modifier and Type
Method
Description
`Java.Atom`
DeepCopier.`copyAtom(Java.Atom subject)`
`Java.Atom`
DeepCopier.`copyOptionalAtom(Java.Atom subject)`
`void`
AbstractTraverser.`traverseAtom(Java.Atom a)`
`void`
Traverser.`traverseAtom(Java.Atom a)`
`void`
AbstractTraverser.`visitAtom(Java.Atom a)`
`void`
Traverser.`visitAtom(Java.Atom a)`