aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ast/type/IntersectionType.java
diff options
context:
space:
mode:
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.java60
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;
+ }
+}