Package com.github.javaparser.ast.type
Class ArrayType
- java.lang.Object
-
- com.github.javaparser.ast.Node
-
- com.github.javaparser.ast.type.Type
-
- com.github.javaparser.ast.type.ReferenceType
-
- com.github.javaparser.ast.type.ArrayType
-
- All Implemented Interfaces:
NodeWithAnnotations<ArrayType>
,NodeWithRange<Node>
,NodeWithTokenRange<Node>
,Observable
,ConvertibleToUsage
,Visitable
,HasParentNode<Node>
,Resolvable<ResolvedType>
,java.lang.Cloneable
public class ArrayType extends ReferenceType implements NodeWithAnnotations<ArrayType>
To indicate that a type is an array, it gets wrapped in an ArrayType for every array level it has. So, int[][] becomes ArrayType(ArrayType(int)).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ArrayType.ArrayBracketPair
Helper class that stores information about a pair of brackets in a non-recursive way (unlike ArrayType.)static class
ArrayType.Origin
The origin of a pair of array brackets [].-
Nested classes/interfaces inherited from class com.github.javaparser.ast.Node
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal
-
-
Field Summary
Fields Modifier and Type Field Description private Type
componentType
private ArrayType.Origin
origin
-
Fields inherited from class com.github.javaparser.ast.Node
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, LINE_SEPARATOR_KEY, NODE_BY_BEGIN_POSITION, PHANTOM_KEY, prettyPrinterNoCommentsConfiguration, PRINTER_KEY, SYMBOL_RESOLVER_KEY
-
-
Constructor Summary
Constructors Constructor Description ArrayType(Type type, AnnotationExpr... annotations)
ArrayType(Type componentType, ArrayType.Origin origin, NodeList<AnnotationExpr> annotations)
ArrayType(TokenRange tokenRange, Type componentType, ArrayType.Origin origin, NodeList<AnnotationExpr> annotations)
This constructor is used by the parser and is considered private.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,A>
Raccept(GenericVisitor<R,A> v, A arg)
Accept method for visitor support.<A> void
accept(VoidVisitor<A> v, A arg)
Accept method for visitor support.ArrayType
asArrayType()
java.lang.String
asString()
ArrayType
clone()
ResolvedType
convertToUsage(Context context)
int
getArrayLevel()
returns the array level that is 0 for non array type.Type
getComponentType()
Type
getElementType()
Finds the element type, meaning: the type without ArrayTypes around it.ArrayTypeMetaModel
getMetaModel()
ArrayType.Origin
getOrigin()
private static TokenRange
getOuterMostTokenRange(TokenRange tokenRange1, TokenRange tokenRange2)
void
ifArrayType(java.util.function.Consumer<ArrayType> action)
boolean
isArrayType()
boolean
replace(Node node, Node replacementNode)
ResolvedArrayType
resolve()
ArrayType
setAnnotations(NodeList<AnnotationExpr> annotations)
ArrayType
setComponentType(Type componentType)
ArrayType
setOrigin(ArrayType.Origin origin)
java.util.Optional<ArrayType>
toArrayType()
java.lang.String
toDescriptor()
static Pair<Type,java.util.List<ArrayType.ArrayBracketPair>>
unwrapArrayTypes(Type type)
Takes a type that may be an ArrayType.static Type
wrapInArrayTypes(Type type, java.util.List<ArrayType.ArrayBracketPair>... arrayBracketPairLists)
Takes lists of arrayBracketPairs, assumes the lists are ordered outer to inner and the pairs are ordered left to right.-
Methods inherited from class com.github.javaparser.ast.type.ReferenceType
asReferenceType, ifReferenceType, isReferenceType, toReferenceType
-
Methods inherited from class com.github.javaparser.ast.type.Type
asClassOrInterfaceType, asIntersectionType, asPrimitiveType, asTypeParameter, asUnionType, asUnknownType, asVarType, asVoidType, asWildcardType, getAnnotation, getAnnotations, ifClassOrInterfaceType, ifIntersectionType, ifPrimitiveType, ifTypeParameter, ifUnionType, ifUnknownType, ifVarType, ifVoidType, ifWildcardType, isClassOrInterfaceType, isIntersectionType, isPrimitiveType, isTypeParameter, isUnionType, isUnknownType, isVarType, isVoidType, isWildcardType, remove, toClassOrInterfaceType, toIntersectionType, toPrimitiveType, toTypeParameter, toUnionType, toUnknownType, toVarType, toVoidType, toWildcardType
-
Methods inherited from class com.github.javaparser.ast.Node
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, customInitialization, equals, findAll, findAll, findAll, findCompilationUnit, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getDataKeys, getDefaultPrinterConfiguration, getLineEndingStyle, getLineEndingStyleOrDefault, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getPrinter, getPrinter, getRange, getSymbolResolver, getTokenRange, hashCode, hasScope, isAncestorOf, isPhantom, isRegistered, notifyPropertyChange, register, register, registerForSubtree, remove, removeComment, removeData, removeForced, removeOrphanComment, replace, setAsParentNodeOf, setAsParentNodeOf, setBlockComment, setComment, setData, setLineComment, setParentNode, setParsed, setRange, setTokenRange, stream, stream, toString, toString, tryAddImportToParentCompilationUnit, unregister, walk, walk, walk
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOf
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithAnnotations
addAndGetAnnotation, addAndGetAnnotation, addAnnotation, addAnnotation, addAnnotation, addMarkerAnnotation, addMarkerAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, getAnnotation, getAnnotationByClass, getAnnotationByName, getAnnotations, isAnnotationPresent, isAnnotationPresent, setAnnotation, tryAddImportToParentCompilationUnit
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithRange
containsWithin, containsWithinRange, getBegin, getEnd, hasRange
-
-
-
-
Field Detail
-
componentType
private Type componentType
-
origin
private ArrayType.Origin origin
-
-
Constructor Detail
-
ArrayType
public ArrayType(Type componentType, ArrayType.Origin origin, NodeList<AnnotationExpr> annotations)
-
ArrayType
public ArrayType(Type type, AnnotationExpr... annotations)
-
ArrayType
public ArrayType(TokenRange tokenRange, Type componentType, ArrayType.Origin origin, NodeList<AnnotationExpr> annotations)
This constructor is used by the parser and is considered private.
-
-
Method Detail
-
resolve
public ResolvedArrayType resolve()
- Specified by:
resolve
in interfaceResolvable<ResolvedType>
- Specified by:
resolve
in classType
-
accept
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.- Specified by:
accept
in interfaceVisitable
- Type Parameters:
R
- the type of the return value of the visitorA
- the type the user argument passed to the visitor- Parameters:
v
- the visitor implementationarg
- the argument passed to the visitor (of type A)- Returns:
- the result of the visit (of type R)
-
accept
public <A> void accept(VoidVisitor<A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.
-
getComponentType
public Type getComponentType()
-
wrapInArrayTypes
@SafeVarargs public static Type wrapInArrayTypes(Type type, java.util.List<ArrayType.ArrayBracketPair>... arrayBracketPairLists)
Takes lists of arrayBracketPairs, assumes the lists are ordered outer to inner and the pairs are ordered left to right. The type gets wrapped in ArrayTypes so that the outermost ArrayType corresponds to the leftmost ArrayBracketPair in the first list.
-
getOuterMostTokenRange
private static TokenRange getOuterMostTokenRange(TokenRange tokenRange1, TokenRange tokenRange2)
-
unwrapArrayTypes
public static Pair<Type,java.util.List<ArrayType.ArrayBracketPair>> unwrapArrayTypes(Type type)
Takes a type that may be an ArrayType. Unwraps ArrayTypes until the element type is found.- Returns:
- a pair of the element type, and the unwrapped ArrayTypes, if any.
-
setAnnotations
public ArrayType setAnnotations(NodeList<AnnotationExpr> annotations)
- Specified by:
setAnnotations
in interfaceNodeWithAnnotations<ArrayType>
- Overrides:
setAnnotations
in classType
-
getOrigin
public ArrayType.Origin getOrigin()
-
setOrigin
public ArrayType setOrigin(ArrayType.Origin origin)
-
toDescriptor
public java.lang.String toDescriptor()
- Specified by:
toDescriptor
in classReferenceType
-
clone
public ArrayType clone()
- Overrides:
clone
in classReferenceType
-
getMetaModel
public ArrayTypeMetaModel getMetaModel()
- Overrides:
getMetaModel
in classReferenceType
- Returns:
- get JavaParser specific node introspection information.
-
isArrayType
public boolean isArrayType()
- Overrides:
isArrayType
in classType
-
asArrayType
public ArrayType asArrayType()
- Overrides:
asArrayType
in classType
-
ifArrayType
public void ifArrayType(java.util.function.Consumer<ArrayType> action)
- Overrides:
ifArrayType
in classType
-
toArrayType
public java.util.Optional<ArrayType> toArrayType()
- Overrides:
toArrayType
in classType
-
getElementType
public Type getElementType()
Finds the element type, meaning: the type without ArrayTypes around it.In "
int[] a[];
", the element type is int.- Overrides:
getElementType
in classType
-
getArrayLevel
public int getArrayLevel()
returns the array level that is 0 for non array type.- Overrides:
getArrayLevel
in classType
-
convertToUsage
public ResolvedType convertToUsage(Context context)
- Specified by:
convertToUsage
in interfaceConvertibleToUsage
-
-