blob: c32a62115c103ca614a900f2e43440a429e8a522 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package ftbsc.lll.processor.tools;
import javax.lang.model.type.ArrayType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
/**
* Utility class that extrapolates information from a {@link TypeMirror},
* making it considerably easier to get informations about an
* array.
* @since 0.4.0
*/
public class ArrayContainer {
/**
* The nesting level of the array - a type who is not an array will have 0.
*/
public final int arrayLevel;
/**
* The innermost component of the array, corresponding to the type of the base
* component.
*/
public final TypeMirror innermostComponent;
/**
* Creates a new {@link ArrayContainer} from a {@link TypeMirror}.
* @param t the {@link TypeMirror} representing the type.
*/
public ArrayContainer(TypeMirror t) {
int arrayLevel = 0;
while(t.getKind() == TypeKind.ARRAY) {
t = ((ArrayType) t).getComponentType();
arrayLevel++;
}
this.arrayLevel = arrayLevel;
this.innermostComponent = t;
}
}
|