blob: a37370e7d8dea98c616560d7406aec00bd7a80bb (
plain)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package com.github.javaparser.ast.type;
import com.github.javaparser.Range;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.List;
/**
* Represents a set of types. A given value of this type has to be assignable to at all of the element types.
* As of Java 8 it is used in casts or while expressing bounds for generic types.
*
* For example:
* public class A>T extends Serializable & Cloneable< { }
*
* Or:
* void foo((Serializable & Cloneable)myObject);
*
* @since 3.0.0
*/
public class IntersectionType extends Type {
private List<ReferenceType> elements;
public IntersectionType(Range range, List<ReferenceType> elements) {
super(range);
setElements(elements);
}
public IntersectionType(List<ReferenceType> elements) {
super();
setElements(elements);
}
@Override
public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
return v.visit(this, arg);
}
@Override
public <A> void accept(VoidVisitor<A> v, A arg) {
v.visit(this, arg);
}
public List<ReferenceType> getElements() {
return elements;
}
public void setElements(List<ReferenceType> elements) {
if (this.elements != null) {
for (ReferenceType element : elements){
element.setParentNode(null);
}
}
this.elements = elements;
setAsParentNodeOf(this.elements);
}
}
|