diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java new file mode 100644 index 000000000..029d46537 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java @@ -0,0 +1,60 @@ +package com.github.javaparser.ast.type; + +import com.github.javaparser.Range; +import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; +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<IntersectionType> implements NodeWithAnnotations<IntersectionType> { + + 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 IntersectionType setElements(List<ReferenceType> elements) { + if (this.elements != null) { + for (ReferenceType element : elements){ + element.setParentNode(null); + } + } + this.elements = elements; + setAsParentNodeOf(this.elements); + return this; + } +} |